Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/atliliw_langchainrust.json
T
OpenCode 68a9071cf1 feat: reconcile local master with origin (exa/hot-platform hunters, leaks ledger, latest results)
Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
2026-08-07 12:53:47 +08:00

1 line
11 KiB
JSON

{"repo": "atliliw/langchainrust", "files": {"examples/basic/multi_provider.rs": {"7b1d447578d4b15e49d62dda095a54ffd2bac9ba": {"t": 1785745865.5000865, "n": 2421, "h": "8c5af52407c28a69", "c": "//! 多 LLM Provider 示例\n//!\n//! 展示如何在 OpenAI / Ollama / DeepSeek 之间切换,\n//! 用相同的消息调用不同后端。\n//!\n//! # 运行\n//! ```bash\n//! # 默认用 openai\n//! cargo run --example basic_multi_provider\n//! # 切换到 ollama(需本地运行 Ollama)\n//! $env:PROVIDER=\"ollama\"; cargo run --example basic_multi_provider\n//! # 切换到 deepseek\n//! $env:PROVIDER=\"deepseek\"; cargo run --example basic_multi_provider\n//! ```\n//!\n//! # 环境变量\n//! - `PROVIDER`:openai(默认)/ ollama / deepseek\n//! - `OPENAI_API_KEY` / `DEEPSEEK_API_KEY`:对应 provider 的密钥\n\nuse langchainrust::schema::Message;\nuse langchainrust::{\n BaseChatModel, DeepSeekChat, DeepSeekConfig, OllamaChat, OllamaConfig, OpenAIChat, OpenAIConfig,\n};\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n let provider = std::env::var(\"PROVIDER\").unwrap_or_else(|_| \"openai\".to_string());\n\n let messages = vec![\n Message::system(\"你是一个 helpful assistant,一句话回答。\"),\n Message::human(\"用一句话介绍你自己。\"),\n ];\n\n let answer = match provider.as_str() {\n \"openai\" => {\n let api_key = std::env::var(\"OPENAI_API_KEY\").expect(\"请设置 OPENAI_API_KEY\");\n let base_url = std::env::var(\"OPENAI_BASE_URL\")\n .unwrap_or_else(|_| \"https://api.openai.com/v1\".to_string());\n let llm = OpenAIChat::new(OpenAIConfig {\n api_key,\n base_url,\n model: \"gpt-4o-mini\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"ollama\" => {\n let llm = OllamaChat::with_config(OllamaConfig {\n base_url: std::env::var(\"OLLAMA_BASE_URL\")\n .unwrap_or_else(|_| \"http://localhost:11434/v1\".to_string()),\n model: \"llama3.2\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"deepseek\" => {\n let api_key = std::env::var(\"DEEPSEEK_API_KEY\").expect(\"请设置 DEEPSEEK_API_KEY\");\n let llm = DeepSeekChat::new(DeepSeekConfig {\n api_key,\n model: \"deepseek-chat\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n other => return Err(format!(\"未知 provider: {other}(可选:openai/ollama/deepseek)\").into()),\n };\n\n println!(\"[{provider}] 回答:\\n{answer}\");\n Ok(())\n}\n"}, "e8c360fca1cb2e312e218835d9e76accdcdb1cf3": {"t": 1785757379.7074115, "n": 2421, "h": "8c5af52407c28a69", "c": "//! 多 LLM Provider 示例\n//!\n//! 展示如何在 OpenAI / Ollama / DeepSeek 之间切换,\n//! 用相同的消息调用不同后端。\n//!\n//! # 运行\n//! ```bash\n//! # 默认用 openai\n//! cargo run --example basic_multi_provider\n//! # 切换到 ollama(需本地运行 Ollama)\n//! $env:PROVIDER=\"ollama\"; cargo run --example basic_multi_provider\n//! # 切换到 deepseek\n//! $env:PROVIDER=\"deepseek\"; cargo run --example basic_multi_provider\n//! ```\n//!\n//! # 环境变量\n//! - `PROVIDER`:openai(默认)/ ollama / deepseek\n//! - `OPENAI_API_KEY` / `DEEPSEEK_API_KEY`:对应 provider 的密钥\n\nuse langchainrust::schema::Message;\nuse langchainrust::{\n BaseChatModel, DeepSeekChat, DeepSeekConfig, OllamaChat, OllamaConfig, OpenAIChat, OpenAIConfig,\n};\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n let provider = std::env::var(\"PROVIDER\").unwrap_or_else(|_| \"openai\".to_string());\n\n let messages = vec![\n Message::system(\"你是一个 helpful assistant,一句话回答。\"),\n Message::human(\"用一句话介绍你自己。\"),\n ];\n\n let answer = match provider.as_str() {\n \"openai\" => {\n let api_key = std::env::var(\"OPENAI_API_KEY\").expect(\"请设置 OPENAI_API_KEY\");\n let base_url = std::env::var(\"OPENAI_BASE_URL\")\n .unwrap_or_else(|_| \"https://api.openai.com/v1\".to_string());\n let llm = OpenAIChat::new(OpenAIConfig {\n api_key,\n base_url,\n model: \"gpt-4o-mini\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"ollama\" => {\n let llm = OllamaChat::with_config(OllamaConfig {\n base_url: std::env::var(\"OLLAMA_BASE_URL\")\n .unwrap_or_else(|_| \"http://localhost:11434/v1\".to_string()),\n model: \"llama3.2\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"deepseek\" => {\n let api_key = std::env::var(\"DEEPSEEK_API_KEY\").expect(\"请设置 DEEPSEEK_API_KEY\");\n let llm = DeepSeekChat::new(DeepSeekConfig {\n api_key,\n model: \"deepseek-chat\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n other => return Err(format!(\"未知 provider: {other}(可选:openai/ollama/deepseek)\").into()),\n };\n\n println!(\"[{provider}] 回答:\\n{answer}\");\n Ok(())\n}\n"}, "2dac4d1753c10b3e013e45d85ef14983be99b9ad": {"t": 1785757381.5128937, "n": 2519, "h": "84a07caf799e8967", "c": "//! 多 LLM Provider 示例\n//!\n//! 展示如何在 OpenAI / Ollama / DeepSeek 之间切换,\n//! 用相同的消息调用不同后端。\n//!\n//! # 运行\n//! ```bash\n//! # 默认用 openai\n//! cargo run --example basic_multi_provider\n//! # 切换到 ollama(需本地运行 Ollama)\n//! $env:PROVIDER=\"ollama\"; cargo run --example basic_multi_provider\n//! # 切换到 deepseek\n//! $env:PROVIDER=\"deepseek\"; cargo run --example basic_multi_provider\n//! ```\n//!\n//! # 环境变量\n//! - `PROVIDER`:openai(默认)/ ollama / deepseek\n//! - `OPENAI_API_KEY` / `DEEPSEEK_API_KEY`:对应 provider 的密钥\n\nuse langchainrust::{\n BaseChatModel, DeepSeekChat, DeepSeekConfig, OllamaChat, OllamaConfig, OpenAIChat, OpenAIConfig,\n};\nuse langchainrust::schema::Message;\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n let provider = std::env::var(\"PROVIDER\").unwrap_or_else(|_| \"openai\".to_string());\n\n let messages = vec![\n Message::system(\"你是一个 helpful assistant,一句话回答。\"),\n Message::human(\"用一句话介绍你自己。\"),\n ];\n\n let answer = match provider.as_str() {\n \"openai\" => {\n let api_key =\n std::env::var(\"OPENAI_API_KEY\").expect(\"请设置 OPENAI_API_KEY\");\n let base_url = std::env::var(\"OPENAI_BASE_URL\")\n .unwrap_or_else(|_| \"https://api.openai.com/v1\".to_string());\n let llm = OpenAIChat::new(OpenAIConfig {\n api_key,\n base_url,\n model: \"gpt-4o-mini\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"ollama\" => {\n let llm = OllamaChat::with_config(OllamaConfig {\n base_url: std::env::var(\"OLLAMA_BASE_URL\")\n .unwrap_or_else(|_| \"http://localhost:11434/v1\".to_string()),\n model: \"llama3.2\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"deepseek\" => {\n let api_key =\n std::env::var(\"DEEPSEEK_API_KEY\").expect(\"请设置 DEEPSEEK_API_KEY\");\n let llm = DeepSeekChat::new(DeepSeekConfig {\n api_key,\n model: \"deepseek-chat\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n other => {\n return Err(format!(\n \"未知 provider: {other}(可选:openai/ollama/deepseek)\"\n )\n .into())\n }\n };\n\n println!(\"[{provider}] 回答:\\n{answer}\");\n Ok(())\n}\n"}, "229e3f0f27b44c2ae3c60dc03d7b19934dfddf36": {"t": 1786067489.5852802, "n": 2421, "h": "8c5af52407c28a69", "c": "//! 多 LLM Provider 示例\n//!\n//! 展示如何在 OpenAI / Ollama / DeepSeek 之间切换,\n//! 用相同的消息调用不同后端。\n//!\n//! # 运行\n//! ```bash\n//! # 默认用 openai\n//! cargo run --example basic_multi_provider\n//! # 切换到 ollama(需本地运行 Ollama)\n//! $env:PROVIDER=\"ollama\"; cargo run --example basic_multi_provider\n//! # 切换到 deepseek\n//! $env:PROVIDER=\"deepseek\"; cargo run --example basic_multi_provider\n//! ```\n//!\n//! # 环境变量\n//! - `PROVIDER`:openai(默认)/ ollama / deepseek\n//! - `OPENAI_API_KEY` / `DEEPSEEK_API_KEY`:对应 provider 的密钥\n\nuse langchainrust::schema::Message;\nuse langchainrust::{\n BaseChatModel, DeepSeekChat, DeepSeekConfig, OllamaChat, OllamaConfig, OpenAIChat, OpenAIConfig,\n};\n\n#[tokio::main]\nasync fn main() -> Result<(), Box<dyn std::error::Error>> {\n let provider = std::env::var(\"PROVIDER\").unwrap_or_else(|_| \"openai\".to_string());\n\n let messages = vec![\n Message::system(\"你是一个 helpful assistant,一句话回答。\"),\n Message::human(\"用一句话介绍你自己。\"),\n ];\n\n let answer = match provider.as_str() {\n \"openai\" => {\n let api_key = std::env::var(\"OPENAI_API_KEY\").expect(\"请设置 OPENAI_API_KEY\");\n let base_url = std::env::var(\"OPENAI_BASE_URL\")\n .unwrap_or_else(|_| \"https://api.openai.com/v1\".to_string());\n let llm = OpenAIChat::new(OpenAIConfig {\n api_key,\n base_url,\n model: \"gpt-4o-mini\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"ollama\" => {\n let llm = OllamaChat::with_config(OllamaConfig {\n base_url: std::env::var(\"OLLAMA_BASE_URL\")\n .unwrap_or_else(|_| \"http://localhost:11434/v1\".to_string()),\n model: \"llama3.2\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n \"deepseek\" => {\n let api_key = std::env::var(\"DEEPSEEK_API_KEY\").expect(\"请设置 DEEPSEEK_API_KEY\");\n let llm = DeepSeekChat::new(DeepSeekConfig {\n api_key,\n model: \"deepseek-chat\".to_string(),\n ..Default::default()\n });\n llm.chat(messages, None).await?.content\n }\n other => return Err(format!(\"未知 provider: {other}(可选:openai/ollama/deepseek)\").into()),\n };\n\n println!(\"[{provider}] 回答:\\n{answer}\");\n Ok(())\n}\n"}}}}