Merge branch 'refactor/backend-architecture' into development

This commit is contained in:
yangshilin
2026-03-18 17:18:23 +08:00
parent 2070a03d35
commit 48b70e1350
266 changed files with 12386 additions and 9690 deletions

View File

@@ -0,0 +1,21 @@
"""OpenAI embedding adapter — implements EmbeddingProvider port."""
from openai import AsyncOpenAI
class OpenAIEmbeddingProvider:
def __init__(self, api_key: str, model: str = "text-embedding-3-small"):
self._client = AsyncOpenAI(api_key=api_key) if api_key else None
self._model = model
async def embed_text(self, text: str) -> list[float]:
if not self._client:
return []
resp = await self._client.embeddings.create(input=[text], model=self._model)
return resp.data[0].embedding
async def embed_texts(self, texts: list[str]) -> list[list[float]]:
if not self._client or not texts:
return []
resp = await self._client.embeddings.create(input=texts, model=self._model)
return [item.embedding for item in sorted(resp.data, key=lambda d: d.index)]