Quickstart (30 seconds)
[]
= "0.1"
= { = "1", = ["rt-multi-thread", "macros"] }
use ;
async
Output:
Answer: Returns are accepted within 60 days of purchase.
Grounded: true | Confidence: 92%
Try the demo | Get a free API key
Why Wauldo (and not standard RAG)
Typical RAG pipeline
retrieve → generate → hope it's correct
Wauldo pipeline
retrieve → extract facts → generate → verify → return or refuse
If the answer can't be verified, it returns "insufficient evidence" instead of guessing.
See the difference
Document: "Refunds are processed within 60 days"
Typical RAG: "Refunds are processed within 30 days" ← wrong
Wauldo: "Refunds are processed within 60 days" ← verified
or "insufficient evidence" if unclear ← safe
Try locally (no server needed)
Explore every feature using MockHttpClient -- no API key, no server, no network:
use MockHttpClient;
async
Run the full quickstart example:
Examples
Upload a PDF and ask questions
// Upload — text extraction + quality scoring happens server-side
let upload = client.upload_file.await?;
println!;
// Query
let result = client.rag_query.await?;
println!;
println!;
println!;
Fact-check any LLM output
let result = client.fact_check.await?;
println!; // "rejected"
println!; // "block"
println!; // "numerical_mismatch"
Chat (OpenAI-compatible)
use ;
let req = new;
let resp = client.chat.await?;
println!;
Streaming
let req = new;
let mut rx = client.chat_stream.await?;
while let Some = rx.recv.await
Conversation
let mut conv = client.conversation
.with_system
.with_model;
let reply = conv.say.await?;
let follow_up = conv.say.await?;
Features
- Pre-generation fact extraction — numbers, dates, limits injected as constraints
- Post-generation grounding check — every answer verified against sources
- Citation validation — detects phantom references
- Analytics & Insights — track token savings, cache performance, cost per hour, and per-tenant traffic
- Fact-check API — verify any claim against any source (3 modes)
- Native PDF/DOCX upload — server-side extraction with quality scoring
- Smart model routing — auto-selects cheapest model that meets quality
- OpenAI-compatible — swap your
base_url, keep your existing code - Type-safe — full Rust type system, no unwrap in production
Error Handling
use Error;
match client.chat.await
RapidAPI
let config = new
.with_header
.with_header;
let client = new?;
Free tier (300 req/month): RapidAPI
Website | Docs | Demo | Benchmarks
Contributing
PRs welcome! See CONTRIBUTING.md for setup instructions and guidelines. Check the good first issues.
License
MIT — see LICENSE