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 2023 年 8 月 25 日

619网页编程

每月 24 下载
lemon-llm 中使用

MIT 许可证

89KB
1.5K SLoC

Replicate Rust 客户端

Replicate 的非官方 Rust 客户端

Documentation Latest Version Tests Rust

文档 · Crate · 报告错误 · 请求功能

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