4 个版本
0.0.5 | 2023 年 8 月 27 日 |
---|---|
0.0.4 | 2023 年 8 月 27 日 |
0.0.3 | 2023 年 8 月 26 日 |
0.0.2 | 2023 年 8 月 25 日 |
0.0.1 |
|
619 在 网页编程
每月 24 下载
在 lemon-llm 中使用
89KB
1.5K SLoC
Replicate Rust 客户端
Replicate 的非官方 Rust 客户端
Replicate 的非官方 Rust 客户端。通过将 API 响应反序列化为 Rust 结构体,提供了一种类型安全的接口。
入门指南
将 replicate_rust
添加到 Cargo.toml
[dependencies]
replicate-rust = "0.0.5"
从 replicate.com/account 获取您的令牌并将其设置为环境变量
export REPLICATE_API_TOKEN=<your token>
以下是一个使用 replicate_rust
运行模型的示例
use replicate_rust::{config::Config, Replicate, errors::ReplicateError};
fn main() -> Result<(), ReplicateError> {
let config = Config::default();
// Instead of using the default config ( which reads API token from env variable), you can also set the token directly:
// let config = Config {
// auth: String::from("REPLICATE_API_TOKEN"),
// ..Default::default()
// };
let replicate = Replicate::new(config);
// Construct the inputs.
let mut inputs = std::collections::HashMap::new();
inputs.insert("prompt", "a 19th century portrait of a wombat gentleman");
let version = "stability-ai/stable-diffusion:27b93a2413e7f36cd83da926f3656280b2931564ff050bf9575f1fdf9bcd7478";
// Run the model.
let result = replicate.run(version, inputs)?;
// Print the result.
println!("{:?}", result.output);
// Some(Array [String("https://pbxt.replicate.delivery/QLDGe2rXuIQ9ByMViQEXrYCkKfDi9I3YWAzPwWsDZWMXeN7iA/out-0.png")])```
Ok(())
}
用法
有关详细 API 文档,请参阅 参考文档。
示例
-
在后台运行模型
// Construct the inputs. let mut inputs = std::collections::HashMap::new(); inputs.insert("prompt", "a 19th century portrait of a wombat gentleman"); let version = "stability-ai/stable-diffusion:27b93a2413e7f36cd83da926f3656280b2931564ff050bf9575f1fdf9bcd7478"; // Run the model. let mut prediction = replicate.predictions.create(version, inputs)?; println!("{:?}", prediction.status); // 'starting' prediction.reload()?; println!("{:?}", prediction.status); // 'processing' println!("{:?}", prediction.logs); // Some("Using seed: 3599 // 0%| | 0/50 [00:00<?, ?it/s] // 4%|▍ | 2/50 [00:00<00:04, 10.00it/s] // 8%|▊ | 4/50 [00:00<00:03, 11.56it/s] let prediction = prediction.wait()?; println!("{:?}", prediction.status); // 'succeeded' println!("{:?}", prediction.output);
-
取消预测
// Construct the inputs. let mut inputs = std::collections::HashMap::new(); inputs.insert("prompt", "a 19th century portrait of a wombat gentleman"); let version = "stability-ai/stable-diffusion:27b93a2413e7f36cd83da926f3656280b2931564ff050bf9575f1fdf9bcd7478"; // Run the model. let mut prediction = replicate.predictions.create(version, inputs)?; println!("{:?}", prediction.status); // 'starting' prediction.cancel()?; prediction.reload()?; println!("{:?}", prediction.status); // 'cancelled'
-
列出预测
let predictions = replicate.predictions.list()?; println!("{:?}", predictions); // ListPredictions { ... }
-
获取模型信息
let model = replicate.models.get("replicate", "hello-world")?; println!("{:?}", model); // GetModel { ... }
-
获取版本列表
let versions = replicate.models.versions.list("replicate", "hello-world")?; println!("{:?}", versions); // ListModelVersions { ... }
-
获取模型版本信息
let model = replicate.models.versions.get("kvfrans", "clipdraw", "5797a99edc939ea0e9242d5e8c9cb3bc7d125b1eac21bda852e5cb79ede2cd9b",)?; println!("{:?}", model); // GetModelVersion { ... }
-
获取集合信息
let collection = replicate.collections.get("audio-generation")?; println!("{:?}", collection); // GetCollectionModels { ... }//! ```
-
获取集合列表
let collections = replicate.collections.list()?; println!("{:?}", collections); // ListCollectionModels { ... }
依赖项
~4–19MB
~248K SLoC