diff --git a/litellm-rust/crates/ai-gateway/src/audio_transcription/mod.rs b/litellm-rust/crates/ai-gateway/src/audio_transcription/mod.rs deleted file mode 100644 index dbe55cc15b0..00000000000 --- a/litellm-rust/crates/ai-gateway/src/audio_transcription/mod.rs +++ /dev/null @@ -1,42 +0,0 @@ -use litellm_core::Error; -use litellm_core::audio_transcription::{AudioRoute, AudioRouteRequest, DefaultAudioServices}; -use serde_json::Value; - -mod types; - -pub use types::AudioTranscriptionRequest; - -pub async fn audio_transcription(request: AudioTranscriptionRequest<'_>) -> Result { - let AudioTranscriptionRequest { - model, - audio, - api_key, - api_base, - custom_llm_provider, - extra_headers, - optional_params, - timeout, - callbacks, - guardrails, - request_metadata, - litellm_call_id, - } = request; - let services = DefaultAudioServices::new(callbacks, guardrails); - AudioRoute::execute( - &services, - AudioRouteRequest { - model, - audio, - api_key, - api_base, - custom_llm_provider, - extra_headers, - optional_params, - timeout, - request_metadata, - litellm_call_id, - }, - ) - .await - .into_result() -} diff --git a/litellm-rust/crates/ai-gateway/src/audio_transcription/types.rs b/litellm-rust/crates/ai-gateway/src/audio_transcription/types.rs deleted file mode 100644 index f8581f86c89..00000000000 --- a/litellm-rust/crates/ai-gateway/src/audio_transcription/types.rs +++ /dev/null @@ -1,22 +0,0 @@ -use std::sync::Arc; -use std::time::Duration; - -use litellm_core::integrations::custom_guardrail::CustomGuardrail; -use litellm_core::integrations::custom_logger::CustomLogger; -use litellm_core::integrations::types::RequestMetadata; -use serde_json::{Map, Value}; - -pub struct AudioTranscriptionRequest<'a> { - pub model: &'a str, - pub audio: Value, - pub api_key: Option<&'a str>, - pub api_base: Option<&'a str>, - pub custom_llm_provider: Option<&'a str>, - pub extra_headers: Option>, - pub optional_params: Map, - pub timeout: Option, - pub callbacks: Vec>, - pub guardrails: Vec>, - pub request_metadata: RequestMetadata, - pub litellm_call_id: Option<&'a str>, -} diff --git a/litellm-rust/crates/ai-gateway/src/io/audio_transcription.rs b/litellm-rust/crates/ai-gateway/src/io/audio_transcription.rs deleted file mode 100644 index 80d9e401a5f..00000000000 --- a/litellm-rust/crates/ai-gateway/src/io/audio_transcription.rs +++ /dev/null @@ -1 +0,0 @@ -pub use crate::audio_transcription::{AudioTranscriptionRequest, audio_transcription}; diff --git a/litellm-rust/crates/ai-gateway/src/io/mod.rs b/litellm-rust/crates/ai-gateway/src/io/mod.rs index b26180c495e..590a21cf5ca 100644 --- a/litellm-rust/crates/ai-gateway/src/io/mod.rs +++ b/litellm-rust/crates/ai-gateway/src/io/mod.rs @@ -1,2 +1 @@ -pub mod audio_transcription; pub mod realtime_pool; diff --git a/litellm-rust/crates/ai-gateway/src/lib.rs b/litellm-rust/crates/ai-gateway/src/lib.rs index c2f53167d23..21e31d748ce 100644 --- a/litellm-rust/crates/ai-gateway/src/lib.rs +++ b/litellm-rust/crates/ai-gateway/src/lib.rs @@ -8,7 +8,6 @@ //! `axum` are gated behind the `server` feature, which the `litellm-ai-gateway` //! binary turns on. -pub mod audio_transcription; pub mod io; #[cfg(feature = "server")] diff --git a/litellm-rust/crates/ai-gateway/tests/audio_transcription.rs b/litellm-rust/crates/ai-gateway/tests/audio_transcription.rs deleted file mode 100644 index 1c60e3ef848..00000000000 --- a/litellm-rust/crates/ai-gateway/tests/audio_transcription.rs +++ /dev/null @@ -1,52 +0,0 @@ -use std::io::{Read, Write}; -use std::net::TcpListener; -use std::thread; - -use litellm_ai_gateway::audio_transcription::{AudioTranscriptionRequest, audio_transcription}; -use serde_json::{Map, json}; - -#[tokio::test] -async fn bedrock_request_is_signed_and_contains_audio() { - let listener = TcpListener::bind("127.0.0.1:0").expect("listener"); - let address = listener.local_addr().expect("address"); - let server = thread::spawn(move || { - let (mut stream, _) = listener.accept().expect("connection"); - let mut request = Vec::new(); - let mut buffer = [0_u8; 16_384]; - let count = stream.read(&mut buffer).expect("request"); - request.extend_from_slice(&buffer[..count]); - let request = String::from_utf8_lossy(&request); - assert!(request.contains("POST /model/mistral.voxtral-mini-3b-2507/converse")); - assert!(request.contains("authorization: AWS4-HMAC-SHA256")); - assert!(request.contains("x-amz-date:")); - assert!(request.contains("\"bytes\":\"AQI=\"")); - assert!(request.contains("Transcribe the audio. Respond with only the transcript.")); - let response = b"HTTP/1.1 200 OK\r\nContent-Type: application/json\r\nContent-Length: 53\r\nConnection: close\r\n\r\n{\"output\":{\"message\":{\"content\":[{\"text\":\"hello\"}]}}}"; - stream.write_all(response).expect("response"); - }); - - let optional_params = Map::from_iter([ - ("aws_access_key_id".to_string(), json!("access-key")), - ("aws_secret_access_key".to_string(), json!("secret-key")), - ("aws_region_name".to_string(), json!("us-east-1")), - ]); - let api_base = format!("http://{address}"); - let response = audio_transcription(AudioTranscriptionRequest { - model: "mistral.voxtral-mini-3b-2507", - audio: json!({"data": "AQI=", "format": "wav", "filename": "audio.wav"}), - api_key: None, - api_base: Some(&api_base), - custom_llm_provider: Some("bedrock"), - extra_headers: None, - optional_params, - timeout: None, - callbacks: Vec::new(), - guardrails: Vec::new(), - request_metadata: Default::default(), - litellm_call_id: None, - }) - .await - .expect("transcription"); - assert_eq!(response, json!({"text": "hello"})); - server.join().expect("server"); -}