Comment ça marche
Le projet suit une architecture de recherche vectorielle moderne :
- Source de données (
data.json) : Un simple fichier JSON sert de base de données, contenant les paires de Q&R avec des identifiants stables. - Génération d'embeddings (OpenAI) : Lors de l'indexation, le contenu textuel (
Q: {question} A: {réponse}) est envoyé à l'API OpenAI pour être converti en une représentation numérique (un embedding vectoriel de 1 536 dimensions). - Base de données vectorielle (Vertex AI) : Les embeddings générés et leurs identifiants correspondants sont stockés dans un index Vertex AI Matching Engine. Cette base de données est hautement optimisée pour trouver les vecteurs les plus "proches" d'un vecteur de requête donné.
- Script d'indexation (
add_to_index.py) : Ce script est un utilitaire pour effectuer une mise à jour par lots. Il litdata.json, génère des embeddings pour toutes les entrées et les télécharge sur Vertex AI pour construire ou mettre à jour l'index. - Serveur API (
main.py) : Un serveur FastAPI qui expose un point de terminaison/query. Il prend la question d'un utilisateur, génère un embedding pour celle-ci, interroge Vertex AI pour obtenir les identifiants des paires de Q&R les plus similaires, puis récupère le contenu complet des Q&R à partir dedata.jsonpour le retourner à l'utilisateur.