Construa um back -end para recuperação de documentos com armazenamento em cache.
O algoritmo de armazenamento em cache criou uma fila no servidor que armazenará o número limitado de nós do banco de dados vetorial dos coros anteriores. Para cada consulta do usuário, será compatível com consultas na fila e se a semelhança (cosseno) estiver acima de 0,9 do que esses nós retornados da tabela de pesquisa mantidos separadamente.
Primeira solicitação => tempo necessário 787 ms 
Segunda solicitação semelhante => tempo necessário 54 ms 
Pedido ruim 
Terço da verificação de saúde
curl --location ' localhost:8001/health 'Pesquise o terminal de verificação
curl --location ' localhost:8001/search ' --header ' user_id: riondsilva ' --header ' Content-Type: application/json ' --data ' { "text": "Ingredient Substitutions" , "top_k": 5 , "threshold": 0.3 } '*Correr em ordem
Imagem Chroma
docker run -p 8000:8000 chromadb/chromaImagem do Postgres
docker run --name user-database -p 5432:5432
-e POSTGRES_PASSWORD=your_password -d postgres:12.20-alpine3.20 docker stop user-databaseDoc-retieval
git clone https://github.com/RionDsilvaCS/document-retrieval-caching.git Crie o arquivo .env no diretório principal e adicione as variáveis abaixo
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/postgres"
COLLECTION_NAME="collection_name"
Crie data de nome do diretório e adicione documentos em PDF
mkdir data
Run store_in_db.py para salvar o conteúdo ./data em Chromadb
python store_in_db.pydocker compose up --build /health está obtendo endpoint para verificar se o servidor está inicializado
Endpoint
http://127.0.0.1:8001/health
Resposta
{
"Server Status" : " Successfully running ? "
} /search é um ponto de extremidade postal para conversar com o chatbot
Endpoint
http://127.0.0.1:8001/search
Cabeçalho
{
"user_id" : " riondsilva "
}Corpo JSON
{
"text" : " How are you? " ,
"top_k" : 3 ,
"threshold" : 0.3
}Resposta
{
"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 "
}