From e503934df2f41db2fb0bdfdae6032630f65fed11 Mon Sep 17 00:00:00 2001 From: Salman Paracha Date: Sun, 10 Aug 2025 23:15:36 -0700 Subject: [PATCH] some more clean-up --- crates/hermesllm/src/apis/openai.rs | 67 +++++++++++++++-------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/crates/hermesllm/src/apis/openai.rs b/crates/hermesllm/src/apis/openai.rs index 168e0e42..efe49a0e 100644 --- a/crates/hermesllm/src/apis/openai.rs +++ b/crates/hermesllm/src/apis/openai.rs @@ -490,18 +490,27 @@ impl ProviderResponse for ChatCompletionsResponse { } } -// Implementation of TokenUsage for OpenAI Usage type -impl TokenUsage for Usage { - fn completion_tokens(&self) -> usize { - self.completion_tokens as usize - } +// ============================================================================ +// PARAMETERIZED CONVERSIONS FOR PROVIDER FUNCTIONS +// ============================================================================ - fn prompt_tokens(&self) -> usize { - self.prompt_tokens as usize - } +use crate::providers::ProviderId; - fn total_tokens(&self) -> usize { - self.total_tokens as usize +/// Parameterized conversion for ChatCompletionsRequest +impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsRequest { + type Error = OpenAIStreamError; + + fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result { + serde_json::from_slice(bytes).map_err(OpenAIStreamError::from) + } +} + +/// Parameterized conversion for ChatCompletionsResponse +impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsResponse { + type Error = OpenAIStreamError; + + fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result { + serde_json::from_slice(bytes).map_err(OpenAIStreamError::from) } } @@ -532,6 +541,21 @@ impl ProviderStreamResponse for ChatCompletionsStreamResponse { } } +// Implementation of TokenUsage for OpenAI Usage type +impl TokenUsage for Usage { + fn completion_tokens(&self) -> usize { + self.completion_tokens as usize + } + + fn prompt_tokens(&self) -> usize { + self.prompt_tokens as usize + } + + fn total_tokens(&self) -> usize { + self.total_tokens as usize + } +} + // Error type for streaming operations #[derive(Debug, thiserror::Error)] pub enum OpenAIStreamError { @@ -607,29 +631,6 @@ where // Just marking that this type implements the trait - no additional methods needed } -// ============================================================================ -// PARAMETERIZED CONVERSIONS FOR PROVIDER FUNCTIONS -// ============================================================================ - -use crate::providers::ProviderId; - -/// Parameterized conversion for ChatCompletionsRequest -impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsRequest { - type Error = OpenAIStreamError; - - fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result { - serde_json::from_slice(bytes).map_err(OpenAIStreamError::from) - } -} - -/// Parameterized conversion for ChatCompletionsResponse -impl TryFrom<(&[u8], &ProviderId)> for ChatCompletionsResponse { - type Error = OpenAIStreamError; - - fn try_from((bytes, _provider_id): (&[u8], &ProviderId)) -> Result { - serde_json::from_slice(bytes).map_err(OpenAIStreamError::from) - } -} #[cfg(test)] mod tests {