This crate provides a simplified interface with the Cohere API in Rust.
See the Cohere API's documentation.
Also see some code examples for the SDK here.
To use this crate, you must first obtain a Cohere API key. Once you have an API key you can either set it as the COHERE_API_KEY
environment variable or pass it directly when constructing the client.
Additionally, this crate relies on the tokio async-runtime to make all the API operations non-blocking.
This is a basic example of the creating the client and using the chat
endpoint.
use cohere_rust::api::chat::ChatRequest;
use cohere_rust::api::GenerateModel;
use cohere_rust::Cohere;
#[tokio::main]
async fn main() {
// automatically reads API key from `COHERE_API_KEY`
let co = Cohere::default();
let request = ChatRequest {
message: "Tell me a story about a magical land.",
model: Some(GenerateModel::CommandR),
..Default::default()
};
match co.chat(&request).await {
Ok(mut rx) => {
while let Some(message) = rx.recv().await {
match message {
Ok(message) => println!("Chat response: {:#?}", message),
Err(e) => println!("Chat error! {:#?}", e),
}
}
}
Err(e) => {
println!("Chat failed! {}", e)
}
}
}
Example usage of other endpoints can be found here.
This SDK supports the latest API version. For more information, please refer to the Versioning Docs.
For a full breakdown of endpoints and arguments, please consult the Cohere Docs.
Cohere Endpoint | Function |
---|---|
/generate | co.generate() |
/chat | co.chat() |
/embed | co.embed() |
/rerank | co.rerank() |
/classify | co.classify() |
/tokenize | co.tokenize() |
/detokenize | co.detokenize() |
/check-api-key | co.check_api_key() |
All of the endpoint functions will return a Cohere object corresponding to the endpoint (e.g. for generate, it would be GenerateResponse
). The names of these fields and a detailed breakdown of the response body can be found in the Cohere Docs.
Unsuccessful API calls from the SDK will return an error. Please see the documentation's page on errors for more information about what the errors mean.