use crate::core::types::{TranscriptionOptions, TranscriptionResult};
use crate::openai::transcription::OpenAITranscriptionModel;
use async_trait::async_trait;
use reqwest::Client;
pub struct XaiTranscriptionModel {
pub inner: OpenAITranscriptionModel,
}
impl XaiTranscriptionModel {
#[must_use]
pub fn new(api_key: String, base_url: String) -> Self {
Self {
inner: OpenAITranscriptionModel {
api_key,
base_url,
client: Client::new(),
},
}
}
}
#[async_trait]
impl crate::core::TranscriptionModel for XaiTranscriptionModel {
async fn transcribe(&self, options: TranscriptionOptions) -> crate::core::Result<TranscriptionResult> {
self.inner.transcribe(options).await
}
}