4 个版本
0.1.3 | 2024年7月31日 |
---|---|
0.1.2 | 2024年6月28日 |
0.1.1 | 2024年6月28日 |
0.1.0 | 2024年6月28日 |
#14 in #缩写
147 每月下载量
39KB
584 行
gpt-batch-scribe
A Rust 包用于处理对 GPT 模型的批量 API 请求。此包提供结构体和枚举来构造、序列化和反序列化 JSON 请求,并适当处理错误。
特性
- 使用自定义字段和方法定义请求结构。
- 使用 Serde 进行序列化和反序列化。
- 使用自定义错误树处理各种错误类型。
- 支持不同的 GPT 模型和 API 端点。
- 枚举的自定义序列化。
示例用法
基本示例
use gpt_batch_scribe::{GptBatchAPIRequest, HttpMethod, GptApiUrl, GptRequestBody, GptMessage, GptModelType};
let request = GptBatchAPIRequest::new_basic(
1,
"You are a helpful assistant.",
"Hello world!"
);
println!("{}", request);
结构和枚举
GptBatchAPIRequest
表示完整的请求结构。
- custom_id: 自定义请求的标识符。
- method: 请求使用的 HTTP 方法。
- url: API 端点的 URL。
- body: 请求体。
方法
- new_basic(idx: usize, system_message: &str, user_message: &str) -> Self: 创建基本请求。
- new_with_image(idx: usize, system_message: &str, user_message: &str, image_b64: &str) -> Self: 创建包含图像的请求。
GptApiUrl
API URL 枚举。
- ChatCompletions: 聊天补全的 API 端点。
GptMessage
表示请求体中单个消息的详细信息。
- role: 参与者的角色(系统/用户)。
- content: 消息的内容。
方法
- system_message(msg: &str) -> Self: 创建系统消息。
- user_message(msg: &str) -> Self: 创建用户消息。
- user_message_with_image(msg: &str, image_b64: &str) -> Self: 创建包含图像的用户消息。
GptModelType
支持的模型类型。
- Gpt4o: 模型类型 GPT-4o。
- Gpt4Turbo: 模型类型 GPT-4 Turbo。
GptRequestBody
API 请求体的详细信息。
- model: 请求使用的模型。
- messages: 请求中交换的消息数组。
- max_tokens: 模型使用的最大令牌数。
方法
- default_max_tokens() -> u32: 默认最大令牌数。
- default_max_tokens_given_image(image_b64: &str) -> u32: 包含图像时的默认最大令牌数。
- new_basic(system_message: &str, user_message: &str) -> Self: 创建基本请求体。
- new_with_image(system_message: &str, user_message: &str, image_b64: &str) -> Self: 创建包含图像的请求体。
HttpMethod
可能的 HTTP 方法的枚举。
- 获取:HTTP GET 方法。
- 提交:HTTP POST 方法。
错误处理
解析令牌描述行错误
解析令牌描述行错误的枚举。
- 缺少令牌
- 缺少描述
分词器错误
分词器错误的枚举。
- 分词器错误(String)
批量创建错误
批量创建错误的枚举。
- OpenAIError(OpenAIError)
- IOError(std::io::Error)
- TokenizerError(TokenizerError)
- ParseTokenDescriptionLineError(ParseTokenDescriptionLineError)
- SerdeJsonError(serde_json::Error)
许可
本项目采用 MIT 许可证。
依赖项
~13–25MB
~381K SLoC