#api-request #ai #llm #缩写

gpt-batch-scribe

包含 GptBatchAPIRequest 结构体,有助于创建 gpt4 批量请求。

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 #缩写

Download history 284/week @ 2024-06-24 51/week @ 2024-07-01 16/week @ 2024-07-22 131/week @ 2024-07-29

147 每月下载量

MIT 许可证

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