first push
This commit is contained in:
40
backend/app/services/embedding_service.py
Normal file
40
backend/app/services/embedding_service.py
Normal file
@@ -0,0 +1,40 @@
|
||||
import httpx
|
||||
from app.core.config import settings
|
||||
|
||||
|
||||
async def build_embedding(text: str) -> dict:
|
||||
"""
|
||||
Génère un vecteur d'embedding en interrogeant le conteneur local llama.cpp
|
||||
"""
|
||||
url = f"{settings.embedding_base_url}/embeddings"
|
||||
|
||||
headers = {
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
payload = {
|
||||
"input": text,
|
||||
"model": settings.embedding_model
|
||||
}
|
||||
|
||||
async with httpx.AsyncClient(timeout=30.0) as client:
|
||||
try:
|
||||
response = await client.post(url, json=payload, headers=headers)
|
||||
response.raise_for_status()
|
||||
|
||||
data = response.json()
|
||||
vector = data["data"][0]["embedding"]
|
||||
|
||||
return {
|
||||
"model": settings.embedding_model,
|
||||
"text_length": len(text),
|
||||
"vector": vector,
|
||||
}
|
||||
|
||||
except httpx.HTTPError as e:
|
||||
print(f"Erreur lors de la génération de l'embedding : {e}")
|
||||
return {
|
||||
"model": settings.embedding_model,
|
||||
"text_length": len(text),
|
||||
"vector": [],
|
||||
}
|
||||
Reference in New Issue
Block a user