async-openai

Rust 里类型安全地调用 OpenAI 接口

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开发框架 🍴 复刻 405 🐛 待处理 27 👀 关注 19
GitHub ↗
GitHub 星标 ★ 2021
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,遵循 MIT 许可证

项目预览

async-openai 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队64bit
定价模式🏷️完全免费
价格说明开源免费,遵循 MIT 许可证
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Rust
技术栈/模型openai,rust
GitHub 星标★ 2021
上线时间2022-11-11 00:00:00
代码更新2026-10-21
仓库体积22.8 MB
本站数据更新2026-10-26
维护状态活跃
收录时间2026-10-26
浏览次数0

项目介绍

async-openai 是一个用 Rust 编写的 OpenAI API 客户端库,为 Rust 开发者提供类型安全、异步友好的接口来调用 OpenAI 系列模型服务。它解决了 Rust 生态中直接手写 HTTP 请求调用 OpenAI 接口时类型混乱、错误处理繁琐的问题,把请求与响应结构体化,减少运行时解析错误。核心能力包括:覆盖聊天补全、文本补全、嵌入、图像生成、音频、文件、微调、批处理等主要端点;基于 serde 的强类型请求/响应模型;基于 tokio 与 reqwest 的异步调用;支持流式响应(SSE)处理;可自定义 base URL 与组织信息,便于对接兼容 OpenAI 协议的自建或第三方服务;提供较完整的示例与文档。项目处于活跃维护状态,适合构建 AI 应用后端、CLI 工具或需要高性能并发的服务端场景。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-26 · 当前星标 ★ 2021

技术标签

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:进阶 约 10 分钟 部署方式:库/依赖 6 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • Rust 工具链(含 cargo)
  • 异步运行时(如 tokio,用于执行 async 调用)
  • 可用的 OpenAI API 密钥
  • 把 OPENAI_API_KEY 设置为环境变量

安装与启动步骤

  1. 1准备 Rust 环境

    README 未给安装命令,需自行确保本机已有可用的 Rust 与 cargo 工具链,且版本能编译 async 代码。

  2. 2新建或进入项目

    在已有的 Rust 项目中使用该库,或先创建一个 cargo 项目作为调用入口。

  3. 3添加库依赖

    README 只给出 crates.io 上的包名 async-openai,未附安装命令;按 crate 名添加依赖后会写入 Cargo.toml。

    cargo add async-openai
  4. 4按需开启 feature

    库采用粒度 feature flags,只启用需要的 API 类型(如 responses、audio、image、embedding),避免引入无用类型。

  5. 5设置 API 密钥

    库从环境变量 OPENAI_API_KEY 读取密钥,运行调用程序前必须先设置,否则请求无法认证。

    export OPENAI_API_KEY=sk-xxxxxxxx
  6. 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

★ 131 2026-08-09
perchance 开源

用 Python 调用 Perchance 生成器,快速实现文本和图像生成。

Unofficial Python API for Perchance.

★ 75 2026-08-09
ComfyUI_ADV_CLIP_emb 开源

自定义提示词权重解释,让ComfyUI生成更听话

ComfyUI node that let you pick the way in which prompt weights are interpreted

★ 436 2026-08-09
langchain4j 开源

Java 开发者用统一 API 快速构建 LLM 应用,无缝集成 Spring Boot

LangChain4j is an idiomatic, open-source Java library for building LLM-powered appli···

★ 13295 2026-08-09
koog 开源

用 Kotlin 快速构建跨平台企业级 AI 代理

Koog is a JVM (Java and Kotlin) framework for building predictable, fault-tolerant a···

★ 4634 2026-08-09
codegraph-rust 开源

用 Rust 打造代码图谱,让 AI 代理秒懂项目上下文

100% Rust implementation of code graphRAG with blazing fast AST+FastML parsing, surr···

★ 908 2026-08-09