Official Python SDK for Wauldo — zero-hallucination RAG with source citations.
from wauldo import HttpClient
client = HttpClient(base_url="http://localhost:3000", api_key="sk_local_demo_key")
reply = client.chat_simple("default", "What is Python?")
print(reply)pip install wauldofrom wauldo import HttpClient, ChatRequest, HttpChatMessage
client = HttpClient(base_url="http://localhost:3000")
request = ChatRequest(
model="default",
messages=[
HttpChatMessage.system("You are a helpful assistant."),
HttpChatMessage.user("Explain Python decorators"),
],
)
response = client.chat(request)
print(response.choices[0].message.content)upload = client.rag_upload(content="Contract text here...", filename="contract.txt")
print(f"Indexed {upload.chunks_count} chunks")
result = client.rag_query("What are the payment terms?")
print(f"Answer: {result.answer}")
for source in result.sources:
print(f" Source ({source.score:.0%}): {source.content[:80]}")conv = client.conversation(system="You are an expert on Python.", model="default")
reply = conv.say("What are list comprehensions?")
print(reply)
follow_up = conv.say("Give me a nested example")
print(follow_up)from wauldo import ChatRequest, HttpChatMessage
request = ChatRequest(model="default", messages=[HttpChatMessage.user("Explain async/await")])
for chunk in client.chat_stream(request):
print(chunk, end="", flush=True)models = client.list_models()
for model in models.data:
print(model.id)from wauldo import WauldoError, ServerError, AgentTimeoutError
try:
request = ChatRequest.quick("default", "Hello")
response = client.chat(request)
except ServerError as e:
print(f"Server error: {e}")
except AgentTimeoutError:
print("Request timed out")
except WauldoError as e:
print(f"SDK error: {e}")client = HttpClient(
base_url="https://api.wauldo.com",
headers={
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "api.wauldo.com",
},
)- Python 3.9+
- No external dependencies for sync usage (stdlib only)
pydanticfor response models (installed automatically)
MIT — see LICENSE