Skip to main content

Wauldo Python SDK

PyPI Downloads Python License: MIT

Verified AI answers from your documents. Every response includes source citations, confidence scores, and an audit trail — or we don't answer at all.

Official Python SDK for the Wauldo API — the AI inference layer with smart model routing and zero hallucinations.

Why Wauldo?

  • Zero hallucinations — every answer is verified against source documents
  • Smart model routing — auto-selects the cheapest model that meets quality (save 40-80% on AI costs)
  • One API, 7+ providers — OpenAI, Anthropic, Google, Qwen, Meta, Mistral, DeepSeek with automatic fallback
  • OpenAI-compatible — swap your base_url, keep your existing code
  • Full audit trail — confidence score, grounded status, model used, latency on every response

Quick Start

from wauldo import HttpClient

client = HttpClient(base_url="https://api.wauldo.com", api_key="YOUR_API_KEY")

reply = client.chat_simple("auto", "What is Python?")
print(reply)

Installation

pip install wauldo

Requirements: Python 3.9+

Features

Chat Completions

from wauldo import HttpClient, ChatRequest, HttpChatMessage

client = HttpClient(base_url="https://api.wauldo.com", api_key="YOUR_API_KEY")

request = ChatRequest(
    model="auto",
    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 a document
upload = client.rag_upload(content="Contract text here...", filename="contract.txt")
print(f"Indexed {upload.chunks_count} chunks")

# Query with verified answer
result = client.rag_query("What are the payment terms?")
print(f"Answer: {result.answer}")
print(f"Confidence: {result.get_confidence():.0%}")
print(f"Grounded: {result.audit.grounded}")
for source in result.sources:
    print(f"  Source ({source.score:.0%}): {source.content[:80]}")

Guard — Fact-Check Any Text

# Verify a response against ground-truth sources
result = client.fact_check(
    text="Returns are accepted within 60 days.",
    source_context="Our return policy: 14 days.",
)
print(result.verdict)  # rejected
print(result.action)   # block

# Optional: score relevance to the original question (decoupled from factuality)
result = client.fact_check(
    text="Rust was first released in 2010 by Mozilla Research.",
    source_context="Rust is a systems language released in 2010 by Mozilla Research.",
    query="What year was Rust released?",
)
print(result.verdict)  # verified
if result.relevance:   # None when relevance could not be computed (see relevance_warning)
    print(result.relevance.verdict)  # relevant | partial | off_topic
    print(result.relevance.score)    # cosine similarity — interpret through verdict, not absolute value

A response can be fully verified against sources and still off-topic for the question asked — the relevance block never influences the factual verdict. Currently only relevance_mode="fast" (embedding cosine) is supported.

Streaming (SSE)

from wauldo import ChatRequest, HttpChatMessage

request = ChatRequest(model="auto", messages=[HttpChatMessage.user("Hello!")])
for chunk in client.chat_stream(request):
    print(chunk, end="", flush=True)

Conversation Helper

conv = client.conversation(system="You are an expert on Python.", model="auto")
reply = conv.say("What are list comprehensions?")
follow_up = conv.say("Give me a nested example")

Error Handling

from wauldo import WauldoError, ServerError, AgentTimeoutError

try:
    response = client.chat(ChatRequest.quick("auto", "Hello"))
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

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

Get your free API key (300 req/month): RapidAPI

Contributing

Found a bug? Have a feature request? Open an issue.

License

MIT — see LICENSE

Metadata

Release files for wauldo 0.20.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wauldo 0.20.0
File Size Uploaded Provenance
wauldo-0.20.0.tar.gz 67.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for wauldo 0.20.0
File Interpreter ABI Platform
wauldo-0.20.0-py3-none-any.whl Python 3 none any Details

Total release size: 126.9 kB

Release files / wauldo-0.20.0.tar.gz

Download URL wauldo-0.20.0.tar.gz
Size 67.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fde71fb40c3fd30ffba9989ef4427b48e1cc92c28e9e129013c6babff88917f7
BLAKE2b-256 checksum
How to use checksums
a51959ed2990d0acb2fc3a664db09fa5c7ccb0c3b749524102a0c2845e2a05b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / wauldo-0.20.0-py3-none-any.whl

Download URL wauldo-0.20.0-py3-none-any.whl
Size 59.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6e88514b95c960af9dcc2fa35026499ccfdb279e63544a2b85149c6b387d803
BLAKE2b-256 checksum
How to use checksums
6da3018c53cbe0c2fc27043dd890723665161e76d1ecdc21fb9c545e9aedd8bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for wauldo 0.20.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page