
async-openai
Rust 里类型安全地调用 OpenAI 接口
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-10-26 · 当前星标 ★ 2021
使用教程
⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。
⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。
环境要求
- Rust 工具链(含 cargo)
- 异步运行时(如 tokio,用于执行 async 调用)
- 可用的 OpenAI API 密钥
- 把 OPENAI_API_KEY 设置为环境变量
安装与启动步骤
-
1准备 Rust 环境
README 未给安装命令,需自行确保本机已有可用的 Rust 与 cargo 工具链,且版本能编译 async 代码。
-
2新建或进入项目
在已有的 Rust 项目中使用该库,或先创建一个 cargo 项目作为调用入口。
-
3添加库依赖
README 只给出 crates.io 上的包名 async-openai,未附安装命令;按 crate 名添加依赖后会写入 Cargo.toml。
cargo add async-openai -
4按需开启 feature
库采用粒度 feature flags,只启用需要的 API 类型(如 responses、audio、image、embedding),避免引入无用类型。
-
5设置 API 密钥
库从环境变量 OPENAI_API_KEY 读取密钥,运行调用程序前必须先设置,否则请求无法认证。
export OPENAI_API_KEY=sk-xxxxxxxx -
6编写异步调用
README 节选中的代码示例被截断,未给出完整调用样例;按 docs.rs 文档在 async 上下文中构造请求对象并发起调用。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OPENAI_API_KEY | 是 | 库自动读取的 API 密钥环境变量 | sk-xxxxxxxx |
Cargo.toml features(如 responses) | 否 | 粒度化开启 Responses 等 API 与类型 | responses |
Cargo.toml features(如 audio / video / im | 否 | 按需开启音频、视频、图像、嵌入等端点的类型 | audio |
Cargo.toml features(如 webhook) | 否 | 开启 Webhook 事件相关类型 | webhook |
如何确认成功
程序编译通过并启动后不再因缺少 API key 报错,调用返回结构化的响应对象即表示接入成功。
常见问题
Q:运行时报缺少 API key 怎么处理?
A:确认已在同一终端会话中导出 OPENAI_API_KEY,且启动程序的环境继承了该变量。
Q:编译时找不到某个类型或接口?
A:该库按端点拆分 feature flags,需在依赖中启用对应 feature(如 responses、audio、image)后才会生成类型。
Q:请求被限流怎么办?
A:库在遇到限流时会自动按指数退避重试,无需自己写重试逻辑,注意控制并发即可。
Q:能对接兼容 OpenAI 协议的其他服务吗?
A:可以,README 说明支持自定义 base URL、路径、查询参数与请求头,并支持自备请求/响应类型。
注意事项
- README 节选未提供安装与示例代码,添加依赖的命令依据其 crates.io 包名推断,实际请以官方文档为准。
- 该库为异步客户端,调用必须运行在异步运行时中。
- 支持 SSE 流式响应处理,流式场景需逐块消费响应。
- 同时提供 WASM 与 tower 中间件支持,可按需选用。
核心亮点
- 全量类型化请求与响应结构体,编译期即可发现字段错误
- 原生异步设计,配合 tokio 适合高并发服务端场景
- 覆盖聊天、嵌入、图像、音频、文件、微调等主要端点
不足之处
- OpenAI 接口迭代快,新端点或新参数可能滞后于官方文档
- 仅面向 Rust 生态,非 Rust 项目无法直接复用
适用场景
- 用 Rust 构建高并发的 AI 应用后端服务
- 开发调用大模型的命令行工具或本地助手
- 在 Rust 项目中集成文本嵌入与向量检索能力
替代项目
openai-python、openai-node、async-openai
上一篇:openai-java
下一篇:没有了!
同类项目推荐
genai-stack
开源
一键搭建端到端生成式 AI 应用,省去集成烦恼
An End to End GenAI Framework
perchance
开源
用 Python 调用 Perchance 生成器,快速实现文本和图像生成。
Unofficial Python API for Perchance.
quarkus-langchain4j
开源
在 Quarkus 里用 Java 接口直接调用大模型
Quarkus Langchain4j extension
agent-protocol
开源
让不同框架的 AI Agent 用统一协议互相调用协作
ComfyUI_ADV_CLIP_emb
开源
自定义提示词权重解释,让ComfyUI生成更听话
ComfyUI node that let you pick the way in which prompt weights are interpreted
langchain4j
开源
Java 开发者用统一 API 快速构建 LLM 应用,无缝集成 Spring Boot
LangChain4j is an idiomatic, open-source Java library for building LLM-powered appli···
koog
开源
用 Kotlin 快速构建跨平台企业级 AI 代理
Koog is a JVM (Java and Kotlin) framework for building predictable, fault-tolerant a···
langchain4j-examples
开源
照着跑通示例,快速把大模型接进 Java 项目
codegraph-rust
开源
用 Rust 打造代码图谱,让 AI 代理秒懂项目上下文
100% Rust implementation of code graphRAG with blazing fast AST+FastML parsing, surr···