使用说明
'''# Pulsesys MCP & Orchestrator
Sistema de Chatbot Multicanal para Clínicas Médicas, utilizando FastAPI, PostgreSQL, Redis, OpenAI e integrações com Meta (WhatsApp/Instagram) e Google Calendar.
Este projeto foi desenvolvido pelo agente de IA Manus, seguindo as especificações técnicas fornecidas.
🚀 Setup do Projeto (Docker)
-
Pré-requisitos:
- Docker e Docker Compose instalados.
-
Configuração do Ambiente: Crie um arquivo
.envna raiz do projeto (pulsesys-mcp/) e preencha as variáveis com base no.env.example.cp .env.example .env # Edite o arquivo .env com suas chaves e tokens reais -
Build e Execução: Suba os containers da aplicação, banco de dados e Redis em modo detached.
docker-compose up --build -d -
Acesso:
- A API estará disponível em
http://localhost:8000. - A documentação interativa (Swagger UI) estará em
http://localhost:8000/docs.
- A API estará disponível em
-
Verificar Logs: Para acompanhar os logs da aplicação em tempo real:
docker-compose logs -f app
⚙️ Arquitetura e Endpoints
A aplicação está estruturada de forma modular para facilitar a manutenção e escalabilidade.
Endpoints Principais
| Método | Rota | Descrição |
|---|---|---|
GET |
/api/v1/health |
Verificação de status da aplicação. |
GET |
/api/v1/webhook/whatsapp |
Verificação do Webhook do WhatsApp (para setup na Meta). |
POST |
/api/v1/webhook/whatsapp |
Recepção de mensagens do WhatsApp. |
GET |
/api/v1/webhook/instagram |
Verificação do Webhook do Instagram (para setup na Meta). |
POST |
/api/v1/webhook/instagram |
Recepção de mensagens do Instagram (atualmente um mock). |
POST |
/api/v1/event/confirmar_agendamento |
Endpoint interno para a secretária confirmar/recusar agendamentos. |
POST |
/api/v1/token |
Gera um token JWT para autenticação em endpoints protegidos (mock). |
💡 Fluxo de Teste
Para testar o fluxo completo de conversação e agendamento, siga os passos abaixo:
-
Configurar o Webhook da Meta:
- No painel de desenvolvedores da Meta, configure o webhook para apontar para
SEU_DOMINIO_PUBLICO/api/v1/webhook/whatsapp. - Use o
META_VERIFY_TOKENque você configurou no seu arquivo.env.
- No painel de desenvolvedores da Meta, configure o webhook para apontar para
-
Simular uma Mensagem de Paciente:
- Envie uma mensagem de uma conta de WhatsApp para o número configurado na sua aplicação da Meta.
- Exemplos de interação:
"Quais serviços vocês oferecem?"(deve acionarlistar_servicos)"Gostaria de agendar uma Consulta Geral"(deve acionarlistar_horarios)"Pode ser para o dia 25/11/2025 às 10:00?"(deve acionarsolicitar_agendamento)
-
Simular a Aprovação da Secretária:
-
Após a
solicitar_agendamento, um registropendenteé criado no banco de dados. O ID do agendamento é logado no console. -
Primeiro, obtenha um token de autenticação:
curl -X POST "http://localhost:8000/api/v1/token" -H "Content-Length: 0" -
Use o token obtido para chamar o endpoint de confirmação, substituindo
SEU_JWT_TOKENe oappointment_id:curl -X POST "http://localhost:8000/api/v1/event/confirmar_agendamento" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer SEU_JWT_TOKEN" \ -d '{"appointment_id": 1, "status": "confirmado"}' -
O sistema deve então enviar a mensagem de confirmação final para o número do paciente.
-
🧠 Observações Importantes
- Mocks: Várias partes do sistema são mocks para fins de demonstração (ex:
calendar_client,instagram_client,faq). A lógica de autenticação com o Google e a complexidade total da API do Instagram precisam ser implementadas. - Segurança: As chaves e tokens devem ser gerenciados de forma segura em um ambiente de produção (ex: usando um serviço de secrets management).
- Banco de Dados: O sistema cria as tabelas automaticamente no startup e insere dados de teste (
mock_data.py). Em produção, as migrações de banco de dados devem ser gerenciadas com ferramentas como Alembic. '''
