gproxy_transform/transform/embeddings/single/
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::EmbedContentRequest, TransformError> {
12 Ok(common::openai_to_gemini_requests(input)
13 .pop()
14 .unwrap_or_default())
15}
16
17pub fn response(
18 input: openai::EmbeddingResponse,
19 _: &TransformContext,
20) -> Result<gemini::EmbedContentResponse, TransformError> {
21 Ok(crate::protocol::wire!(gemini::EmbedContentResponse {
22 embedding: input
23 .data
24 .into_iter()
25 .map(common::openai_to_gemini_embedding)
26 .next(),
27 usage_metadata: Some(common::openai_to_gemini_usage(input.usage)),
28 extra: Default::default(),
29 }))
30}