| Crates.io | ai-sdk-openai |
| lib.rs | ai-sdk-openai |
| version | 0.3.0 |
| created_at | 2025-11-12 10:21:36.897531+00 |
| updated_at | 2025-11-23 06:16:44.921071+00 |
| description | OpenAI provider for AI SDK - GPT, DALL-E, Whisper, and Embeddings |
| homepage | |
| repository | https://github.com/khongtrunght/ai-sdk-rust |
| max_upload_size | |
| id | 1929066 |
| size | 887,346 |
OpenAI provider implementation for the AI SDK in Rust. This crate provides a unified interface for interacting with OpenAI's models including GPT, DALL-E, Whisper, and Embeddings.
Add this to your Cargo.toml:
[dependencies]
ai-sdk-openai = "0.1"
ai-sdk-provider = "0.1"
use ai_sdk_openai::OpenAIChatModel;
use ai_sdk_provider::{LanguageModel, CallOptions, Message};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("OPENAI_API_KEY")?;
let model = OpenAIChatModel::new("gpt-4", api_key);
let options = CallOptions {
messages: vec![
Message::user("What is Rust?"),
],
..Default::default()
};
let response = model.do_generate(options).await?;
println!("Response: {}", response.text);
Ok(())
}
use ai_sdk_openai::OpenAIEmbeddingModel;
use ai_sdk_provider::EmbeddingModel;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("OPENAI_API_KEY")?;
let model = OpenAIEmbeddingModel::new("text-embedding-3-small", api_key);
let embeddings = model.do_embed(vec!["Hello, world!".to_string()]).await?;
println!("Embedding dimension: {}", embeddings[0].len());
Ok(())
}
use ai_sdk_openai::OpenAIImageModel;
use ai_sdk_provider::{ImageModel, ImageOptions};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_key = std::env::var("OPENAI_API_KEY")?;
let model = OpenAIImageModel::new("dall-e-3", api_key);
let options = ImageOptions {
prompt: "A beautiful sunset over mountains".to_string(),
..Default::default()
};
let result = model.do_generate(options).await?;
println!("Generated image URL: {}", result.url);
Ok(())
}
gpt-4 - Most capable GPT-4 modelgpt-4-turbo - GPT-4 Turbo with improved performancegpt-3.5-turbo - Fast and efficient modeltext-embedding-3-small - Smaller, faster embedding modeltext-embedding-3-large - Larger, more accurate embedding modeldall-e-2 - DALL-E 2 image generationdall-e-3 - DALL-E 3 with improved qualitytts-1 - Standard text-to-speechtts-1-hd - High-definition text-to-speechwhisper-1 - Speech-to-text transcriptionThis crate is part of the AI SDK for Rust workspace.
We welcome contributions! Please see the Contributing Guide for guidelines.
Licensed under either of:
at your option.