gproxy_transform/transform/embeddings/batch/
openai_to_gemini.rs1use crate::protocol::{gemini, openai};
4use crate::transform::{TransformContext, TransformError};
5
6use super::super::common;
7
8pub fn request(
9 input: openai::EmbeddingRequest,
10 _: &TransformContext,
11) -> Result<gemini::BatchEmbedContentsRequest, TransformError> {
12 Ok(crate::protocol::wire!(gemini::BatchEmbedContentsRequest {
13 requests: common::openai_to_gemini_requests(input),
14 extra: Default::default(),
15 }))
16}
17
18pub fn response(
19 input: openai::EmbeddingResponse,
20 _: &TransformContext,
21) -> Result<gemini::BatchEmbedContentsResponse, TransformError> {
22 Ok(crate::protocol::wire!(gemini::BatchEmbedContentsResponse {
23 embeddings: input
24 .data
25 .into_iter()
26 .map(common::openai_to_gemini_embedding)
27 .collect(),
28 usage_metadata: Some(common::openai_to_gemini_usage(input.usage)),
29 extra: Default::default(),
30 }))
31}