Este repositório contém uma função AWS Lambda que utiliza Docker para fornecer um assistente de saúde baseado em IA. A função recebe dados do usuário e interage com APIs externas, como OpenAI e Qdrant, para fornecer respostas personalizadas.
Clone o repositorio
git clone https://github.com/GuilhermeVoyna/AI-agents-with-memory.git;
cd AI-agents-with-memory
aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
Navegue para pasta image
cd aws-docker/image/lambda_with_docker
Build o docker
docker build -t lambda_with_docker .
Inicie o docker
docker run -p 9000:8080 \
-e OPENAI_API_KEY="sua_chave_openai" \
-e QDRANT_API_KEY="sua_chave_qdrant" \
-e QDRANT_API_URL="url_qdrant" \
lambda_with_docker
Navegue para pasta image
cd aws-docker/image/mem0_add_message
Build o docker
docker build -t mem0_add_message .
Inicie o docker
docker run -p 9000:8080 \
-e OPENAI_API_KEY="sua_chave_openai" \
-e QDRANT_API_KEY="sua_chave_qdrant" \
-e QDRANT_API_URL="url_qdrant" \
mem0_add_message
Crie um ambiente virtual
python3 -m .venv .venv
Instale os requerimentos
pip install -r requirements.txt
Inicie a main
python main.py
o suo do flask deve ser usado apenas para questao de teste/curiosidade
POST /2015-03-31/functions/function/invocations
Header | Value |
---|---|
Content-Type | application/json |
Authorization | Bearer {token} |
O corpo da requisição deve ser um JSON com os seguintes parâmetros:
Parameter | Type | Description |
---|---|---|
uid |
string |
ID único do usuário. |
weight |
number |
Peso do usuário em kg. |
height |
number |
Altura do usuário em cm. |
gender |
string |
Gênero do usuário (padrão: "Desconhecido"). |
message |
string |
Mensagem a ser processada. |
bmi |
number |
Índice de Massa Corporal calculado. |
messages |
array |
Lista de mensagens, contendo content e role . |
birthday |
string |
Data de nascimento do usuário em formato ISO. |
exams_data |
object |
Dados dos exames do usuário. |
appointments_data |
object |
Dados dos agendamentos do usuário. |
meds_data |
object |
Dados sobre medicamentos do usuário. |
"{\"uid\":\"user123\",\"weight\":70,\"height\":175,\"gender\":\"Masculino\",\"message\":\"Como posso melhorar minha dieta?\",\"bmi\":22.86,\"messages\":[{\"content\":\"Qual é a sua altura?\",\"role\":\"assistant\"}],\"birthday\":\"1990-01-01T00:00:00.000Z\",\"exams_data\":{},\"appointments_data\":{},\"meds_data\":{}}"
curl -X POST http://localhost:9000/2015-03-31/functions/function/invocations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d "{\"uid\":\"user123\",\"weight\":70,\"height\":175,\"gender\":\"Masculino\",\"message\":\"Como posso melhorar minha dieta?\",\"bmi\":22.86,\"messages\":[{\"content\":\"Qual é a sua altura?\",\"role\":\"assistant\"}],\"birthday\":\"1990-01-01T00:00:00.000Z\",\"exams_data\":{},\"appointments_data\":{},\"meds_data\":{}}"
Este projeto utiliza o Mem0 para adicionar uma camada inteligente de memória ao chatbot. O Mem0 permite que o assistente de IA se lembre de interações passadas, preferências e dados do usuário, adaptando-se continuamente às necessidades do indivíduo. Essa integração eleva a personalização das respostas, melhorando a experiência do usuário a cada nova interação.
Embora este exemplo utilize o OpenAI, o código pode ser facilmente adaptado para funcionar com outras LLMs, como Llama. Basta seguir a documentação do Mem0 e ajustar a integração conforme necessário.