#kit #applications #sdk #palm #client #advanced #harness

palm2-sdk

PaLM-2.0-Rust-SDK 是一款创新的软件开发工具包,它使开发者能够利用 Rust 编程语言调用 Google PaLM 2.0 技术的尖端功能。使用此 SDK,您可以将 PaLM 2.0 的先进功能无缝集成到 Rust 项目中,创建前所未有的智能应用程序。💡

1 个不稳定版本

0.1.0 2023年7月11日

#1948开发工具

自定义许可

32KB
643

Rust PaLM 2.0 SDK

Rust PaLM 2.0 SDK 是一款软件开发工具包,允许开发者轻松访问 PALM 2.0 API,而无需管理单个 API 调用。

此库是 reqwest 库的包装器。

安装

命令行

在您的 cargo 项目中运行以下命令

cargo add palm2_sdk

Cargo.toml

在您的 cargo.toml 中添加以下行

palm2_sdk = "0.1.0" 

然后运行以下命令

cargo build

用法

首先初始化客户端

let client = Client::new(
    |_resource| String::from("$API_KEY"),
    None,
    None,
    None,
    None,
);

此库以不同的方式处理 api_keys。API 密钥以回调函数或闭包的形式提供。这允许在资源级别提供密钥。

此库允许组织通过指定给客户端的回调函数在应用程序中构建和添加自定义业务逻辑。否则,应指定 None。具体来说,库允许客户端注入一个函数,用于根据获取的资源自定义 Http 方法,一个指定资源级别的全局头映射的函数,一个根据查询和路径参数、api 令牌和方法生成查询 URL 的函数。此外,还可以提供一个可选的 reqwest::Client,以便自定义用于获取资源的客户端。

为了查询数据,请使用 Clientquery 函数生成一个 Query

首先生成查询的输入数据。所有请求、响应和核心实体都位于 use palm2_sdk::entities

let input: GenerateTextRequest = GenerateTextRequest {
    prompt: TextPrompt { 
        text: String::from("Write a story from the perspective of Mickey Mouse")
    },
    temperature: None,
    candidate_count: None,
    top_p: None, 
    top_k: None,
    max_output_tokens: None, 
    safety_settings: None,
    stop_sequences: None
};

然后创建 Query

let query = client
    .query(Resource::GenerateText)
    .add_path_parameter(String::from("model"), String::from("text-bison-001"))
    .body(input)
    .build();

为了获取资源并获得响应,请使用 (async) 的 executeexecute_raw 函数。

let response: Response<GenerateTextResponse> = execute(query).await?;

println!("Generated Ouput: {}", response.value.candidates[0].output);
let response: Response<String> = execute_raw(query).await?;

println!("Raw Output: {}", response.value);

execute 将响应数据反序列化为结构体,以便其值可以在程序中使用。

execute_raw 将响应数据保持为字符串表示。当库用于反向代理时,使用此函数而不是 execute 函数,因为代理不需要反序列化和重新序列化数据。本质上,execute_raw 减少了代理环境中的过热并提高了库的性能。

致谢

(c) NovX Education (uninc) 及其附属公司

由 Neil Shirsat(NovX Education 的 CTO、CIO、CPO、首席架构师)编写

感谢 Aniruddh Anand(NovX Education 的 CEO)管理测试此库的 API。

请向 [email protected] 报告任何安全漏洞。

依赖项

~6–19MB
~271K SLoC