#anthropic #sdk #api-key #json-format #api-client #api #rust

rusty-anthropic

用于与Anthropic API交互的Rust SDK,支持视觉等功能

1个不稳定版本

0.1.0 2024年8月8日

#1490Web编程

Download history 92/week @ 2024-08-03 13/week @ 2024-08-10

每月下载 105

MIT 许可证

24KB
234 代码行

Rusty Anthropic客户端

用于与Anthropic API交互的Rust客户端,包括消息和文本补全的示例。此客户端使用dotenv crate来安全地管理环境变量。

目录

特性

  • 支持Anthropic API的消息和文本补全端点
  • 使用dotenv crate从环境变量中加载API密钥
  • 优雅地处理错误,并以JSON格式返回响应

安装

要使用Rusty Anthropic客户端,请按照以下步骤操作

  1. 将所需依赖项添加到您的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"
  1. 在项目的根目录中创建一个.env文件以存储您的API密钥
API_KEY=your_api_key_here

配置

客户端使用dotenv crate来加载环境变量。请确保您的项目根目录中有一个包含以下内容的.env文件

API_KEY=your_api_key_here

此文件应包含在您的.gitignore中,以防止您的API密钥被提交到版本控制。

用法

以下是一个展示如何使用消息API和文本补全API的示例。

消息API示例

  1. 创建一个名为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