Skip to main content

outfox_openai/spec/shared/
transcription_usage.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, Clone)]
4pub struct TokenUsageInputTokenDetails {
5    /// Number of audio tokens billed for this request.
6    pub audio_tokens: u32,
7    /// Number of text tokens billed for this request.
8    pub text_tokens: u32,
9}
10
11#[derive(Debug, Serialize, Deserialize, Clone)]
12pub struct TranscriptTextUsageTokens {
13    /// Number of input tokens billed for this request.
14    pub input_tokens: u32,
15    /// Number of output tokens generated.
16    pub output_tokens: u32,
17    /// Total number of tokens used (input + output).
18    pub total_tokens: u32,
19    /// Details about the input tokens billed for this request.
20    pub input_token_details: Option<TokenUsageInputTokenDetails>,
21}
22
23#[derive(Debug, Serialize, Deserialize, Clone)]
24pub struct TranscriptTextUsageDuration {
25    /// Duration of the input audio in seconds.
26    pub seconds: f32,
27}
28
29#[derive(Debug, Serialize, Deserialize, Clone)]
30#[serde(tag = "type")]
31pub enum TranscriptionUsage {
32    #[serde(rename = "tokens")]
33    Tokens(TranscriptTextUsageTokens),
34    #[serde(rename = "duration")]
35    Duration(TranscriptTextUsageDuration),
36}