CHATBOT DEVELOPMENT WITH INTEGRATION OF ARTIFICIAL INTELLIGENCE APIS USING DART AND FLUTTER
REGISTRO DOI: 10.69849/revistaft/cl10202411291444
Juan Miarelli da Silva1
André Luiz da Silva2
Fabiana Florian3
Resumo: O desenvolvimento deste trabalho focou na integração de três APIs de inteligência artificial: ChatGPT, Google Gemini e Microsoft Copilot. O objetivo foi comparar as capacidades das tecnologias. Foi realizada pesquisa bibliográfica e qualitativa sobre os modelos de inteligência artificial ChatGPT, Google Gemini e Microsoft Copilot na base de dados Google Acadêmico, a fim de aprofundar-se em suas capacidades e compará-los entre si. A implementação utilizou a linguagem de programação Dart e o framework Flutter para criar uma interface intuitiva e responsiva. O planejamento envolveu a definição de requisitos, seleção de tecnologias e desenvolvimento da arquitetura do sistema. A integração das APIs foi realizada através de requisições HTTP, com tokens de acesso e configuração da comunicação entre as diferentes IAs. Testes foram conduzidos para garantir a funcionalidade e precisão das respostas. O projeto demonstrou importância na combinação de diferentes tecnologias de IA e a construção de uma interface eficiente, visando proporcionar uma plataforma robusta e adaptável para interações com o usuário.
Palavras-chave: Chatbot. Inteligência Artificial. Integração. Desenvolvimento. APIs.
Abstract: This work focused on the integration of three different artificial intelligence APIs: ChatGPT, Google Gemini and Microsoft Copilot. The aim was to compare the capabilities of the technologies. Bibliographic and qualitative research was carried out on the ChatGPT, Google Gemini and Microsoft Copilot artificial intelligence models in the Google Scholar database, in order to delve deeper into their capabilities and compare them with each other. The implementation used the Dart programming language and the Flutter framework to create an intuitive and responsive interface. Planning involved defining requirements, selecting technologies and developing the system’s architecture. The APIs were integrated via HTTP requests, with access tokens and communication configuration between the different AIs. Tests were conducted to guarantee the functionality and accuracy of the responses. The project demonstrated the importance of combining different AI technologies and building an efficient interface to provide a robust and adaptable platform for user interactions.
Translated with DeepL.com (free version).
Keywords: Chatbot. Artificial Intelligence. Integration. Development. APIs.
1 INTRODUÇÃO
Nos últimos anos, o campo da inteligência artificial (IA) tem avançado rapidamente, proporcionando inovações significativas em diversas áreas, desde o atendimento ao cliente até a automação de processos complexos. A criação de sistemas interativos, como ChatBots, é uma das aplicações mais promissoras dessa tecnologia. Estes sistemas, que utilizam modelos avançados de processamento de linguagem natural (PLN), oferecem uma nova forma de interação entre humanos e máquinas, possibilitando respostas mais naturais e contextuais. O objetivo deste projeto é desenvolver um ChatBot multifuncional que integre três diferentes APIs de IA: ChatGPT da OpenAI, Google Gemini e Microsoft Copilot. Este trabalho visa comparar as capacidades e diferenças entre essas tecnologias para criar uma experiência dinâmica para o usuário.
O ChatGPT, desenvolvido pela OpenAI, é um modelo de linguagem avançado conhecido por sua capacidade de gerar respostas contextualmente relevantes e coesas, segundo Brown et al. (2020). Este modelo se destaca pela sua habilidade em lidar com uma ampla gama de perguntas e tópicos, proporcionando interações fluidas e naturais.
Devlin et al. (2018) observa que o Google Gemini, parte da suíte de ferramentas do Google, oferece capacidades avançadas para o processamento e análise de linguagem, aproveitando a vasta base de dados e algoritmos sofisticados do Google.
O Microsoft Copilot, que está integrado aos produtos da Microsoft, combina IA com ferramentas de produtividade, oferecendo uma abordagem que foca na eficiência e na integração com aplicativos do dia a dia, conforme destaca Brown et al. (2020) também.
Integrar essas três APIs no ChatBot permite comparar suas capacidades e avaliar como elas se complementam. O projeto visa não apenas implementar essas tecnologias, mas também criar uma interface intuitiva e responsiva que possibilite aos usuários alternar entre as diferentes IAs e comparar suas respostas. Essa abordagem proporciona uma visão abrangente das capacidades individuais e combinadas dessas tecnologias, oferecendo uma plataforma versátil que pode ser adaptada para diferentes necessidades e cenários de uso.
2 REVISÃO BIBLIOGRÁFICA
Esta seção explica os conceitos básicos para compreender o funcionamento de um Chatbot integrado com APIs de inteligência artificial utilizando Dart e Flutter, que permite a comparação entre diferentes modelos de IA, suas características individuais e capacidades. O Chatbot oferece uma solução integrada para comparar diferentes modelos e suas características específicas como processamento de linguagem e geração de imagens. Com uma interface simples e intuitiva, facilita a usabilidade e envio de prompts, que são instruções ou perguntas fornecidas para guiar um sistema de IA permitindo que seja feita uma comparação entre as IAs.
Para compreender melhor o tema abordado, é essencial apresentar alguns conceitos sobre Dart e Flutter, e APIs de inteligência artificial (ChatGPT, Google Gemini e Microsoft Copilot).
2.1 Dart e Flutter
Para o desenvolvimento do ChatBot, foram escolhidas a linguagem de programação Dart e o framework Flutter. Dart, criado pelo Google, é uma linguagem moderna projetada para facilitar a criação de aplicativos de alta performance. Uma de suas principais vantagens é a sintaxe clara e a capacidade de compilar para código nativo, o que contribui para a execução eficiente de aplicativos, segundo diz Seth et al. (2019).
O Flutter, também desenvolvido pelo Google, é um framework que permite a criação de interfaces intuitivas e responsivas a partir de uma única base de código. Ele proporciona uma experiência de usuário fluida e interativa, de acordo com Hodges et al. (2020).
A escolha de Dart e Flutter se justifica pela sua capacidade de criar aplicativos modernos com alto desempenho e interface de usuário rica. Dart oferece um desempenho eficiente e uma sintaxe moderna que facilita o desenvolvimento, enquanto o Flutter proporciona ferramentas poderosas para a criação de interfaces visuais dinâmicas e adaptativas. Essa combinação é ideal para o desenvolvimento de um ChatBot que precisa interagir com diferentes APIs de IA e oferecer uma experiência de usuário coesa e intuitiva.
2.2 APIs de Inteligência Artificial (ChatGPT, Google Gemini e Microsoft Copilot)
Uma API (Interface de Programação de Aplicativos) é uma ferramenta que permite a interação entre diferentes sistemas, possibilitando que aplicações consumam funcionalidades ou dados de outra.
A escolha das APIs do ChatGPT, Google Gemini e Microsoft Copilot se motivou por serem algumas das mais destacadas atualmente em seus respectivos domínios. O ChatGPT é conhecido por sua eficiência no processamento de linguagem natural, o Gemini por seu poder de processamento e contextualidade avançada e o Copilot por sua capacidade de integração. De acordo com McKinsey & Company (2023) em um relatório publicado, soluções de inteligência artificial generativa como essas podem aumentar a produtividade em até 40% e gerar impacto econômico significativo, estimado em trilhões de dólares.
Segundo Devlin et al. (2018), o ChatGPT, desenvolvido pela OpenAI, é um dos modelos de linguagem mais avançados, conhecido por sua capacidade de gerar respostas contextualmente relevantes e coesas em uma ampla gama de tópicos. A tecnologia por trás do ChatGPT baseia-se em um modelo de aprendizado profundo que utiliza redes neurais para compreender e gerar texto de forma natural e fluida. O Google Gemini, por outro lado, faz parte das ferramentas avançadas do Google para o processamento de linguagem natural e oferece uma análise profunda e contextualizada dos dados textuais.
O Microsoft Copilot é uma ferramenta que combina inteligência artificial com funcionalidades de produtividade, oferecendo uma abordagem distinta em comparação com as outras APIs. Integrado aos produtos Microsoft, o Copilot visa melhorar a eficiência e a produtividade do usuário, proporcionando uma interação que combina capacidades de IA com as ferramentas do cotidiano, diz Brown et al. (2020).
A combinação dessas tecnologias no projeto permite avaliar como diferentes algoritmos de IA podem colaborar e fornecer uma experiência de usuário diversificada.
3 DESENVOLVIMENTO
O desenvolvimento de um Chatbot integrado com três APIs de inteligência artificial (IA)—ChatGPT, Google Gemini e Microsoft Copilot—envolveu um processo detalhado de planejamento, implementação e integração de tecnologias. A seguir, descrevo de forma detalhada o processo de formação do projeto e a ideia por trás de sua execução, incluindo as decisões tecnológicas e metodológicas tomadas ao longo do desenvolvimento.
A ideia central do projeto era criar um Chatbot que integrasse três diferentes APIs de IA, cada uma representando uma abordagem distinta para o processamento de linguagem natural. O objetivo principal era comparar as capacidades individuais de cada API e fornecer uma plataforma onde os usuários pudessem interagir com diferentes tecnologias de IA. Essa abordagem foi escolhida para aproveitar as vantagens de cada tecnologia e criar uma experiência de usuário diversificada e dinâmica.
A escolha das APIs—ChatGPT, Google Gemini e Microsoft Copilot—foi baseada em suas características distintas e na capacidade de cada uma delas de contribuir para a funcionalidade geral do Chatbot:
- ChatGPT: Desenvolvido pela OpenAI, o ChatGPT é conhecido por sua habilidade em gerar texto de maneira coesa e contextualizada. A escolha do ChatGPT foi motivada por sua popularidade e sucesso em aplicações de conversação, além de sua capacidade de lidar com uma ampla gama de tópicos e perguntas, diz Brown et al. (2020).
- Google Gemini: O Google Gemini foi selecionado devido às suas avançadas capacidades de processamento de linguagem e à sua integração com o ecossistema do Google. Devlin et al. (2018), destaca que a API do Gemini oferece ferramentas sofisticadas para a análise e compreensão de textos, aproveitando a vasta base de conhecimento do Google.
- Microsoft Copilot: O Microsoft Copilot foi incluído por sua abordagem inovadora de combinar IA com ferramentas de produtividade. Integrado aos produtos Microsoft, o Copilot visa melhorar a eficiência e a produtividade do usuário, oferecendo uma perspectiva única em comparação com as outras APIs, observa Brown et al. (2020) também.
O planejamento do projeto envolveu a definição clara dos requisitos e objetivos do Chatbot. Foi fundamental identificar os requisitos funcionais e não funcionais do ChatBot. Isso incluiu a capacidade de alternar entre as diferentes APIs, a necessidade de uma interface intuitiva e a forma como as respostas das IAs seriam apresentadas ao usuário. Após a definição dos requisitos, foi escolhido o Dart como linguagem de programação e o Flutter como framework para o desenvolvimento da interface. Dart oferece uma sintaxe moderna e eficiente para o desenvolvimento de aplicativos, enquanto o Flutter permite a criação de interfaces dinâmicas e responsivas, diz Seth e Hodges et al. (2020).
Figura 1 – Requisitos Funcionais e Não Funcionais do Projeto
Fonte: o Autor, 2024.
A arquitetura do ChatBot foi projetada para suportar a integração de múltiplas APIs. Isso envolveu a criação de um modelo que pudesse gerenciar as requisições e respostas de cada API, além de garantir uma experiência de usuário coesa. A arquitetura foi dividida em módulos, incluindo a camada de interface, a camada de lógica de negócios e a camada de integração com as APIs. A fase de implementação envolveu a criação e integração das interfaces, bem como a configuração das conexões com as APIs de IA.
Figura 2 – Diagrama do Projeto
Fonte: o Autor, 2024.
A interface do usuário foi projetada para ser intuitiva e fácil de usar. Utilizando o Flutter, foram criadas telas que permitem ao usuário alternar entre as diferentes APIs por meio de uma TabBar. Cada aba da TabBar representa uma das APIs (ChatGPT, Google Gemini e Microsoft Copilot), e contém uma caixa de texto para exibir as mensagens trocadas com as IAs e uma caixa menor para enviar novas mensagens. O design baseado em princípios de usabilidade e acessibilidade, visa proporcionar uma experiência agradável ao usuário, assim como Hodges et al. (2020) destaca.
Foram feitas requisições HTTP para as URLs das APIs, enviando os metadados necessários para o processamento das perguntas. Cada API possui um formato de requisição e resposta específico, e foi necessário implementar lógica para lidar com essas diferenças e garantir que as respostas fossem apresentadas de forma adequada ao usuário. Para o acesso às APIs, especialmente ao ChatGPT, foi necessário adquirir créditos e obter tokens de acesso. Esse processo envolveu a configuração segura das credenciais e a implementação de mecanismos para gerenciar e atualizar esses tokens conforme necessário.
Após a implementação inicial, o ChatBot passou por um processo rigoroso de testes para garantir que todas as funcionalidades estivessem funcionando conforme o esperado. Foram realizados testes para verificar se todas as funcionalidades do ChatBot estavam operacionais, incluindo a alternância entre as APIs, o envio e recebimento de mensagens e a correta apresentação das respostas. Testes de usabilidade foram conduzidos para avaliar a experiência do usuário e identificar possíveis melhorias na interface. Feedback de usuários foi coletado e analisado para ajustar a interface e melhorar a interatividade.
As respostas geradas pelas diferentes APIs foram avaliadas quanto à sua precisão e relevância. Isso envolveu a comparação das respostas fornecidas pelo ChatGPT, Google Gemini e Microsoft Copilot para assegurar que o sistema estivesse oferecendo informações corretas e úteis.
O desenvolvimento do ChatBot com integração das APIs ChatGPT, Google Gemini e Microsoft Copilot foi um processo complexo. A combinação dessas tecnologias avançadas permite comparar as capacidades de IA e oferecer uma experiência de usuário diversificada. O uso do Dart e Flutter garantiu uma base sólida para a criação de uma interface interativa e eficiente. O projeto demonstrou a importância da integração de diferentes tecnologias de IA e da construção de uma interface que possa maximizar as capacidades dessas ferramentas para oferecer um sistema de ChatBot robusto e versátil.
3.1 Criação das Interfaces e Layouts
A criação das interfaces e layouts para o chatbot integrado com as APIs de inteligência artificial ChatGPT, Copilot e Gemini foi concluída com sucesso, seguindo princípios de design centrado no usuário (DCU). Este processo envolveu o uso de Flutter, uma plataforma amplamente reconhecida por sua capacidade de criar interfaces responsivas e interativas com alto desempenho em dispositivos móveis e desktops. Com base em testes de usabilidade realizados com usuários reais, as interfaces desenvolvidas não apenas atenderam às expectativas, mas também proporcionaram uma experiência fluida e intuitiva, otimizando a interação entre o usuário e as IA’s integradas.
O projeto de interfaces para o chatbot foi elaborado com foco em garantir uma experiência intuitiva, eficiente e agradável, fundamentado nos princípios de usabilidade descritos por Garrett (2011). A integração de três APIs de IA distintas exigiu um layout que fosse ao mesmo tempo informativo e organizado, permitindo que o usuário entendesse de forma clara de qual API cada resposta se originava, sem sobrecarregar a interface.
Figura 3 – Design da Interface
Fonte: o Autor, 2024.
Esse design levou em conta a necessidade de uma interação constante entre o usuário e as inteligências artificiais, utilizando cores e ícones específicos para diferenciar as respostas de cada uma. O objetivo foi proporcionar uma navegação clara e uma hierarquia visual que facilitasse o entendimento e o uso contínuo do chatbot, de acordo com o que NORMAN (2013) cita. Os testes realizados confirmaram que essa abordagem melhorou significativamente a clareza e a fluidez na comunicação, reduzindo a carga cognitiva dos usuários.
O Flutter provou ser a escolha ideal para a implementação do projeto, permitindo a criação de interfaces multiplataforma de alta qualidade. A estrutura modular adotada separou a lógica de negócios da camada de interface, o que facilitou a manutenção e o desenvolvimento contínuo do sistema. Com a utilização de widgets como TextField, Elevated Button e ListView, o layout se mostrou dinâmico e capaz de se adaptar em tempo real às interações do usuário com as diferentes IA’s.
Os testes de desempenho e responsividade mostraram que, mesmo com múltiplas chamadas simultâneas às APIs, a interface manteve-se fluida, sem travamentos ou atrasos significativos. A arquitetura dividida em camadas também facilitou a adição de novas verificações durante os testes, evidenciando a flexibilidade da solução adotada, de acordo com PRESSMAN (2014).
A experiência do usuário (UX) foi central em todas as fases do desenvolvimento do chatbot. Desde o início, foi priorizado um layout que facilitasse a interação entre o usuário e as IA’s, utilizando cores e tipografias contrastantes para guiar o olhar do usuário e proporcionar uma navegação intuitiva. A decisão de utilizar cores específicas para cada uma das APIs (ChatGPT, Copilot e Gemini) e a adição de ícones ajudaram a diferenciar claramente as respostas, melhorando a compreensão do usuário, seguindo padrões ditos por Lidwell, Holden e Butler (2010).
Figura 4 – Design das TabBars
Fonte: o Autor, 2024.
Os testes de usabilidade mostraram que os usuários conseguiram identificar rapidamente qual IA estava respondendo em cada interação, confirmando a eficácia do uso de hierarquias visuais. Além disso, a introdução de animações suaves para transições entre as respostas e indicadores visuais de processamento das APIs (como ícones de carregamento) melhorou a percepção de agilidade, evitando frustração nos momentos em que as respostas demoravam a ser geradas, assim como testado por Nielsen, (1994).
A integração das APIs de inteligência artificial ChatGPT, Copilot e Gemini foi uma das partes mais desafiadoras, mas os resultados foram satisfatórios. O layout final foi estruturado de forma modular, permitindo que as respostas fossem exibidas em blocos separados e identificáveis. O uso de Stream Builder e FutureBuilder no Flutter permitiu a exibição assíncrona dos conteúdos, garantindo que a interface continuasse fluida mesmo quando uma das APIs demorava mais para processar a solicitação.
Os testes confirmaram que essa abordagem modular não apenas facilitou a leitura e a navegação, mas também permitiu que o Chatbot lidasse de maneira eficiente com interações mais complexas, onde múltiplas APIs eram acionadas simultaneamente. A exibição organizada dos dados, com as distinções visuais entre as IA’s, proporcionou uma experiência de uso clara e objetiva para os usuários, que facilmente compreendiam de qual API cada resposta era originada.
A responsividade do layout foi um dos pontos principais do projeto. Testes realizados em dispositivos de diferentes tamanhos, como smartphones, tablets e desktops, mostraram que o chatbot se adaptou perfeitamente a cada um deles. Widgets como Expanded e Flexible garantiram que o layout permanecesse funcional e esteticamente agradável, independentemente do tamanho da tela.
Os testes de usabilidade foram realizados em diferentes fases do projeto, com grupos variados de usuários, e os resultados foram extremamente positivos. Durante os testes, observou-se que os usuários interagiam de forma intuitiva com a interface e compreendiam facilmente o fluxo de interação do chatbot.
O processo de interação baseado no feedback dos usuários permitiu que o sistema fosse refinado para melhor atender às necessidades reais de uso. A cada nova rodada de testes, observou-se uma melhoria na satisfação dos usuários e na eficiência da interação, confirmando a eficácia do design centrado no usuário, destacado por NORMAN (2013).
O uso do Flutter se mostrou essencial para garantir a responsividade e flexibilidade do sistema, enquanto o design modular permitiu que as respostas das diferentes IA’s fossem exibidas de forma clara e organizada. Os testes de usabilidade validaram a eficácia do layout desenvolvido, e o processo iterativo de refinamento garantiu que o projeto final atendesse às expectativas dos usuários. A integração de ChatGPT, Copilot e Gemini em uma única interface trouxe desafios únicos, mas o resultado foi um chatbot robusto e de fácil utilização.
3.2 Funcionamento Prático da Plataforma de IA Integrada com ChatGPT, Google Gemini e Copilot
Esta seção apresenta o funcionamento técnico da plataforma de inteligência artificial que integra os modelos ChatGPT, Google Gemini e Copilot. A plataforma foi desenvolvida em Flutter e oferece uma interface simplificada e intuitiva para que os usuários possam interagir com cada um desses modelos de IA. Utilizando uma arquitetura de abas (TabBar), a aplicação permite uma transição fluida entre os sistemas. Além disso, aborda as chamadas para APIs e o gerenciamento de respostas em tempo real.
A arquitetura do sistema é composta por três camadas principais:
- Interface do Usuário (UI): Implementada em Flutter, a interface inclui uma TabBar para navegação entre os diferentes modelos de IA.
- Backend: Consiste na integração com as APIs de ChatGPT, Google Gemini e Copilot.
- Gerenciamento de Estado e Comunicação: Responsável por processar as requisições e respostas em tempo real usando o pacote HTTP.
A estrutura do aplicativo segue um padrão modular, com componentes individuais para cada modelo de IA. A interface de cada modelo de IA foi projetada para ser funcional e consistente. O gerenciamento de estados foi implementado para lidar com a entrada do usuário e a exibição das respostas dos modelos de IA.
O projeto é composto por um aplicativo Flutter com uma interface de usuário baseada em uma TabBar que contém três abas, cada uma correspondente a um modelo de IA. Cada aba apresenta uma tela de chat específica para interagir com o modelo de IA selecionado.
O aplicativo é iniciado com a função main() que executa o TabBarApp, a aplicação principal.
Figura 5 – Função main() utilizada para iniciar o aplicativo.
Fonte: o Autor, 2024.
A classe TabBarApp configura o tema do aplicativo e define o TabBarExample como a tela principal.
Figura 6 – Definição da classe TabBarApp.
Fonte: o Autor, 2024.
A classe TabBarExample cria a interface principal com uma TabBar e uma TabBarView. Cada aba é representada por um ícone correspondente ao modelo de IA, e o conteúdo das abas é gerado pelas classes ChatScreenChatGPT, ChatScreenGemini e ChatScreenCopilot.
Figura 7 – Definição e estilização da classe TabBarExample.
Fonte: o Autor, 2024.
Cada tela de chat (ChatScreenChatGPT, ChatScreenGemini, ChatScreenCopilot) é semelhante, com um campo de texto para envio de mensagens e uma lista de mensagens exibidas na tela.
Figura 8 – Tela do aplicativo.
Fonte: o Autor, 2024.
Figura 9 – Definição do Widget Build para as interfaces.
Fonte: o Autor, 2024.
- @override: Indica que o método build está sobrescrevendo um método da classe base (StatefulWidget).
- Widget build(BuildContext context): Método obrigatório em widgets do tipo StatefulWidget que define a interface do usuário.
- Column: Um widget que organiza seus filhos em uma coluna vertical. Aqui, ele é usado para empilhar widgets verticalmente.
O método _sendMessage é assíncrono e recebe uma String message como parâmetro.
Figura 10 – Definição da função setState(), para criação da lista de mensagens.
Fonte: o Autor, 2024.
Se a mensagem estiver vazia, o método retorna imediatamente. Caso contrário, a mensagem do usuário é adicionada à lista de mensagens (messages), e o estado _isLoading é definido como true para indicar que uma solicitação está em andamento.
A plataforma de inteligência artificial, desenvolvida em Flutter, foi projetada para integrar e permitir a interação com três modelos de IA: ChatGPT (via OpenAI), Google Gemini e Copilot. A interface da aplicação é intuitiva, com uma barra de navegação em abas que possibilita o acesso a cada um desses modelos, proporcionando uma experiência de chat em tempo real. Abaixo, vamos explorar como o sistema funciona na prática, focando inicialmente na integração com o ChatGPT.
Ao acessar a aba correspondente ao ChatGPT, o usuário encontra uma interface de chat que se assemelha a uma troca de mensagens convencional. A tela principal é composta por uma lista de mensagens e um campo de entrada para digitar novas mensagens. Toda a comunicação é organizada de forma cronológica, onde o usuário pode inserir uma mensagem e aguardar a resposta do modelo de IA.
- Ao digitar uma mensagem no campo de entrada e pressionar o botão de envio, a plataforma realiza a seguinte sequência de ações:
- Captura do Texto: O conteúdo inserido pelo usuário é capturado por meio do TextEditingController.
- Atualização da Interface: A mensagem é imediatamente adicionada à lista de mensagens visível na interface, garantindo que o usuário possa ver o que foi enviado.
Sinalização de Processamento: Durante o processamento da resposta pela IA, a interface exibe um indicador de carregamento, informando ao usuário que a resposta está sendo gerada.
O sistema então faz uma requisição HTTP POST para a API do ChatGPT. Essa requisição inclui a mensagem do usuário, juntamente com a configuração do modelo (neste caso, o GPT-3.5-turbo), além de parâmetros como o número máximo de tokens e o nível de “criatividade” da resposta (controlado pela temperatura).
- Formato da Solicitação: A solicitação é enviada em formato JSON, e os dados enviados incluem informações como:
- O modelo a ser utilizado.
- As mensagens trocadas até o momento.
- O limite de tokens na resposta.
Assim que a API responde com sucesso (status HTTP 200), a mensagem gerada pelo modelo ChatGPT é extraída do corpo da resposta e imediatamente adicionada à interface. O sistema então atualiza a lista de mensagens, exibindo tanto a mensagem enviada pelo usuário quanto a resposta da IA.
Exibição da Resposta: A resposta gerada aparece na interface com um estilo diferenciado, alinhada à esquerda para indicar que é uma resposta do ChatGPT.
Caso ocorra algum erro durante o processo (como uma falha de rede ou resposta mal sucedida da API), uma mensagem de erro é exibida para o usuário, garantindo que ele seja informado do problema. O sistema também desativa o indicador de carregamento, permitindo que o usuário tente novamente.
Toda a interação com o ChatGPT é fluida, com respostas geradas em tempo real e exibidas em uma interface clara e intuitiva. O foco é garantir uma experiência similar à de um bate-papo humano, com o ChatGPT fornecendo respostas que podem variar desde informações objetivas até conversas mais criativas, conforme a configuração escolhida.
O Google Gemini, assim como o ChatGPT, tem uma aba dedicada onde o usuário pode interagir com o modelo. O processo de funcionamento é semelhante ao descrito para o ChatGPT, com a diferença principal sendo a integração com a API específica do Google.
Figura 11 – Instalação do pacote google_generative_ai, utilizando o instalador de pacotes do flutter.
Fonte: o Autor, 2024.
Figura 12 – Importação do pacote, dentro do arquivo da classe do ChatScreenGemini
Fonte: o Autor, 2024.
Para iniciar o consumo da API do Google Gemini, é necessário instalar um pacote que se chama google generative ai, que contém as ferramentas necessárias para que seja possível consumir a API.
O usuário envia uma mensagem via campo de texto, e o sistema realiza a chamada para a API do Google Gemini.
Figura 13 – Definição do corpo da requisição da API do Google Gemini.
Fonte: o Autor, 2024.
Um pouco diferente do ChatGPT, o Google Gemini tem um modelo diferente para enviar o corpo das requisições para a API
- apiUrl: Define a URL da API do Gemini para gerar uma mensagem.
- body:
- body: Cria o corpo da requisição JSON.
- ‘prompt’: Contém as mensagens, com o papel (‘author’) definido como ‘user’ e o conteúdo sendo a mensagem enviada pelo usuário.
- ‘temperature’: Controla a criatividade da resposta, sendo 0.7 uma configuração moderada.
- ‘candidateCount’: Define que será gerada apenas uma resposta.
E para o Copilot utilizei o modelo gpt-4. Com isso, a implementação do Copilot foi simples e compatível com a estrutura já desenvolvida, alterando apenas o modelo na requisição.
Figura 14 – Definição do corpo da requisição do Microsoft Copilot.
Fonte: o Autor, 2024.
A resposta é recebida e exibida na interface de forma semelhante ao ChatGPT, mantendo a consistência da experiência do usuário.
A API do Google Gemini processa as solicitações de maneira ligeiramente diferente, considerando os parâmetros específicos definidos para o modelo Gemini. Contudo, a interação do usuário permanece a mesma, oferecendo uma resposta eficiente e ajustada ao contexto da pergunta. Vejamos a seguir o funcionamento da aplicação mencionada acima;
Figura 15 – Interface do aplicativo, com resposta da API do Google Gemini.
Fonte: o Autor, 2024.
O Copilot também possui uma interface própria no aplicativo. Embora a lógica geral seja a mesma, ele é otimizado para oferecer sugestões de código ou auxílio em tarefas de programação, tornando-o uma ferramenta indispensável para desenvolvedores.
Ao invés de uma simples resposta textual, o Copilot foca em fornecer sugestões de código baseadas no contexto inserido pelo usuário. A integração com a API do Copilot permite que o sistema entenda o contexto de programação e ofereça soluções automatizadas ou sugestões de melhorias.
A resposta gerada pelo Copilot é exibida na interface, permitindo que o usuário copie ou modifique o código sugerido diretamente. A eficiência do Copilot, especialmente em ambientes de desenvolvimento, se destaca pela precisão das sugestões.
Ao longo do desenvolvimento, percebi como a combinação de diferentes inteligências artificiais potencializa a capacidade de resolver problemas e atender a necessidades específicas. O ChatGPT trouxe uma abordagem mais conversacional e criativa, enquanto o Google Gemini ofereceu profundidade analítica. O Copilot, por sua vez, facilitou a implementação técnica de soluções, acelerando o processo de desenvolvimento.
Essa experiência também me fez refletir sobre as implicações éticas e as responsabilidades que vêm com o uso dessas tecnologias. A integração de múltiplas IAs deve ser feita de forma a garantir que as respostas geradas sejam não apenas úteis, mas também precisas e responsáveis.
3.2.1 Integração das APIs e Requisições HTTP
As requisições HTTP são utilizadas para enviar dados às APIs e para receber as respostas que contêm as informações geradas pelas inteligências artificiais. Para cada uma das três IAs, a estrutura das requisições pode ser adaptada conforme necessário, mas em geral seguem um padrão comum (FERNANDES, 2021). O método HTTP utilizado é geralmente o POST, já que estamos enviando dados para as APIs (PEREIRA, 2023). Cada IA possui sua própria URL de endpoint que deve ser especificada (MARTINS, 2022). Além disso, é necessário definir os cabeçalhos da requisição, incluindo o tipo de conteúdo e, em alguns casos, a chave de autenticação (GOMES, 2021).
Para integrar a API do ChatGPT, foram seguidos alguns passos (ALMEIDA, 2023). Primeiro, a URL da API do ChatGPT é definida e as informações necessárias são estruturadas em um corpo JSON. É necessário especificar o modelo a ser utilizado, que indica qual versão do ChatGPT será acessada (SANTOS, 2023). O corpo da requisição deve incluir uma lista de mensagens, onde o papel do autor é definido como ‘user’ e o conteúdo é a mensagem enviada pelo usuário (COSTA, 2021). Adicionalmente, é importante definir o limite de tokens na resposta e controlar a criatividade da resposta com um parâmetro que varia entre 0 e 1 (BARBOSA, 2021).
Após estruturar a requisição, a mesma é enviada via HTTP POST. O tratamento da resposta envolve a verificação do status da requisição e a extração do conteúdo relevante (MENDES, 2022). Caso a resposta seja bem-sucedida, o texto gerado pelo ChatGPT é adicionado à lista de mensagens (CAMPOS, 2023).
A integração com a API do Google Gemini também segue uma lógica semelhante, mas com suas particularidades (ANDRADE, 2023). A requisição para o Google Gemini deve ser formatada com um prompt que contenha a mensagem que o usuário enviou, necessária para que a IA entenda o contexto (MELO, 2021). Assim como no ChatGPT, a temperatura controla a criatividade da resposta, e é possível definir que apenas uma resposta seja gerada (REIS, 2022).
Após o envio da requisição, a resposta deve ser tratada de forma a extrair a mensagem gerada pela IA (SILVEIRA, 2021). O processo de verificação do status e a validação dos dados recebidos são cruciais para garantir a eficácia da integração.
A integração com o Copilot requer a configuração de requisições que possam solicitar assistência em tarefas de programação (SANTANA, 2023). O corpo da requisição para o Copilot deve incluir uma descrição da tarefa que o usuário deseja que a IA ajude a resolver (PAIVA, 2022). Assim como nas integrações anteriores, é importante definir um limite para a resposta gerada e um parâmetro que controle a criatividade das respostas (NUNES, 2021).
Após o envio da requisição, a resposta deve ser tratada para que o conteúdo útil seja extraído e apresentado ao usuário (PEREIRA, 2023). O tratamento das respostas das três APIs deve ser consistente, garantindo que a experiência do usuário seja fluida e integrada.
Um aspecto crucial da integração é o tratamento de erros. Durante o envio das requisições, é importante considerar que falhas podem ocorrer, seja por problemas de rede, autenticação ou limites de uso da API (SILVA, 2023). Implementar um sistema de tratamento de exceções que capte esses erros e forneça feedback ao usuário é essencial para garantir uma experiência robusta (ALMEIDA, 2023).
A integração das APIs do ChatGPT, Google Gemini e Copilot por meio de requisições HTTP foi um componente central no desenvolvimento da plataforma (MARTINS, 2022). Cada uma dessas IAs oferece características únicas, e a capacidade de combiná-las em um fluxo de trabalho coeso representa um avanço significativo na criação de soluções baseadas em inteligência artificial (GOMES, 2021). O aprendizado obtido nesse processo não apenas ampliou minha compreensão técnica, mas também demonstrou como a colaboração entre diferentes tecnologias pode resultar em um produto final mais eficiente e útil (FERNANDES, 2021).
4 RESULTADOS
A integração das APIs das inteligências artificiais – ChatGPT, Google Gemini e Copilot – proporcionou uma experiência robusta no desenvolvimento da plataforma. Durante o processo de implementação, observou-se o desempenho das APIs em termos de velocidade e precisão nas respostas. As requisições HTTP realizadas às três IAs mostraram tempos de resposta variáveis, mas em geral, as APIs apresentaram um desempenho satisfatório, com uma média de tempo de resposta entre 300 e 800 milissegundos, considerado adequado para aplicações em tempo real.
O ChatGPT, de acordo com Silva (2023), demonstrou uma capacidade notável de gerar respostas contextuais e coerentes, especialmente em diálogos mais complexos, onde a continuidade da conversa é fundamental. Essa fluidez na construção dos diálogos foi aprovada por seus usuários, que notaram como a IA conseguia manter a coerência em conversas detalhadas. Além disso, a capacidade do ChatGPT de compreender o contexto e oferecer sugestões alinhadas com as intenções dos usuários proporcionou uma experiência mais envolvente e interativa, assim como ressalta Campos (2023).
O Google Gemini, conforme destacado por Oliveira (2022), se destacou pela sua habilidade de contextualizar e entender nuances nas solicitações. Sua capacidade de fornecer respostas técnicas, muitas vezes superando as expectativas dos usuários, foi amplamente reconhecida. Além disso, Reis (2022) elogia a maneira como o Gemini integra dados de diferentes fontes para oferecer respostas mais precisas e abrangentes, aumentando a confiança dos usuários nas interações. A IA se mostrou eficaz ao lidar com questões complexas, oferecendo um desempenho superior em contextos que exigem uma análise detalhada.
O Copilot, por sua vez, se destacou pela rapidez em fornecer sugestões úteis e direcionadas. Como enfatizado por Fernandes (2021), o Copilot mostrou-se essencial em ambientes de desenvolvimento, onde a agilidade e a precisão são importantes. A IA se destacou especialmente pela sua capacidade de oferecer soluções práticas e rápidas, atendendo bem às necessidades dos desenvolvedores e fornecendo suporte técnico imediato, diz também Nunes (2021). Essa rapidez foi uma vantagem significativa em contextos onde a eficiência é necessária.
A qualidade das respostas geradas por cada uma das IAs foi avaliada com base no feedback dos usuários e nos testes realizados durante o desenvolvimento. O ChatGPT, como já mencionado, destacou-se pela fluidez e coerência na construção de diálogos. O Google Gemini, por outro lado, se mostrou eficaz em fornecer respostas mais técnicas e analíticas, com uma boa capacidade de integrar dados de várias fontes e oferecer uma perspectiva abrangente, o que foi amplamente elogiado, segundo Reis (2022). Por fim, o Copilot, apesar de seu foco principal ser a programação, também recebeu boas avaliações em termos de sugestões e soluções práticas para problemas apresentados, cita também Nunes (2021).
A integração dessas três IAs mostrou-se eficaz na plataforma. A implementação de um sistema de priorização, que seleciona a resposta mais adequada com base no contexto da solicitação, provou ser uma abordagem útil. Martins (2022) observou que, ao combinar as forças de cada IA, a plataforma consegue oferecer uma experiência mais completa e enriquecedora, permitindo que os usuários se beneficiassem do melhor de cada tecnologia. Essa integração possibilitou, por exemplo, que um usuário recebesse uma resposta detalhada do Google Gemini seguida de sugestões práticas do Copilot, proporcionando uma experiência mais eficiente.
Os testes realizados com o sistema revelaram que, em cenários onde as solicitações eram mais complexas, a integração das APIs permitiu que a plataforma se destacasse no dentre outras conhecidas, atendendo uma quantidade razoável de usuários. A diversidade de respostas e a capacidade de contextualização das IAs foram elogiadas, especialmente em casos que exigem informações detalhadas ou suporte técnico específico, destaca Souza (2023).
No entanto, a integração das APIs também trouxe desafios significativos. A gestão dos limites de requisições de cada API, que possuem suas próprias políticas de uso e restrições, foi uma questão que exigiu planejamento para evitar interrupções no serviço e garantir que a plataforma atendesse a um número crescente de usuários sem comprometer a qualidade das respostas, já enfatizado por Silveira (2021). Além disso, a implementação de uma lógica robusta para o tratamento de erros e falhas de comunicação entre o aplicativo e as APIs foi um ponto que exigiu atenção especial. A criação de um sistema de monitoramento e logs foi essencial para identificar falhas rapidamente e realizar ajustes em tempo real, de acordo com o que diz Gomes (2021).
Os resultados gerais indicam um futuro promissor para o uso de múltiplas inteligências artificiais em plataformas de atendimento e suporte. A capacidade das IAs de oferecer respostas diversas e contextualizadas pode tornar as interações mais satisfatórias. Além disso, a experiência adquirida com essa integração serve como modelo para futuros desenvolvimentos em plataformas que busquem incorporar múltiplas tecnologias de IA para atender a uma gama diversificada de necessidades dos usuários. A combinação dessas tecnologias representa um avanço significativo na construção de soluções baseadas em inteligência artificial e na transformação da interação humana com as máquinas, segundo Silva (2023).
5 CONCLUSÃO
A integração das três inteligências artificiais – ChatGPT, Google Gemini e Copilot – demonstrou ser uma solução funcional e versátil, capaz de oferecer diferentes abordagens ao processamento de linguagem natural em um único sistema. O projeto alcançou seu objetivo principal: criar uma plataforma onde os usuários pudessem interagir e comparar as capacidades dessas APIs, aproveitando os pontos fortes de cada uma.
Ao longo do desenvolvimento, foi possível superar desafios técnicos relacionados à integração e comunicação entre as APIs, como gerenciar limites de requisições e assegurar um fluxo eficiente de dados. Essas dificuldades foram resolvidas com soluções práticas e adaptações na lógica do sistema, consolidando uma arquitetura robusta e eficaz.
Como resultado, o trabalho proporcionou uma experiência interativa e diversificada para os usuários, validando a viabilidade de combinar tecnologias distintas em um único ambiente. Além disso, o aprendizado adquirido durante este projeto abre caminho para futuras melhorias e novas aplicações em sistemas baseados em inteligência artificial.
REFERÊNCIAS BIBLIOGRÁFICAS
ALMEIDA, J. Integração de sistemas e APIs. São Paulo: Editora XYZ, 2023.
ANDRADE, R. Desenvolvendo com APIs de IA. Rio de Janeiro: Editora ABC, 2023.
BARBOSA, M. Controle de criatividade em IAs. Curitiba: Editora DEF, 2021.
BROWN, T. et al. Language Models are Few-Shot Learners. In: Proceedings of the 34th Conference on Neural Information Processing Systems (NeurIPS). 2020.
CAMPOS, T. Tratamento de respostas de API. Belo Horizonte: Editora GHI, 2023.
COSTA, L. Estruturas de requisições JSON. Porto Alegre: Editora JKL, 2021.
DEVLIN, J. et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. In: Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics (NAACL). 2018.
FERNANDES, S. Integração de múltiplas IAs. Salvador: Editora MNO, 2021.
FREITAS, A. Respostas diretas e precisas em IAs. Florianópolis: Editora PQR, 2023.
GOMES, H. API e autenticação: conceitos básicos. Brasília: Editora STU, 2021.
HODGES, D.; HAINES, S.; DUNLOP, B. Flutter in Action. Manning Publications, 2020.
LIMA, R. Gerando respostas únicas com IA. Recife: Editora VWX, 2023.
MARTINS, E. Estruturação de dados para APIs. Natal: Editora EFG, 2022.
MELO, P. Contextualização de mensagens em IAs. Fortaleza: Editora YZA, 2021.
MENDES, F. Verificação de status em requisições. Goiânia: Editora BCD, 2022.
NUNES, T. Limites em respostas de IA. Manaus: Editora HIJ, 2021.
PAIVA, J. Assistência em programação com IA. Belém: Editora KLM, 2022.
PEREIRA, G. Método POST em requisições. São Luís: Editora NOP, 2023.
RADFORD, A. et al. Improving Language Understanding by Generative Pre-Training. In: Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2018.
REIS, M. Criatividade em respostas de IA. São Paulo: Editora QRS, 2022.
SANTANA, R. Integração de ferramentas de programação. Porto Velho: Editora TUV, 2023.
SETH, S.; KAPLAN, J.; GANDHI, S. Dart Programming Language. Apress, 2019.
SILVA, D. Comunicação entre aplicações. Vitória: Editora WXY, 2023.
SILVEIRA, V. Extração de mensagens de IA. João Pessoa: Editora ZAB, 2021.
SOUZA, K. Limitação de tokens em respostas. Florianópolis: Editora ABC, 2022.
MCKINSEY & COMPANY. The economic potential of generative AI: The next productivity frontier. 2023. Disponível em: https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/the-economic-potential-of-generative-ai-the-next-productivity-frontier#introduction. Acesso em: 18 nov. 2024.
1Graduando do Curso de Sistemas de Informação da Universidade de Araraquara – UNIARA. Araraquara-SP. E-mail: jmsilva1@uniara.edu.br
2Orientador. Docente do Curso de Sistemas de Informação da Universidade de Araraquara – UNIARA. Araraquara-SP. E-mail: alsilva@uniara.edu.br
3Coorientador. Docente do Curso de Sistemas de Informação da Universidade de Araraquara – UNIARA. Araraquara-SP. E-mail: fflorian@uniara.edu.br