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
,以便自定义用于获取资源的客户端。
为了查询数据,请使用 Client
的 query
函数生成一个 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) 的 execute
和 execute_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