Close local release-quality gaps and reconcile workplan status
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 2s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e332-3365-77c0-8491-084e9ea33ac1
This commit is contained in:
tegwick 2026-09-27 17:36:27 +02:00
parent 37436bb562
commit 7cd633986e
56 changed files with 462 additions and 237 deletions

View file

@ -8,20 +8,20 @@ API key environment variable.
"""
import time
from typing import Optional, Dict, Any
from typing import Any
from llm_connect.embedding_adapter import EmbeddingAdapter
from llm_connect.config import resolve_api_key, find_project_root
from llm_connect._http import post_json
from llm_connect.config import find_project_root, resolve_api_key
from llm_connect.embedding_adapter import EmbeddingAdapter
from llm_connect.exceptions import (
LLMConfigurationError,
LLMAPIError,
LLMConfigurationError,
LLMRateLimitError,
)
_DEFAULT_MODEL = "text-embedding-3-small"
_PROVIDER_DEFAULTS: Dict[str, Dict[str, str]] = {
_PROVIDER_DEFAULTS: dict[str, dict[str, str]] = {
"openai": {
"api_base": "https://api.openai.com/v1",
"env_var": "OPENAI_API_KEY",
@ -42,9 +42,9 @@ class OpenAICompatibleEmbeddingAdapter(EmbeddingAdapter):
def __init__(
self,
model: Optional[str] = None,
api_key: Optional[str] = None,
api_base: Optional[str] = None,
model: str | None = None,
api_key: str | None = None,
api_base: str | None = None,
provider: str = "openai",
max_retries: int = 3,
):
@ -85,7 +85,7 @@ class OpenAICompatibleEmbeddingAdapter(EmbeddingAdapter):
)
url = f"{self._api_base}/embeddings"
payload: Dict[str, Any] = {
payload: dict[str, Any] = {
"model": self._model,
"input": texts,
}
@ -105,10 +105,10 @@ class OpenAICompatibleEmbeddingAdapter(EmbeddingAdapter):
def _post_with_retries(
self,
url: str,
payload: Dict[str, Any],
headers: Dict[str, str],
) -> Dict[str, Any]:
last_exc: Optional[Exception] = None
payload: dict[str, Any],
headers: dict[str, str],
) -> dict[str, Any]:
last_exc: Exception | None = None
for attempt in range(self._max_retries + 1):
try:
return post_json(url, payload, headers)