[Imersão IA 2ª edição] Criando seu próprio chatbot com a Gemini API no Google Colab
Início da Aula e Introdução ao Desenvolvimento com Gemini
Visão Geral da Seção: Neste trecho, a professora Ana Raquel introduz a aula prática sobre o desenvolvimento com o Gemini, destacando a importância de aprender a utilizar a IA em benefício próprio.
Desenvolvimento Prático com Gemini
- Ana Raquel incentiva os participantes, mesmo aqueles sem experiência em programação, a acompanharem a aula para aprenderem passo a passo.
- Destaque para o ambiente intuitivo e código simples, encorajando até mesmo iniciantes na escrita de código.
- Anúncio especial sobre os prêmios oferecidos aos melhores projetos, incluindo uma bolsa de 100% na FIAP como prêmio principal.
Premiação Especial e Incentivos aos Participantes
Visão Geral da Seção: Neste segmento, são apresentados os prêmios especiais e incentivos para os participantes do curso.
Prêmios e Incentivos
- Detalhes dos prêmios: acesso ao plano Pro da Alura gratuitamente, convite para a IA Conference Brasil e almoço com instrutores.
- Anúncio do desafio que será proposto no final da aula atual, incentivando todos os participantes a se prepararem para participar.
Criação e Utilização da API Key
Visão Geral da Seção: Esta parte aborda o conceito de API Key e sua importância no desenvolvimento com Gemini.
Importância da API Key
- Explicação sobre o papel da API Key como um controle de acesso essencial para garantir autenticação ao acessar as APIs do Gemini.
- Discussão sobre criar e gerenciar chaves de API conforme necessário, enfatizando sua confidencialidade.
Gestão Eficiente das Chaves de API
Visão Geral da Seção: Aqui é discutida a gestão adequada das chaves de API para segurança e controle eficaz.
Gestão Adequada das Chaves de API
Criação e Gerenciamento de API Key na Google Cloud
Visão Geral da Seção: Nesta parte, é abordado o processo de criação e gerenciamento de uma API Key na Google Cloud, enfatizando a importância da segurança e confidencialidade dos dados.
Criação da API Key
- É proposto criar um projeto na Google Cloud para armazenar e gerir a API Key com segurança.
- Destaca-se que a API Key gerada é uma sequência alfanumérica aleatória, devendo ser mantida em sigilo absoluto.
Utilização do Colab
- Após obter a API Key, o próximo passo é acessar o Colab para desenvolver códigos.
- O Colab é elogiado por sua praticidade e ambiente Python integrado, sendo uma ferramenta essencial para trabalhar e criar códigos.
Utilização do Google Colab para Desenvolvimento de Modelos
Visão Geral da Seção: A utilização do Google Colab como plataforma para desenvolver modelos é explorada, destacando sua eficiência no trabalho com Python e notebooks.
Vantagens do Colab
- O Colab permite escrever código, executá-lo e visualizar os resultados em um único ambiente, facilitando o processo de desenvolvimento.
- Destaca-se a capacidade do Colab em auxiliar na criação de storytelling através da integração de código e gráficos.
Guia de Início Rápido e Execução no Google Colab
Visão Geral da Seção: Explora-se o Guia de Início Rápido para a API do Gemini, incluindo a execução automática no Google Colab.
Guia de Início Rápido
- O Guia oferece pontos iniciais sobre a API do Gemini, incluindo informações sobre a API Key.
- Disponibiliza um botão para executar automaticamente no Google Colab, agilizando o acesso à plataforma.
Configurações Iniciais no Google Colab
Visão Geral da Seção: São apresentadas as configurações iniciais necessárias no Google Colab antes de iniciar o desenvolvimento do modelo utilizando Python.
Instalação dos Pacotes
- Demonstra-se o comando "pip install" para instalar pacotes necessários no ambiente Python do Colab.
Introdução e Configuração Inicial
Visão Geral da Seção: Nesta parte, são abordados os primeiros passos para configurar a API Key no projeto do Colab e iniciar o uso do Gemini Pro.
Configuração da API Key
- Na documentação, é mencionado que a orientação sobre o uso do cofre de senhas do Colab não é essencial no momento.
- É necessário inserir a Google API Key no projeto, enquanto outras informações como user data podem ser excluídas.
- A função genai.configure é utilizada para configurar a API Key no projeto Gemini.
Inicialização do Modelo Generativo
- O modelo generativo padrão Gemini Pro é inicializado para começar a utilização.
- A variável "modelo" recebe GenerativeModel com o nome específico do modelo escolhido.
Geração de Conteúdo
- Para gerar conteúdo, utiliza-se model.generate_content com um prompt específico.
- São discutidos prompts possíveis, como "aprender sobre IA na imersão Alura e Google".
Exploração dos Conceitos de IA
Visão Geral da Seção: Neste trecho, são apresentadas diversas áreas da Inteligência Artificial e uma visão geral das possibilidades.
Áreas da IA Abordadas
- Introdução à IA, aprendizado de máquina, tipos de aprendizado (profundo), processamento de linguagem natural e visão computacional são destacados.
- A execução das células no Colab reflete o processo nos bastidores ao clicar em "Run" ou "Enter" em plataformas como o Google IA Studio.
Convite para Participação na Comunidade
Visão Geral da Seção: Aqui ocorre um convite para participar ativamente na comunidade relacionada ao Google Cloud Innovators.
Convite à Participação
- Os espectadores são convidados a se juntarem à comunidade do Discord para networking e mentorias.
- É feito um convite especial para participar da comunidade Google Cloud Innovators, oferecendo oportunidades de aprendizado e interação com profissionais da área.
Início Prático: Criação de Chatbot com Gemini
Visão Geral da Seção: O início prático envolve a criação de um chatbot utilizando a plataforma Gemini do Google.
Demonstração Prática
- O instrutor Fabrício conduzirá uma demonstração prática sobre como criar um chatbot com o Gemini.
Configuração de Modelos no SDK do Google
Visão Geral da Seção: Nesta parte, é abordada a configuração de modelos no SDK do Google, com destaque para a execução de comandos como "Ctrl+Enter" e "Shift+Enter" para executar e criar novas células, respectivamente.
Configurando Modelos Disponíveis
- É introduzido o conceito de listagem dos modelos disponíveis, utilizando um loop For para essa finalidade.
- O uso do comando For é explicado como uma forma de repetição para buscar informações sobre os modelos disponíveis.
- Demonstra-se a utilização do método listmodels dentro do loop For para listar os modelos existentes.
Explorando Diferentes Modelos Gemini
Visão Geral da Seção: Nesta seção, são discutidos os diferentes tipos de modelos Gemini disponíveis, como o Gemini Pro e o Gemini ProVision, destacando suas funcionalidades e diferenças.
Tipos de Modelos Gemini
- São apresentados dois tipos principais: Gemini Pro e Gemini ProVision, diferenciados pelo tipo de solicitações que podem processar.
- O modelo ProVision é destacado por permitir multimodalidade ao aceitar texto, imagem e vídeo nas requisições.
- Explora-se a nomenclatura dos modelos, incluindo atalhos para versões específicas como Gemini 1.0 Pro e 1.5 Pro.
Versões e Atalhos dos Modelos
Visão Geral da Seção: Aqui são detalhadas as versões estáveis e experimentais dos modelos Gemini, bem como o uso do atalho "latest" para acessar a última versão experimental disponível.
Versões dos Modelos
- Explica-se a distinção entre versões estáveis (como o Gemini 1.0 Pro) e experimentais (por exemplo, o Gemini 1.0 Pro 001).
- Destaca-se a possibilidade de testar versões experimentais explicitamente designadas.
Desenvolvimento de Modelos de Chatbot com Gemini - Parte 3
Visão Geral da Seção: Nesta seção, são abordados tópicos relacionados à evolução e validação de modelos de chatbot, bem como configurações e parâmetros essenciais para o desenvolvimento.
Evolução e Validação do Modelo
- Destaque para a facilidade em utilizar "latest" para acessar a última versão do modelo, facilitando a gestão e evolução dos projetos.
- Importância de validar prompts e cenários em novas versões experimentais do modelo para garantir estabilidade e funcionalidade.
Configurações e Parâmetros
- Exploração das configurações no AI Studio, incluindo a criação de chat prompts com diferentes parâmetros como Top K, Top P, entre outros.
- Detalhamento da definição de parâmetros como candidate_count e temperature para personalizar as respostas do modelo.
- Flexibilidade na ordem dos parâmetros fornecida pela SDK do Gemini, simplificando o processo de codificação.
Configurações Avançadas: Segurança no Desenvolvimento do Chatbot
Visão Geral da Seção: Esta parte foca nas configurações avançadas relacionadas à segurança durante o desenvolvimento do chatbot.
Configurações de Segurança
- Introdução às configurações de segurança, destacando opções como Harassment, Hate, Explicit Sexual Content e Dangerous Content.
- Exploração das opções disponíveis dentro das configurações de segurança, permitindo personalização conforme necessidades específicas.
Personalização das Configurações
- Abordagem detalhada sobre as opções de bloqueio (block none, block few, block some, block most), possibilitando ajustes precisos conforme os requisitos do projeto.
Iniciando a Configuração do Modelo
Visão Geral da Seção: Neste trecho, são abordados os passos iniciais para configurar o modelo, destacando a importância de organizar variáveis e ajustar hiperparâmetros no Google Colab.
Organização das Variáveis e Hiperparâmetros
- Destaque para a organização prévia das variáveis antes de inseri-las no modelo, facilitando o processo de configuração.
- Flexibilidade oferecida pelo Google Colab na manipulação dos hiperparâmetros, permitindo ajustes rápidos e claros.
- Opção padrão de filtros de segurança disponível para quem não deseja personalizá-los durante o teste do Chatbot.
Configurando o Modelo Generativo
Visão Geral da Seção: Aqui é detalhado o processo de inicialização do modelo generativo, incluindo a definição do nome do modelo e parâmetros específicos.
Inicialização do Modelo
- Importância de documentar as etapas realizadas para melhor compreensão pessoal.
- Utilização do genai para configurar o modelo, escolhendo o GenerativeModel e definindo o model_name entre aspas.
- Escolha do modelo mais estável (Gemini 1.0 Pro) em detrimento de opções mais recentes que podem não suportar certas configurações.
Definindo Parâmetros Adicionais
Visão Geral da Seção: Nesta parte, são discutidos os parâmetros adicionais a serem incluídos no modelo generativo para otimizar sua performance.
Inclusão de Parâmetros
- Adição dos parâmetros previamente configurados (Safety Settings e candidate_count) ao modelo gerado.
- Sugestões sobre nomeação clara dos parâmetros para facilitar futuras referências e manutenções.
- Destaque para a praticidade da função autocomplete no Google Colab ao adicionar novos parâmetros ao modelo.
Finalizando Configurações Iniciais
Visão Geral da Seção: Encerramento das configurações iniciais com a criação da resposta inicial e teste do conteúdo gerado pelo modelo.
Conclusão das Configurações
- Criação da resposta inicial através da função generate_content para iniciar o treinamento do modelo.
Introdução ao Desenvolvimento de Chatbot com Python
Visão Geral da Seção: Nesta seção, o instrutor aborda a importância de gerar conteúdo ao desenvolver um chatbot e explica a necessidade de utilizar .text para imprimir apenas o texto da resposta.
Gerando Conteúdo para o Chatbot
- Ao imprimir response sem .text, são exibidos diversos atributos além do texto desejado, como generateContentResponse e outros detalhes irrelevantes.
Criando um Chat Interativo
- O objetivo é desenvolver um chat interativo utilizando a API do Gemini para uma conversa fluida em vez de respostas simples.
- Utilização do método model.generate_content para iniciar o chat e explorar opções como generate_content_async e start_chat.
Inicializando a Conversa no Chatbot
- Exploração da documentação disponível no Colab para entender os argumentos necessários, como history, que mantém o histórico das conversas.
- Inicialização da variável history com colchetes vazios para representar um histórico inicial antes do início da interação.
Interatividade e Estrutura do Chatbot
Visão Geral da Seção: Nesta parte, são discutidas as interações interativas do chatbot por meio de prompts e respostas personalizadas.
Interação Interativa com Prompt
- Implementação de uma estrutura interativa onde os usuários podem fazer perguntas e obter respostas através de prompts.
- Criação da variável prompt que recebe inputs dos usuários, simulando uma experiência realista de diálogo.
Personalização do Chatbot
- Destaque para a criação personalizada do chatbot no Google Colab usando Python, permitindo simular interações similares às plataformas profissionais.
Estabelecendo Critérios de Parada
- Discussão sobre critérios de parada no while loop baseados em inputs dos usuários, exemplificando com a condição "fim" como ponto final.
Introdução ao Desenvolvimento de Chatbots com Python
Visão Geral da Seção: Nesta seção, são abordados conceitos fundamentais para o desenvolvimento de chatbots utilizando Python.
Configuração do Chat
- Explicação sobre a integração do chat com o modelo existente.
- Utilização da variável "prompt" para armazenar as entradas dos usuários.
- Implementação de perguntas dinâmicas através da variável prompt.
Interação e Respostas
- Impressão das respostas recebidas e possibilidade de personalização.
- Ajustes necessários para evitar loops infinitos na interação com o usuário.
Funcionalidades Adicionais
- Adição de novas perguntas para testar a funcionalidade do histórico.
- Exploração das capacidades do chatbot em reconhecer contextos diferentes.
Explorando Históricos e Interatividade Avançada
Visão Geral da Seção: Esta parte destaca a importância do histórico no desenvolvimento do chatbot e explora interações mais complexas.
Contextualização das Perguntas
- Discussão sobre a importância de compreender o contexto das perguntas feitas ao chatbot.
Memória e Histórico
- Destaque para a facilidade proporcionada pelo Gemini em manter um histórico automático das interações.
Variações nas Perguntas
- Exemplo prático envolvendo variações nas perguntas para testar a capacidade de resposta do chatbot.
Finalizando a Interação e Visualização dos Resultados
Visão Geral da Seção: Encerramento da interação com o usuário e opções adicionais para visualizar os resultados obtidos.
Conclusão da Interação
- Critério estabelecido para encerrar com sucesso as interações com o chatbot.
Visualização dos Dados
Exibição e Formatação em Markdown
Visão Geral da Seção: Nesta parte, é abordada a importância de uma exibição mais bonita por meio do Markdown e a definição de uma função to_markdown.
Importância da Exibição em Markdown
- O Markdown é destacado como um formato estético que permite estruturar textos de forma mais atrativa, com recursos como títulos, parágrafos, tópicos, negrito e itálico.
Desafio e Premiação
- É mencionado o grande desafio proposto, com prêmios significativos oferecidos pela Alura. Os participantes são incentivados a criar algo visualmente atraente para concorrer aos prêmios.
Desafio e Regras para Participação
Visão Geral da Seção: Nesta seção, são apresentadas as regras do desafio proposto, juntamente com os critérios de avaliação dos projetos submetidos.
Regras do Desafio
- Os participantes são informados sobre as regras do desafio, incluindo a necessidade de os projetos estarem relacionados ao conteúdo da imersão e o uso obrigatório da API do Google.
Submissão dos Projetos
- Detalhes sobre o processo de submissão dos projetos são fornecidos, incluindo o preenchimento de um formulário com informações pessoais e o link do projeto no GitHub para avaliação.
Avaliação dos Projetos
Visão Geral da Seção: Aqui são discutidos os critérios pelos quais os projetos serão avaliados durante o desafio proposto.
Critérios de Avaliação
Apresentação e Critérios para Projetos
Visão Geral da Seção: Nesta parte, são discutidos critérios importantes para os projetos, como utilidade, criatividade, eficácia e apresentação. Além disso, enfatiza-se a importância de documentar o projeto adequadamente e seguir regras éticas.
Importância da Apresentação do Projeto
- Destaque para critérios como utilidade, criatividade, eficácia e apresentação.
- É crucial que os projetos não tenham objetivos antiéticos, como discurso de ódio ou preconceito.
- Projetos antiéticos serão automaticamente desclassificados mesmo se forem os mais votados.
Documentação e Entrega dos Projetos
- Os projetos devem ser entregues até sábado às 23h59 para avaliação pelos juízes.
- A live de encerramento na segunda-feira revelará os 10 melhores projetos vencedores.
Incentivo aos Participantes e Próximas Etapas
Visão Geral da Seção: Esta parte destaca a importância do engajamento dos participantes nos projetos, incentivando-os a participar ativamente das próximas etapas da imersão em IA.
Incentivos aos Participantes
- Estímulo para iniciar os projetos desde cedo visando à entrega no prazo estabelecido.
- Necessidade de assistir a todas as aulas para obter o certificado da imersão em IA.
Dicas Extras e Conteúdo Adicional
Visão Geral da Seção: Aqui são fornecidas dicas adicionais aos participantes sobre recursos úteis para seus projetos e informações sobre o conteúdo extra relacionado ao GitHub.
Recursos Adicionais
- Sugestão de consultar a documentação do AI Studio e Gemini API para acelerar testes nos projetos.
- Convite para explorar conteúdos mais avançados na próxima aula (Aula 5).
Tutorial: Subir Projeto no GitHub
Visão Geral da Seção: Este trecho fornece um tutorial passo a passo sobre como subir um projeto no GitHub, plataforma obrigatória para envio dos trabalhos na imersão em IA.
Tutorial Passo a Passo
- Demonstração de como criar uma conta no GitHub e configurar um repositório.
Explicação sobre Repositórios no GitHub
Visão Geral da Seção: Nesta parte, é abordada a importância dos repositórios no GitHub e como criar um novo repositório.
Criação de um Novo Repositório
- Ao criar um novo repositório, é essencial escolher um nome significativo que represente o projeto.
- Recomenda-se manter o repositório público para facilitar o acesso ao projeto.
- Adicionar um arquivo README.md é crucial para estabelecer a conexão entre o Google Colab e o GitHub.
Importância do Arquivo README.md
- A inclusão do arquivo README.md permite a conexão entre o Google Colab e o GitHub, sendo essencial para compartilhar projetos.
- O README.md serve como uma introdução ao projeto, possibilitando descrever seu objetivo e dados utilizados.
Utilização do Markdown
- O arquivo README.md utiliza a linguagem de marcação Markdown, permitindo formatações como negrito, itálico e títulos.
- Recomenda-se explorar mais sobre Markdown para melhorar a apresentação do projeto.
Conexão entre Google Colab e GitHub
Visão Geral do Tutorial de Colaboratory e GitHub
Resumo da Seção: Nesta parte do tutorial, são abordados os passos para integrar o Google Colab com o GitHub, permitindo o armazenamento e compartilhamento de projetos.
Configuração do Repositório no GitHub
- O repositório My_First_LLM é criado para armazenar o projeto.
- O arquivo do Colab é salvo na branch principal (main) do repositório.
- Após upload, a URL do projeto é disponibilizada no GitHub.
Compartilhando Projetos e API Key
- É recomendado enviar o link do repositório ao submeter projetos.
- Sugestão de envio do link completo ou apenas do arquivo .ipynb.
Protegendo a API Key
- Destaque sobre não expor a API Key no código.
- Instruções para configurar a API Key de forma segura.
Segurança e Boas Práticas
- Detalhes sobre adicionar uma nova secret key para proteger informações sensíveis.
- Importância de ocultar chaves privadas ao compartilhar projetos.
Conclusão e Incentivo aos Alunos