refactor: extract _flatten_and_detect_file_refs helper, warn on ModuleNotFoundError

This commit is contained in:
Chesars 2026-03-22 01:52:44 -03:00
parent 7091f87a7a
commit b038c0714c
2 changed files with 24 additions and 18 deletions

View file

@ -50,8 +50,13 @@ class GetModelCostMap:
.read_text(encoding="utf-8") .read_text(encoding="utf-8")
) )
return content return content
except (FileNotFoundError, ModuleNotFoundError): except FileNotFoundError:
pass pass
except ModuleNotFoundError:
verbose_logger.warning(
"LiteLLM: Could not load model cost map from package resources. "
"Falling back to project root."
)
current_dir = Path(__file__).parent.parent.parent current_dir = Path(__file__).parent.parent.parent
model_cost_map_path = current_dir / "model_prices_and_context_window.json" model_cost_map_path = current_dir / "model_prices_and_context_window.json"

View file

@ -3,7 +3,7 @@ Google AI Studio /batchEmbedContents Embeddings Endpoint
""" """
import json import json
from typing import Any, Dict, Literal, Optional, Union from typing import Any, Dict, List, Literal, Optional, Tuple, Union
import httpx import httpx
@ -32,6 +32,21 @@ from .batch_embed_content_transformation import (
class GoogleBatchEmbeddings(VertexLLM): class GoogleBatchEmbeddings(VertexLLM):
@staticmethod
def _flatten_and_detect_file_refs(
input: EmbeddingInput,
) -> Tuple[List[str], bool]:
"""Flatten nested input lists and detect file references."""
input_list = [input] if isinstance(input, str) else input
flat_elements = [
e
for item in input_list
for e in (item if isinstance(item, list) else [item])
if isinstance(e, str)
]
has_file_refs = any(_is_file_reference(e) for e in flat_elements)
return flat_elements, has_file_refs
def _resolve_file_references( def _resolve_file_references(
self, self,
input: EmbeddingInput, input: EmbeddingInput,
@ -214,14 +229,7 @@ class GoogleBatchEmbeddings(VertexLLM):
resolved_files=resolved_files, resolved_files=resolved_files,
) )
else: else:
input_list = [input] if isinstance(input, str) else input flat_elements, has_file_refs = self._flatten_and_detect_file_refs(input)
flat_elements = [
e
for item in input_list
for e in (item if isinstance(item, list) else [item])
if isinstance(e, str)
]
has_file_refs = any(_is_file_reference(e) for e in flat_elements)
if has_file_refs and not api_key: if has_file_refs and not api_key:
raise ValueError( raise ValueError(
"An API key is required to resolve Gemini file references (files/...). " "An API key is required to resolve Gemini file references (files/...). "
@ -323,14 +331,7 @@ class GoogleBatchEmbeddings(VertexLLM):
resolved_files=resolved_files, resolved_files=resolved_files,
) )
else: else:
input_list = [input] if isinstance(input, str) else input flat_elements, has_file_refs = self._flatten_and_detect_file_refs(input)
flat_elements = [
e
for item in input_list
for e in (item if isinstance(item, list) else [item])
if isinstance(e, str)
]
has_file_refs = any(_is_file_reference(e) for e in flat_elements)
if has_file_refs and not api_key: if has_file_refs and not api_key:
raise ValueError( raise ValueError(
"An API key is required to resolve Gemini file references (files/...). " "An API key is required to resolve Gemini file references (files/...). "