Construisez un backend pour la récupération de documents avec la mise en cache.
L'algorithme de mise en cache a créé une file d'attente dans le serveur qui stockera le nombre limité de nœuds à partir de la base de données vectorielle à partir des fussons précédents. Pour chaque requête de l'utilisateur sera d'abord adaptée à des requêtes dans la file d'attente et si la similitude (cosinus) est supérieure à 0,9 que ces nœuds renvoyés de la table de recherche entretenus séparément.
Première demande => temps pris 787 ms 
Deuxième demande similaire => temps pris 54 ms 
Mauvaise demande 
Point de terminaison de contrôle de la santé
curl --location ' localhost:8001/health 'Rechercher la recherche de point de terminaison
curl --location ' localhost:8001/search ' --header ' user_id: riondsilva ' --header ' Content-Type: application/json ' --data ' { "text": "Ingredient Substitutions" , "top_k": 5 , "threshold": 0.3 } '* Exécutez dans l'ordre
Image de chrome
docker run -p 8000:8000 chromadb/chromaImage postgres
docker run --name user-database -p 5432:5432
-e POSTGRES_PASSWORD=your_password -d postgres:12.20-alpine3.20 docker stop user-databaseDocumentaire
git clone https://github.com/RionDsilvaCS/document-retrieval-caching.git Créer un fichier .env dans le répertoire principal et ajouter les variables ci-dessous
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/postgres"
COLLECTION_NAME="collection_name"
Créer data de nom de répertoire et ajouter des documents PDF
mkdir data
Exécutez store_in_db.py pour enregistrer le contenu ./data sur ChromAdb
python store_in_db.pydocker compose up --build /health est Get Endpoint pour vérifier si le serveur démarre
Point final
http://127.0.0.1:8001/health
Réponse
{
"Server Status" : " Successfully running ? "
} /search est un point de terminaison de message pour converser avec le chatbot
Point final
http://127.0.0.1:8001/search
Tête
{
"user_id" : " riondsilva "
}Corps JSON
{
"text" : " How are you? " ,
"top_k" : 3 ,
"threshold" : 0.3
}Réponse
{
"bot_message" : {
"top_k_results" : [
{
"message" : " I am great ? "
},
{
"message" : " I am fine "
},
{
"message" : " I am good "
}
],
"top_k" : 3 ,
"threshold" : 0.9
},
"user_message" : {
"text" : " How are you? " ,
"top_k" : 3 ,
"threshold" : 0.9 ,
"inference_time (secs)" : 1.16
},
"user_info" : " riondsilva "
}