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 每月下载量
4.5MB
95K SLoC
Clarifai Rust gRPC客户端
这是官方Clarifai gRPC Rust客户端,用于与我们的强大识别API交互。Clarifai为数据科学家、开发者、研究人员和企业提供平台,以掌握整个人工智能生命周期。使用计算机视觉和自然语言处理从图像、视频和文本中收集有价值的业务洞察。
- 在: https://clarifai.com/demo 尝试Clarifai演示
- 在: https://portal.clarifai.com/signup 注册免费账户
- 在: https://docs.clarifai.com/ 阅读文档
安装
将这些依赖项添加到 Cargo.toml
: clarifai_grpc
, protobuf
和 grpcio
。
[dependencies]
clarifai_grpc = "*"
grpcio = "0.6.0"
protobuf = "2.0"
版本
此库不使用语义版本。前两个版本号(X.Y
从 X.Y.Z
)遵循API(后端)版本,每当API更新时,此库都会跟随。
第三个版本号(Z
从 X.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