Sobre este projeto
it-programming / artificial-intelligence-1
Aberto
Contexto Geral do Projeto
### Objetivo do Projeto Integrar um chatbot na plataforma "AmberChat" com um assistente da OpenAI que, conectado ao banco de dados, permitirá aos usuários consultar informações de faturamento de forma interativa e eficiente. O assistente será capaz de gerar consultas sql, enviar essas consultas a uma api (acionar functions), processar a resposta em formato json, e formatar a resposta de forma amigável para o usuário. ### Estrutura do Projeto #### 1. Base de Dados A base de dados contém uma tabela chamada `faturamento` com vários campos necessários para as consultas. O campo principal para as buscas é `cp_busca`, um JSONB usado para realizar buscas por similaridade. #### 2. Funcionalidades do Assistente - **Montar Consultas SQL**: O assistente deve ser capaz de interpretar as perguntas dos usuários, montar consultas sql complexas e enviar essas consultas para a api. - **Receber e Processar Respostas JSON**: O assistente recebe a resposta da api em formato json e transforma essa resposta em um formato amigável para o usuário. - **Respostas Automáticas**: O assistente deve ter a capacidade de responder automaticamente a perguntas simples, sem necessidade de consultar o banco de dados. ### Fluxo de Trabalho 1. **Recepção de Mensagens**: - O usuário envia uma mensagem (pode ser por texto ou áudio). - Se for uma nova mensagem, cria-se um novo contexto de conversa. 2. **Interpretação e Montagem da Consulta SQL**: - O assistente interpreta a mensagem. - Monta a consulta SQL com base na tabela `faturamento` e no campo `cp_busca` para buscas por similaridade. 3. **Execução da Consulta e Processamento da Resposta**: - O assistente envia a consulta sql para a api. (Aciona a function) - A api executa a consulta no banco de dados e retorna um json com os resultados. - O assistente formata o JSON em uma resposta amigável. 4. **Interação com o Usuário**: - O assistente apresenta os resultados ao usuário. - Se necessário, faz perguntas adicionais para refinar a consulta (ex.: Período específico, cliente específico). ### Exemplos de Consultas SQL #### Busca de Clientes com Similaridade no Nome ```sql Select fat.codcli, fat.nomcli from faturamento fat where jsonb_extract_path_text(fat.Cp_busca, 'nomcli') like '%|xyz|%' group by fat.codcli, fat.nomcli LIMIT 10 ``` #### Vendas Totais de um Cliente Específico ```sql SELECT fat.codcli, fat.nomcli, sum(fat.valor_fat_total) AS "Valor Total" from faturamento fat where fat.Codcli = 12345 group by fat.codcli, fat.nomcli ``` #### Vendas de um Cliente em um Período Específico ```sql SELECT fat.codcli, fat.nomcli, sum(fat.valor_fat_total) AS "Valor Total" from faturamento fat where fat.codcli = 12345 And fat.datemi between '2024-01-01' and '2024-12-31' group by fat.codcli, fat.nomcli ``` ### Formatação da Resposta #### Modelo de Formatação ``` *Obter o total de compras do cliente com código 12345 no ano de 2024* ------------------------ 04/2024: R$ 100.000,00 05/2024: R$ 200.000,00 ------------------------ Total de Vendas: R$ 300.000,00 ``` ### Considerações Finais - **Treinamento do Assistente**: Ensinar o assistente sobre os campos da tabela, o formato das consultas e a formatação das respostas. - **Tratamento de Erros**: O assistente deve ser capaz de lidar com situações em que a informação não é encontrada, informando ao usuário de maneira clara. - **Melhoria Contínua**: Monitorar as interações e ajustar o comportamento do assistente para melhorar a precisão e a relevância das respostas. ### Próximos Passos 1. **Importar e Analisar a Tabela**: Carregar os dados da tabela `faturamento` do arquivo CSV anexo. 2. **Configurar o Assistente**: Implementar as funcionalidades descritas no fluxo de trabalho. 3. **Testar o Sistema**: Realizar testes com diferentes cenários para garantir que o assistente funcione corretamente. Vamos começar carregando e analisando os dados da tabela `faturamento` do arquivo CSV fornecido. ### Organização das Ideias do Projeto Com base nos dados fornecidos e nos requisitos do projeto, aqui está uma estrutura detalhada para implementar a solução.
Categoria TI e Programação
Subcategoria Inteligência Artificial
Tamanho do projeto Médio
Isso é um projeto ou uma posição de trabalho? Um projeto
Disponibilidade requerida Conforme necessário
Prazo de Entrega: Não estabelecido
Habilidades necessárias