Skip to main content

Crate samvadsetu

Crate samvadsetu 

Source
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

Providerllm_service stringAuth 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;

Modules§

batch
error
llm
providers
types