# 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](architecture.md) | Visão geral da arquitetura, componentes e fluxo de dados | | [Referência da API](api-reference.md) | Endpoints, modelos de dados e exemplos de uso | | [Modelo de Dados](data-model.md) | Estrutura das tabelas, relacionamentos e convenções | | [Infraestrutura](infrastructure.md) | Recursos AWS provisionados com Pulumi (ECS, ALB, ECR) | | [Deploy](deployment.md) | Processo de build, push e deploy da aplicação | | [Desenvolvimento](development.md) | 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() ```