openai-czh
一个简洁的 OpenAI 兼容 API 客户端库,使用 Rust + reqwest + tokio 实现。
特性
- ✅ OpenAI 兼容 - 支持自定义
base_url,兼容 DeepSeek、通义千问、Ollama 等 - ✅ 流式输出 - 支持 SSE 流式响应
- ✅ 多模态 - 支持图片理解(Vision)
- ✅ 思考过程 - 支持
reasoning_content输出模型推理过程 - ✅ Builder 模式 - 链式构建请求,简洁易用
- ✅ 持续对话 - 支持追加消息,实现多轮对话
安装
[]
= "0.1.0"
快速开始
环境配置
# 可选,默认 OpenAI
基础用法
use ;
async
流式输出
use StreamExt;
let request = builder
.model
.user_message
.stream // 启用流式
.build?;
let mut stream = client.chat_stream.await?;
while let Some = stream.next.await
持续对话
let mut request = builder
.model
.system_message
.stream
.build?;
// 第一轮对话
request.add_user_message;
// ... 发送请求并获取回复
request.add_assistant_message;
// 第二轮对话
request.add_user_message;
// ... 继续对话
多模态(图片理解)
use ;
let messages = vec!;
let request = builder
.model // 需要支持视觉的模型
.messages
.stream
.build?;
自定义 API 服务
// DeepSeek
let client = builder
.base_url
.build;
// 通义千问
let client = builder
.base_url
.build;
// Ollama 本地
let client = builder
.base_url
.build;
示例
运行示例:
# CLI 对话
# 图片理解
API 参考
OpenAIClient
| 方法 | 说明 |
|---|---|
from_env() |
从环境变量创建客户端 |
new(api_key) |
使用 API key 创建客户端 |
builder(api_key) |
创建客户端构建器 |
chat(&request) |
发送普通请求 |
chat_stream(&request) |
发送流式请求 |
ChatCompletionRequestBuilder
| 方法 | 说明 |
|---|---|
model(model) |
设置模型 |
messages(messages) |
设置消息列表 |
system_message(content) |
添加系统消息 |
user_message(content) |
添加用户消息 |
assistant_message(content) |
添加助手消息 |
stream(bool) |
设置是否流式 |
temperature(f32) |
设置温度 |
max_tokens(u32) |
设置最大 token |
build() |
构建请求 |
ChatCompletionRequest
| 方法 | 说明 |
|---|---|
add_user_message(&mut self, content) |
追加用户消息 |
add_assistant_message(&mut self, content) |
追加助手消息 |
add_system_message(&mut self, content) |
追加系统消息 |
License
MIT