55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
import asyncio
|
|
import random
|
|
from app.repositories.qdrant_repository import QdrantRepository
|
|
from qdrant_client.http import models
|
|
|
|
async def test_pipeline():
|
|
print("--- Test de connexion Qdrant ---")
|
|
repo = QdrantRepository()
|
|
|
|
try:
|
|
# 1. Tester la connexion et initialiser la collection
|
|
await repo.init_collection(vector_size=1024)
|
|
|
|
# 2. Insérer un faux projet pour valider le fonctionnement (Upsert)
|
|
print("\n[Test] Insertion d'un faux projet indexé...")
|
|
mock_vector = [random.uniform(-1.0, 1.0) for _ in range(1024)]
|
|
|
|
await repo.client.upsert(
|
|
collection_name=repo.collection_name,
|
|
points=[
|
|
models.PointStruct(
|
|
id=1,
|
|
vector=mock_vector,
|
|
payload={
|
|
"title": "Application E-commerce de test",
|
|
"description": "Un projet test généré pour valider Qdrant",
|
|
"git_url": "https://github.com/test/test"
|
|
}
|
|
)
|
|
]
|
|
)
|
|
print("[Test] Faux projet inséré.")
|
|
|
|
# 3. Tester la recherche vectorielle
|
|
print("\n[Test] Lancement de la recherche vectorielle...")
|
|
project_found = await repo.search_similar_project(query_vector=mock_vector)
|
|
|
|
if project_found:
|
|
print(f"🎉 Succès ! Projet trouvé en BDD : {project_found['title']} ({project_found['git_url']})")
|
|
else:
|
|
print("❌ Erreur : Aucun projet trouvé alors qu'on vient d'en insérer un.")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Échec critique du test : {e}")
|
|
print("Vérifie que ton conteneur Qdrant est bien lancé et que l'URL dans ton .env est correcte.")
|
|
|
|
finally:
|
|
await repo.close()
|
|
print("\n--- Fin du test ---")
|
|
|
|
if __name__ == "__main__":
|
|
from dotenv import load_dotenv
|
|
load_dotenv()
|
|
|
|
asyncio.run(test_pipeline()) |