2.3 KiB
2.3 KiB
Assistente Analítico para Banco de Dados - Documentação
Documentação do projeto Assistente Analítico para Banco de Dados da Inovyo, uma plataforma de IA conversacional que utiliza dados de pesquisas de experiência do cliente (CX) para fornecer insights analíticos.
Índice
| Documento | Descrição |
|---|---|
| Arquitetura | Visão geral da arquitetura, componentes e fluxo de dados |
| Referência da API | Endpoints, modelos de dados e exemplos de uso |
| Modelo de Dados | Estrutura das tabelas, relacionamentos e convenções |
| Infraestrutura | Recursos AWS provisionados com Pulumi (ECS, ALB, ECR) |
| Deploy | Processo de build, push e deploy da aplicação |
| Desenvolvimento | Guia para contribuição, estrutura de código e padrões |
Visão Geral do Projeto
A Inovyo é uma plataforma especializada em gestão de experiência do cliente (CX), responsável por coletar, processar e analisar dados de pesquisas. Este projeto cria um chatbot que atua como consultor especialista, utilizando os dados dos dashboards da Inovyo para:
- Responder perguntas sobre resultados de pesquisas
- Identificar padrões, tendências e oportunidades
- Auxiliar gestores na interpretação de indicadores (NPS, CSAT, CES)
- Oferecer insights contextualizados e acionáveis
Stack Tecnológico
| Camada | Tecnologia |
|---|---|
| Linguagem | Python 3.12+ |
| Frontend | Streamlit |
| API | FastAPI + Uvicorn |
| Agente IA | LangGraph + LangChain |
| LLMs | AWS Bedrock (Claude, Llama, Nova) |
| Banco de Dados | DynamoDB |
| Observabilidade | Langfuse |
| Infraestrutura | AWS ECS Fargate, ALB, ECR |
| IaC | Pulumi (Python) |
| Container | Docker |
Estrutura do Backend
O pacote backend é dividido em módulos com responsabilidades únicas:
code/app/backend/
├── __init__.py # Marca o diretório como pacote Python
├── config.py # Leitura de variáveis de ambiente
├── dynamo.py # Cliente DynamoDB, Langfuse, get_contexto
├── tools.py # Ferramentas LangChain (@tool)
├── agent_bedrock.py # LLM Bedrock, grafo LangGraph, AgentState
└── orquestrador.py # Ponto de entrada: main()