Expand description
§SamvadSetu — Multi-provider LLM API client
A Rust-native library for sending chat-completion requests to multiple LLM providers with a single, unified API. The name is Sanskrit for “dialogue bridge”: saṃvāda (संवाद) = dialogue, setu (सेतु) = bridge.
§Supported providers
| Provider | llm_service string | Auth env var |
|---|---|---|
| OpenAI / ChatGPT | "chatgpt" / "openai" | OPENAI_API_KEY |
| DeepSeek | "deepseek" | DEEPSEEK_API_KEY |
| Alibaba Qwen | "qwen" | DASHSCOPE_API_KEY |
| llama.cpp server | "llamacpp" | LLAMACPP_API_KEY |
| Anthropic Claude | "claude" / "anthropic" | ANTHROPIC_API_KEY |
| Google Gemini | "gemini" | GOOGLE_API_KEY |
| Google GenAI | "google_genai" | GOOGLE_API_KEY |
| Ollama | "ollama" | (none) |
§Quick start
use samvadsetu::llm::LLMTextGenBuilder;
use samvadsetu::types::ChatMessage;
let llm_gen = LLMTextGenBuilder::build("chatgpt", "gpt-4o-mini", 60, None, None)
.expect("build failed");
let msgs = vec![
ChatMessage::system("You are a helpful assistant."),
ChatMessage::user("How is a rainbow formed?"),
];
let result = llm_gen.generate_text(&msgs, None, None).expect("API call failed");
println!("{}", result.generated_text);
// Token-level confidence (hallucination proxy)
if let Some(p) = result.mean_probability() {
println!("Mean token confidence: {:.1}%", p * 100.0);
}Re-exports§
pub use error::SamvadSetuError;pub use llm::LLMTextGenBuilder;pub use llm::LLMTextGenerator;pub use types::BatchHandle;pub use types::BatchRequest;pub use types::BatchRequestResult;pub use types::BatchStatus;pub use types::ChatMessage;pub use types::ContentBlock;pub use types::LlmApiResult;pub use types::MessageContent;pub use types::ResponseFormat;pub use types::Role;pub use types::StopReason;pub use types::TokenLogprob;pub use types::ToolCall;pub use types::ToolDefinition;pub use types::TopTokenAlternative;