From b2fef25a5269f23ef09018a2c3d55156532fc481 Mon Sep 17 00:00:00 2001 From: sigoden Date: Tue, 3 Sep 2024 12:42:48 +0800 Subject: refactor: gemini use batch embedding api (#827) --- models.yaml | 1 + src/client/gemini.rs | 37 +++++++++++++++++++++++++++---------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/models.yaml b/models.yaml index 6d703c9..5a79454 100644 --- a/models.yaml +++ b/models.yaml @@ -112,6 +112,7 @@ output_price: 0 max_tokens_per_chunk: 2048 default_chunk_size: 1500 + max_batch_size: 100 # Links: # - https://docs.anthropic.com/claude/docs/models-overview diff --git a/src/client/gemini.rs b/src/client/gemini.rs index 9578e23..1bb31cc 100644 --- a/src/client/gemini.rs +++ b/src/client/gemini.rs @@ -74,20 +74,33 @@ fn prepare_embeddings(self_: &GeminiClient, data: EmbeddingsData) -> Result = data + .texts + .iter() + .map(|text| { + json!({ + "model": model_id, + "content": { + "parts": [ + { + "text": text + } + ] + }, + }) + }) + .collect(); + let body = json!({ - "content": { - "parts": [ - { - "text": data.texts[0], - } - ] - } + "requests": requests, }); let request_data = RequestData::new(url, body); @@ -104,13 +117,17 @@ async fn embeddings(builder: RequestBuilder, _model: &Model) -> Result, } #[derive(Deserialize)] -- cgit v1.2.3