first push
This commit is contained in:
0
backend/app/services/delivery_service.py
Normal file
0
backend/app/services/delivery_service.py
Normal file
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": [],
|
||||
}
|
||||
11
backend/app/services/retrieval_service.py
Normal file
11
backend/app/services/retrieval_service.py
Normal file
@@ -0,0 +1,11 @@
|
||||
from app.repositories.qdrant_repository import QdrantRepository
|
||||
from app.services.embedding_service import build_embedding
|
||||
|
||||
|
||||
qdrant_repository = QdrantRepository()
|
||||
|
||||
|
||||
async def find_existing_project(user_input: str):
|
||||
# query_vector = await build_embedding.get_mesh_embedding(user_input)
|
||||
dummy_vector = [0.0] * 1024 # A modifier avec un vrai embedding plus tard TODO
|
||||
return await qdrant_repository.search_similar_project(query_vector=dummy_vector)
|
||||
6
backend/app/services/workflow_service.py
Normal file
6
backend/app/services/workflow_service.py
Normal file
@@ -0,0 +1,6 @@
|
||||
from app.graph.workflow import compiled_graph
|
||||
|
||||
|
||||
async def run_arc_workflow(user_input: str) -> dict:
|
||||
result = await compiled_graph.ainvoke({"user_input": user_input})
|
||||
return result
|
||||
Reference in New Issue
Block a user