Bem-vindo(a) ao ChatGPT em Unity, um projeto inovador que combina a potente API do ChatGPT da OpenAI com uma envolvente interface de bate-papo desenvolvida em Unity. Esta aplicação visa entender os padrões e comportamentos das crianças, oferecendo análises comportamentais valiosas. 🤖💬
Este projeto nasceu como parte do meu TCC da pós-graduação em IA e Machine Learning na PUC Minas. Com dedicação e determinação, enfrentei desafios técnicos, como a integração da API OpenAI e obstáculos de acesso. Minha visão é criar um "psicólogo intermediário" para adolescentes, usando a API da OpenAI de forma envolvente. As conversas são registradas em JSON e armazenadas no AWS S3. Um modelo de Machine Learning está sendo desenvolvido para entender o conteúdo das conversas, detectar sentimentos e fornecer insights aos profissionais de saúde. 💪
Mas chega de drama, vamos falar sobre o app. A minha ideia é criar um ambiente que possa ser utilizado para uma espécie de "psicólogo" intermediário dos adolescentes. O que quero dizer é que a ideia aqui é utilizar a poderasa API da OpenAI (configurada para ser mais divertida possível) para interagir com as crianças. Todo o log de conversa é gravado em JSON e enviado para um armazenamento AWS S3. Estou desenvolvendo um modelo de Machine Learning para poder entender o conteúdo das conversas, detectar sentimentos e trazer sintomas para os profissionais da saúde. A ideia não é substituir o profissional, e sim ser o máximo assertivo no diagnóstico.
É importante que haja um incentivo dos pais para o uso recorrente do software, pois todo o histórico é gravado e analisado progressivamente durante a vida da criança. Isso pode auxiliar em padrões não detectados nos individuos durante os anos.
📸 Imagem 01 - Visão da tela em formato mobile 📸
videoPromotion.mp4
🎬 Video 01 - App PlayMode 🎬
Um componente crucial é o desenvolvimento de um modelo de Machine Learning dedicado a entender o conteúdo das conversas. Isso permite a detecção de sentimentos e padrões ao longo do tempo. Esses insights podem ser extremamente valiosos para profissionais de saúde, ajudando-os a identificar possíveis sintomas e oferecer intervenções adequadas.
Vale destacar que a aplicação não tem a pretensão de substituir profissionais de saúde. Pelo contrário, visa ser um instrumento assertivo para auxiliar no diagnóstico, complementando o trabalho dos especialistas. A análise de dados coletados ao longo do tempo pode proporcionar uma visão mais completa do progresso e comportamento da criança.
A participação e incentivo dos pais são essenciais para o sucesso da aplicação. O histórico de conversas é gravado e analisado progressivamente ao longo da vida da criança. Isso pode ser um recurso valioso para identificar padrões que podem não ser imediatamente perceptíveis, auxiliando no desenvolvimento saudável.
Além das funcionalidades atuais, estamos planejando adicionar recursos avançados, como Text-To-Speech e Speech-To-Text através do Oculus SDK. Também estamos trabalhando na implementação de um recurso de histórico completo das conversas com o ChatGPT, proporcionando uma experiência mais enriquecedora.
scroll.mp4
🎬 Video 02 - Scroll da tela e conversa 🎬
No desenvolvimento deste projeto, tenho buscado adotar boas práticas de programação para garantir a qualidade e a eficiência do código. Embora todos nós enfrentemos desafios, estou trabalhando para superá-los e entregar um produto sólido. Estou usando recursos como actions, unity events e headers para manter o código organizado e legível. Embora eu saiba que poderia ter incluído mais comentários, fiz o meu melhor para tornar o código compreensível. Espero que minha dedicação se reflita positivamente na experiência do usuário! 😉💻
Um dos maiores desafios que encontrei foi criar o Callback para o botão de envio de mensagem. Nesse ponto, a colaboração do ChatGPT foi crucial para me orientar. Essa parte do código envolve a comunicação com o ChatGPT, um modelo de linguagem capaz de gerar respostas contextuais. A função GetCompletionAsync desempenha um papel fundamental, enviando uma solicitação ao ChatGPT com mensagens anteriores da conversa e parâmetros relevantes, como o modelo a ser usado e a temperatura de geração das respostas. Quanto às respostas um tanto "humorísticas", ainda estou investigando essa peculiaridade. Pode ser que o algoritmo esteja aprendendo e se adaptando ao estilo de cada usuário. Planejo conduzir mais testes em diferentes chaves ou contas para entender melhor esse comportamento divertido e único! 😄💬
Uma característica importante é a comunicação assíncrona com a API do ChatGPT. Ao marcar a função como async e usar o await, o programa pode continuar executando outras tarefas enquanto aguarda a resposta da API. Isso garante uma experiência fluida para o usuário, sem travamentos. Uma vez recebida a resposta do ChatGPT, o programa a trata e a exibe ao usuário, geralmente em uma bolha de discussão. Essa interação, que envolve enviar uma mensagem, receber uma resposta e apresentá-la ao usuário, é semelhante ao processo de conversar com um assistente virtual. É assim que os chatbots e sistemas de processamento de linguagem natural funcionam, permitindo uma comunicação mais natural e a obtenção de respostas relevantes.
Antes de concluir, quero fazer uma observação importante (mesmo que seja um trocadilho ruim, peço desculpas!): No script do projeto, as referências às chaves de API, ID da organização e Cliente da API da OpenAI foram configuradas para que, ao baixar e utilizar este projeto, você possa facilmente adicionar suas próprias informações. É crucial lembrar que quem tem acesso a essas chaves tem acesso à API. Portanto, se você adquirir um plano da API, é mais seguro não inserir as chaves diretamente no script. É preferível fazer a referência direta no Inspector da Unity. Além disso, os usuários do aplicativo final não terão acesso direto a essas chaves, pois interagirão por meio da interface de usuário que foi desenvolvida. Isso garante a segurança dos dados e a integridade do projeto. Fiquem tranquilos! 😉
📸 Imagem 02 - Referências de autenticação no Inspector da Unity 📸
Link Artigo no Drive: https://drive.google.com/file/d/15J1zMDFOeI08P6PUZcItjr8akWdcBCrW/view?usp=sharing
Enfim, é isso. Vou continuar trabalhando nesse projeto nas próximas semanas e, quem sabe, fazer uma vaquinha online para ajudar a pagar a API (se alguém estiver disposto, rsrsrs). Fique de olho no projeto e, se você gostou, só entrar em contato com as minhas redes abaixo! Valeu!