1个不稳定版本
0.1.0 | 2024年8月8日 |
---|
#1490 在 Web编程
每月下载 105 次
24KB
234 代码行
Rusty Anthropic客户端
用于与Anthropic API交互的Rust客户端,包括消息和文本补全的示例。此客户端使用dotenv
crate来安全地管理环境变量。
目录
特性
- 支持Anthropic API的消息和文本补全端点
- 使用
dotenv
crate从环境变量中加载API密钥 - 优雅地处理错误,并以JSON格式返回响应
安装
要使用Rusty Anthropic客户端,请按照以下步骤操作
- 将所需依赖项添加到您的
Cargo.toml
[dependencies]
rusty-anthropic = "0.1.0"
reqwest = { version = "0.12.5", features = ["json"] }
tokio = { version = "1", features = ["full"] }
serde_json = "1.0"
dotenv = "0.15.0"
- 在项目的根目录中创建一个
.env
文件以存储您的API密钥
API_KEY=your_api_key_here
配置
客户端使用dotenv
crate来加载环境变量。请确保您的项目根目录中有一个包含以下内容的.env
文件
API_KEY=your_api_key_here
此文件应包含在您的.gitignore
中,以防止您的API密钥被提交到版本控制。
用法
以下是一个展示如何使用消息API和文本补全API的示例。
消息API示例
- 创建一个名为
main.rs
的新文件并添加以下内容
use rusty_anthropic::anthropic_api::client::AnthropicClient;
use rusty_anthropic::anthropic_api::messages::{MessagesApi, MessageRequest};
use rusty_anthropic::request_client::RequestClient;
use serde_json::json;
use dotenv::dotenv;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Load environment variables from .env file
dotenv().ok();
// Retrieve the API key from the environment variable
let api_key = env::var("API_KEY").expect("API_KEY environment variable not set");
// Initialize the RequestClient with your API key
let request_client = RequestClient::new(api_key);
// Create an Anthropic client instance
let base_url = "https://api.anthropic.com/v1";
let anthropic_client = AnthropicClient::new(&request_client, base_url);
// Create a Messages API instance
let messages_api = MessagesApi::new(&anthropic_client);
// Create a message request
let model = "claude-3-5-sonnet-20240620".to_string();
let messages = vec![json!({"role": "user", "content": "Hello, Claude"})];
let request = MessageRequest::new(model, messages)
.max_tokens(1024)
.temperature(1.0);
// Send the request and get the response
let response_result = messages_api.create(request).await;
// Handle and print the response as JSON
match response_result {
Ok(response) => {
println!("{}", response.to_string());
},
Err(e) => {
let error_response = json!({
"error": e.to_string()
});
println!("{}", error_response.to_string());
}
}
Ok(())
}
文档
请访问此链接以获取文档(WIP):此处
许可证
本项目遵循MIT许可证条款。有关详细信息,请参阅LICENSE文件。
依赖项
~6–17MB
~247K SLoC