Skip to main content

artificial_openai/
provider_impl_transcription.rs

1use std::{future::Future, pin::Pin, sync::Arc};
2
3use artificial_core::{
4    error::Result,
5    provider::{TranscriptionProvider, TranscriptionRequest, TranscriptionResult},
6};
7
8use crate::OpenAiAdapter;
9
10impl TranscriptionProvider for OpenAiAdapter {
11    fn transcribe<'s>(
12        &'s self,
13        request: TranscriptionRequest,
14    ) -> Pin<Box<dyn Future<Output = Result<TranscriptionResult>> + Send + 's>> {
15        let client = Arc::clone(&self.client);
16        Box::pin(async move { Ok(client.audio_transcription(request).await?) })
17    }
18}