9个稳定版本

8.0.0 2021年12月31日
7.11.0 2021年12月3日
7.10.0 2021年11月1日
7.9.0 2021年9月29日
0.0.2 2020年11月19日

460文本处理 中排名

24 每月下载量

Apache-2.0

4.5MB
95K SLoC

Clarifai logo

Clarifai Rust gRPC客户端

这是官方Clarifai gRPC Rust客户端,用于与我们的强大识别API交互。Clarifai为数据科学家、开发者、研究人员和企业提供平台,以掌握整个人工智能生命周期。使用计算机视觉和自然语言处理从图像、视频和文本中收集有价值的业务洞察。

crates.io Run tests

安装

将这些依赖项添加到 Cargo.tomlclarifai_grpcprotobufgrpcio

[dependencies]
clarifai_grpc = "*"
grpcio = "0.6.0"
protobuf = "2.0"

版本

此库不使用语义版本。前两个版本号(X.YX.Y.Z)遵循API(后端)版本,每当API更新时,此库都会跟随。

第三个版本号(ZX.Y.Z)由此库用于任何独立的库特定改进和错误修复发布。

入门

使用用于访问所有Clarifai API功能并用于身份验证的V2Client对象以及CallOption对象构建对象。

use grpcio::{CallOption, MetadataBuilder};
use protobuf::{RepeatedField, SingularPtrField};

use clarifai_grpc::clarifai_channel;
use clarifai_grpc::grpc::resources;
use clarifai_grpc::grpc::service;
use clarifai_grpc::grpc::service_grpc::V2Client;
use clarifai_grpc::grpc::status_code::StatusCode;

let client = V2Client::new(clarifai_channel::grpc());

// Setup authentication.
let auth = "Key YOUR_CLARIFAI_API_KEY_OR_PAT".to_string();

let mut builder = MetadataBuilder::with_capacity(1);
builder.add_str("Authorization", &auth).unwrap();
let metadata = builder.build();
let call_opt = CallOption::default().headers(metadata);

在Windows和macOS上,gRPC需要显式设置SSL信任根。一种方法是设置GRPC_DEFAULT_SSL_ROOTS_FILE_PATH环境变量。要在macOS上这样做,请使用

curl -Lo roots.pem https://raw.githubusercontent.com/grpc/grpc/master/etc/roots.pem
export GRPC_DEFAULT_SSL_ROOTS_FILE_PATH="$PWD/roots.pem"

在Windows上使用

@powershell -NoProfile -ExecutionPolicy unrestricted -Command ^
    (new-object System.Net.WebClient).Downloadfile( ^
        'https://raw.githubusercontent.com/grpc/grpc/master/etc/roots.pem', ^
        'roots.pem')
set GRPC_DEFAULT_SSL_ROOTS_FILE_PATH=%cd%\roots.pem

更多信息请参阅此处

预测图像中的概念

// This is a publicly available model.
const GENERAL_MODEL_ID: &str = "aaa03c23b3724a16a56b629203edc62c";

let request = service::PostModelOutputsRequest {
    model_id: GENERAL_MODEL_ID.to_string(),
    inputs: RepeatedField::from(vec![resources::Input {
        data: SingularPtrField::some(resources::Data {
            image: SingularPtrField::some(resources::Image {
                url: "https://samples.clarifai.com/dog2.jpeg".to_string(),
                ..Default::default()
            }),
            ..Default::default()
        }),
        ..Default::default()
    }]),
    ..Default::default()
};
let response = client
    .post_model_outputs_opt(&request, call_opt)
    .expect("Failure");

let status = response.get_status();
if status.get_code() != StatusCode::SUCCESS {
    println!("Failure response:");
    println!("\t{:?}", status.get_code());
    println!("\t{}", status.get_description());
    println!("\t{}", status.get_details());
    std::process::exit(1);
}

println!("Predicted concepts:");
for concept in response.get_outputs()[0].get_data().get_concepts() {
    println!("\t{}: {}", concept.get_name(), concept.get_value());
}

依赖项

~33MB
~652K SLoC