60个版本 (21个重大更改)
0.23.4 | 2024年7月9日 |
---|---|
0.21.0 | 2024年5月7日 |
0.20.0 | 2024年3月31日 |
0.17.1 | 2023年11月26日 |
0.5.0 | 2022年12月30日 |
#25 in Web编程
32,494 每月下载量
在 96 个crates(79个直接) 中使用
305KB
5.5K SLoC
async-openai
OpenAI的异步Rust库
Logo由本项目创建 repo itself
概述
async-openai
是一个非官方的OpenAI Rust库。
- 它基于 OpenAI OpenAPI规范
- 当前功能
- 助手(v2)
- 音频
- 批量
- 聊天
- 完成(旧版)
- 嵌入
- 文件
- 微调
- 图片
- 模型
- 审查
- 所有可用API上的SSE流
- 请求(除SSE流外)包括表单提交,在速率限制时使用指数退避重试。
- 所有请求对象的可视化构建模式。
- Microsoft Azure OpenAI服务(仅匹配OpenAI规范的API)
使用方法
该库从环境变量 OPENAI_API_KEY
中读取 API密钥。
# On macOS/Linux
export OPENAI_API_KEY='sk-...'
# On Windows Powershell
$Env:OPENAI_API_KEY='sk-...'
- 访问 示例目录 了解如何使用
async-openai
。 - 访问 docs.rs/async-openai 获取文档。
图片生成示例
use async_openai::{
types::{CreateImageRequestArgs, ImageSize, ResponseFormat},
Client,
};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
// create client, reads OPENAI_API_KEY environment variable for API key.
let client = Client::new();
let request = CreateImageRequestArgs::default()
.prompt("cats on sofa and carpet in living room")
.n(2)
.response_format(ResponseFormat::Url)
.size(ImageSize::S256x256)
.user("async-openai")
.build()?;
let response = client.images().create(request).await?;
// Download and save images to ./data directory.
// Each url is downloaded and saved in dedicated Tokio task.
// Directory is created if it doesn't exist.
let paths = response.save("./data").await?;
paths
.iter()
.for_each(|path| println!("Image file path: {}", path.display()));
Ok(())
}
`
用于README,实际大小256x256
贡献
感谢您抽出时间来为项目做出贡献和改进。我将非常高兴能邀请您加入!
欢迎所有形式的贡献,如新功能请求、错误修复、问题、文档、测试、评论、示例等。
查看现有 open issues 是一个好的起点。
为了维护项目的质量,代码贡献必须满足以下最低要求
- 名称与文档:所有结构体名称、字段名称和文档注释均来自 OpenAPI 规范。规范中未命名的嵌套对象留有适当命名的空间。
- 测试:支持更改测试和/或示例的要求。如果适用,应确保现有示例、文档测试、单元测试和集成测试与更改一起工作。
- 范围:将范围限制在官方文档中可用的 API,如 API 参考 或 OpenAPI 规范。其他 LLM 或 AI 提供商提供的与 OpenAI 兼容的 API 可能并不总是完全一致。在这种情况下,OpenAI 规范优先。
- 一致性:确保库公开的所有“API”的代码风格保持一致;这为开发者创造了一个极佳的体验。
本项目遵守 Rust 行为准则
配套 Crates
- openai-func-enums 提供了过程宏,使使用此库与 OpenAI API 的工具调用功能更容易。它还提供了可以添加到现有 clap 应用程序子命令的 derive 宏,以实现命令行工具的自然语言使用。它还支持 openai 的 并行工具调用,并允许您选择同时运行多个工具调用或在各自的 OS 线程中运行。
- async-openai-wasm 提供了 WASM 支持。
许可证
本项目受 MIT 许可证 授权。
依赖项
~8–23MB
~386K SLoC