53 lines
2.3 KiB
Markdown
53 lines
2.3 KiB
Markdown
# 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()
|
|
```
|