gproxy-transform 3.0.0-alpha.0

GPROXY v3 pairwise protocol transforms
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use bytes::Bytes;
use gproxy_protocol::claude;

use crate::TransformError;

pub(crate) fn transform(body: Bytes) -> Result<Bytes, TransformError> {
    if let Ok(list) = serde_json::from_slice::<claude::ListModelsResponse>(&body) {
        let output = crate::typed::models::openai_to_claude::list_response(list)?;
        return Ok(Bytes::from(serde_json::to_vec(&output)?));
    }
    let model: claude::ModelInfo = serde_json::from_slice(&body)?;
    Ok(Bytes::from(serde_json::to_vec(
        &crate::typed::models::openai_to_claude::get_response(model)?,
    )?))
}