Skip to content

wauldo/wauldo-sdk-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wauldo Python SDK

PyPI Python License: MIT

Official Python SDK for Wauldo — zero-hallucination RAG with source citations.

Quick Start

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)

Installation

pip install wauldo

Features

Chat Completions (OpenAI-compatible)

from 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)

RAG — Upload & Query

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]}")

Conversation Helper

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)

Streaming

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)

List Models

models = client.list_models()
for model in models.data:
    print(model.id)

Error Handling

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}")

RapidAPI Usage

client = HttpClient(
    base_url="https://api.wauldo.com",
    headers={
        "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
        "X-RapidAPI-Host": "api.wauldo.com",
    },
)

Requirements

  • Python 3.9+
  • No external dependencies for sync usage (stdlib only)
  • pydantic for response models (installed automatically)

License

MIT — see LICENSE

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages