Skip to main content

gproxy_protocol/transform/claude/model_list/openai/
utils.rs

1use http::StatusCode;
2use time::OffsetDateTime;
3
4use crate::claude::types::{BetaErrorResponse, BetaModelInfo, BetaModelType};
5use crate::openai::types::{OpenAiApiErrorResponse, OpenAiModel};
6use crate::transform::claude::utils::beta_error_response_from_status_message;
7
8pub fn beta_model_info_from_openai_model(model: OpenAiModel) -> BetaModelInfo {
9    let id = model.id;
10    BetaModelInfo {
11        id: id.clone(),
12        created_at: OffsetDateTime::from_unix_timestamp(model.created as i64)
13            .unwrap_or(OffsetDateTime::UNIX_EPOCH),
14        display_name: id,
15        max_input_tokens: None,
16        max_tokens: None,
17        capabilities: None,
18        type_: BetaModelType::Model,
19    }
20}
21
22pub fn beta_error_response_from_openai(
23    status_code: StatusCode,
24    body: OpenAiApiErrorResponse,
25) -> BetaErrorResponse {
26    beta_error_response_from_status_message(status_code, body.error.message)
27}