az-ai-chat
自动收集自
crates/api/az-ai-chat/README.md。
统一的 AI/LLM 聊天接口,抽象 OpenAI、Claude、Gemini 等多种云端模型服务。
功能
- 定义通用 [
ChatClient] trait,对不同 AI 提供商统一调用方式 - 内置 OpenAI 兼容接口实现(
OpenAiClient),可直接对接 OpenAI 及兼容服务 - 结构化的
Message与Role类型,支持系统提示词、用户消息与助手回复 ChatOptions配置项:控制温度、最大 token 数等生成参数- 统一的
ChatError错误体系,覆盖网络、JSON 解析、提供商返回错误等场景
安装
在 Cargo.toml 中添加:
[dependencies]
az-ai-chat = { path = "../az-ai-chat" } # workspace 内部引用
# 或发布后:
# az-ai-chat = "0.1" # crates.io 引用
用法
use az_ai_chat::{OpenAiClient, ChatClient, Message, ChatOptions, Role};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = OpenAiClient::new("https://api.openai.com/v1", "sk-...");
let messages = vec![
Message::system("You are a helpful assistant."),
Message::user("Hello!"),
];
let reply = client.chat("gpt-4", &messages, None).await?;
println!("{}", reply.content);
Ok(())
}
依赖的 crates
无外部 workspace 内部 crate 依赖;使用 reqwest、serde、tokio 等通用库。