Neste artigo, apresento uma aplicação inovadora em C# que combina a inteligência artificial do GPT (OpenAI) com uma base de conhecimento extraída diretamente de uma página do Notion. O objetivo é demonstrar como essas tecnologias podem ser integradas para criar uma ferramenta eficiente e prática diretamente dentro do Autodesk Revit, especialmente voltada para equipes de engenharia e projetos que demandam respostas rápidas e precisas.
O que esta aplicação oferece:
- Integração direta com o Notion para manter o conhecimento atualizado.
- Interação com a API do GPT para fornecer respostas precisas.
- Uma interface amigável e intuitiva criada com WPF.
- Feedback visual durante as consultas para melhor experiência do usuário.
Por que eu escolhi o Notion como Repositório de Conhecimento
Eu escolhi o Notion devido à sua flexibilidade e facilidade para organizar e atualizar informações. Ao utilizá-lo como base de conhecimento, posso garantir que os dados estejam sempre atualizados em tempo real, bastando apenas alterar o conteúdo diretamente na plataforma do Notion. Isso é especialmente útil para o meu escritório de projetos de engenharia, permitindo que toda a equipe tenha acesso às informações mais recentes rapidamente.
Extração Automática e Estruturada de Conteúdo
A aplicação utiliza a API oficial do Notion para recuperar automaticamente os conteúdos armazenados nas páginas. Isso é feito através de requisições HTTP que acessam blocos específicos dentro do Notion:
string url = $"https://api.notion.com/v1/blocks/{pageId}/children?page_size=100";O conteúdo recuperado é então tratado para garantir que todas as informações relevantes sejam capturadas, independentemente da estrutura interna utilizada no Notion (parágrafos, listas, citações, etc.). Um exemplo de tratamento do conteúdo:
var texts = typedBlock?.rich_text;
if (texts is Newtonsoft.Json.Linq.JArray arr && arr.Count > 0)
{
foreach (var txt in arr)
{
var content = txt?["text"]?["content"]?.ToString();
if (!string.IsNullOrEmpty(content))
{
textBuilder.Append(content);
}
}
}Esse método assegura robustez e flexibilidade ao lidar com diferentes formatos de texto do Notion.
Precisão das Respostas com GPT
A aplicação utiliza o GPT da OpenAI para responder perguntas feitas pelos usuários com base exclusivamente no conhecimento extraído do Notion. Para garantir que a resposta seja específica e baseada apenas no conteúdo disponível, o prompt enviado ao GPT é cuidadosamente estruturado:
var mensagens = new[]
{
new { role = "system", content = "Você é um assistente de perguntas. Responda apenas com base no conhecimento abaixo." },
new { role = "user", content = $"Conhecimento:\n{knowledge}\n\nPergunta: {question}" }
};Esse formato garante respostas altamente relevantes e reduz o risco de imprecisões ou desvios.
Interface WPF Integrada ao Revit
Essa aplicação é integrada diretamente ao Autodesk Revit, permitindo que minha equipe faça consultas diretamente no ambiente onde os projetos estão sendo desenvolvidos. A interface gráfica criada com WPF oferece uma interação simples e agradável, incluindo:
- Um campo dedicado para inserção da pergunta.
- Um botão intuitivo para enviar a pergunta.
- Uma área clara para visualização das respostas recebidas.
Exemplo do layout simples e eficiente:
<Label Content="Pergunta:"/> <TextBox x:Name="textBoxSearch"/> <Label Content="Resposta:"/> <TextBox x:Name="textBoxResponse" IsReadOnly="True" TextWrapping="Wrap"/> <Button x:Name="buttonApply" Content="Perguntar" Click="buttonApply_Click"/>
Feedback Visual para Melhor Experiência
Uma boa aplicação não pode negligenciar a experiência do usuário. Por isso, implementei um feedback visual claro durante o carregamento das respostas, garantindo que o usuário esteja sempre informado sobre o andamento do processo. Este feedback inclui:
- Desabilitação temporária e mudança visual do botão durante o carregamento.
Trecho de exemplo em código:
buttonApply.IsEnabled = false;
buttonApply.Content = "Processando...";
buttonApply.Background = Brushes.Gray;
// Processamento da pergunta e resposta aqui
buttonApply.IsEnabled = true;
buttonApply.Content = "Perguntar";
buttonApply.Background = (Brush)new BrushConverter().ConvertFromString("#007ACC");Esses detalhes tornam a aplicação muito mais profissional e agradável de utilizar diretamente dentro do Revit.
Conclusão
A integração do Notion com o GPT diretamente em uma aplicação WPF integrada ao Revit exemplifica como tecnologias modernas podem ser combinadas para fornecer soluções práticas, inteligentes e altamente eficientes para escritórios de engenharia e arquitetura. Com essa aplicação, a equipe pode acessar rapidamente as informações atualizadas diretamente no ambiente onde trabalha, otimizando processos e aumentando a produtividade.
Se você tem interesse em aplicações similares ou quer saber mais detalhes técnicos sobre essa integração, deixe seu comentário ou entre em contato comigo!