1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//! # 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
//!
//! ```rust,no_run
//! 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-export the most commonly used items at the crate root for convenience.
pub use SamvadSetuError;
pub use ;
pub use ;