#openai #ChatGPT #gpt-4 #gpt #gpt-3 #openai-api

chat-gpt-rs

Rust API客户端,用于与OpenAI的GPT3.5和GPT4(ChatGPT)API通信

3个稳定版本

1.4.0 2023年4月7日
1.3.0 2023年3月21日
1.2.0 2023年3月6日

#gpt3中排名第1

MIT许可

14KB
158 代码行

ChatGPT Rust

此Rust包提供与OpenAI GPT-3.5和GPT-4(ChatGPT)API通信的API客户端。Api结构体提供发送请求和接收API响应的方法。

安装

将以下内容添加到您的Cargo.toml中

[dependencies]
chat_gpt_rs = "1.4.0"

使用方法

use chat_gpt_rs::prelude::*;

#[tokio::main]
async fn main() {
    let token = Token::new("YOUR_API_KEY");
    let api = Api::new(token);
    let request = Request {
        model: Model::Gpt35Turbo,
        messages: vec![Message {
            role: "user".to_string(),
            content: "Hello, how's it going?".to_string(),
        }],
        ..Default::default()
    };
    let response = api.chat(request).await;
    if let Ok(response) = response {
        println!("{:?}", response.choices[0].message.content);
    } else {
        println!("Error: {:?}", response.err());
    }
} 

其他配置

以下配置选项在Request结构体中可用

  • Model:要使用的模型ID。所有GPT3和GPT4模型都受支持。
  • Messages:用于生成聊天补全的消息,格式为聊天格式。
  • Temperature:采样温度值,介于0和2之间。更高的值(如0.8)将使输出更随机,而更低的值(如0.2)将使输出更专注且更确定。
  • TopP:替代温度采样的另一种方法,称为核采样,其中模型考虑具有最高概率质量的标记的结果。
  • N:为每个输入消息生成多少个聊天补全选项。
  • Stop:API将停止生成进一步标记的上限为4个序列。
  • MaxTokens:每个聊天补全选项可生成令牌的最大数量。
  • PresencePenalty:介于-2.0和2.0之间的数字。正值根据新标记是否出现在文本中而惩罚新标记,增加模型讨论新主题的可能性。
  • FrequencyPenalty:介于-2.0和2.0之间的数字。正值根据新标记在文本中迄今为止的现有频率来惩罚新标记,降低模型重复相同语句的可能性。
  • User:代表您的最终用户的唯一标识符,可以帮助OpenAI监控和检测滥用。

提供组织ID

在创建API实例时,您可以提供您的OpenAI组织ID。

    let api = Api::new(token).with_organization_id("YOUR_ORGANIZATION_ID")

依赖关系

~6–21MB
~285K SLoC