3个稳定版本
1.4.0 | 2023年4月7日 |
---|---|
1.3.0 | 2023年3月21日 |
1.2.0 | 2023年3月6日 |
在#gpt3中排名第1
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