# openllm
SDK for OpenAI compatible APIs.
## Usage
Add `openllm` by using `cargo add openllm`.
## Features
- [x] Embedding API
- [x] Transcription & Translation API
- [x] Speech API
- [x] Chat Completion API with tools
- [x] Chat Completion API streaming
- [ ] Chat Completion API with image input
- [x] Create Image API
- [ ] Create Image Edit API
- [ ] Create Image Variant API
As assistant API is still in Beta and is super slow, so we don't have plan to support it (and relevant file APIs) for now.
## Examples
Here are some examples of how to use the SDK:
```rust
let sdk = LlmSdk::new_with_base_url("https://api.deepseek.com", "your-api-key");
// chat completion
let messages = vec![
ChatCompletionMessage::new_system("I can answer any question you ask me.", ""),
ChatCompletionMessage::new_user("What is human life expectancy in the world?", "user1"),
];
let req = ChatCompletionRequest::new(openllm::ChatCompleteModel::DeepSeekChat, messages);
let res = sdk.chat_completion(req).await?;
// stream
sdk.chat_stream(req, |msg| {
println!("Received message: {:?}", msg.choices);
})
.await?;
```
For more usage, please check the test cases.