Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Um projeto para a criação de uma extensão de navegador que ajuda pessoas idosas a navegarem na Internet e utilizar atalhos de comando.

License

Notifications You must be signed in to change notification settings

AndreCoutinhom/golshell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lab lab lab

Golshell

image


Introdução

Golshell é um projeto para uma extensão de navegador que ajuda pessoas idosas a navegar na Internet. O Golshell foi criado para dar assistência a pessoas idosas que precisam ou querem utilizar computadores modernos e não podem contar com a presença constante de familiares ou instrutores humanos que possam instruí-los a realizar procedimentos na máquina.

Justificativa

Pessoas idosas muitas vezes não usam computadores por opção. Há diversos procedimentos como pagamento, administração de conta bancária, consultas médicas, aquisição de documentos e muitos outros que podem ser realizados diretamente pela Internet. Em alguns casos, essas ações são resolvidas exclusivamente pela Internet.

Para ajudar pessoas que não estão acostumadas com o vocabulário do mundo digital e com as interfaces mais recentes, o Golshell funciona como um guia na web, instruindo os usuários explicando o conteúdo da página, traduzindo termos em siglas ou em inglês (ou os dois) e os aconselhando quanto ao uso adequado do teclado e mouse para alcançar seus objetivos.

Estudos Relacionados

O ChatBot

Golshell

Com uma bela interface, alto nível de naturalidade de texto, contextos abertos e um sistema de instruções original, o Golshell serve como um guia turístico pelo mundo da Internet. Quando o usuário lhe pede algo, o Golshell faz o possível para que o usuário entenda o procedimento, mesmo que nunca tenha navegado pela Internet em toda a sua vida.

O sistema de instruções original, permite que o chatbot atribua uma palavra de respeito, atenção e carinho enquanto demonstra de forma instrutiva e passo a passo como realizar a ação que o usuário deseja. Além disso, o Golshell tende a sempre perguntar ao usuário se precisa de ajudas adicionais às já fornecidas, tentando sempre se certificar de que o usuário está confortável e satisfeito com seu resultado.

A desativação do chat ocorre com o pronunciamento de seu nome: "Golshell".

Ferramentas

Google AI Studio lab

A API do Gemini, LLM oficial da Google, serviu como principal fonte de parâmetros para o desenvolvimento do chatbot. Através dela foi possível determinar o sistema de instruções original, o modelo a ser utilizado, a temperatura e as configurações de segurança. Todos os códigos gerados automaticamente pela plataforma estão disponibilizados neste repositório em todas as linguagens disponibilizadas. Para acessá-las, clique aqui.

Colab e Python lab lab

Todo o código foi escrito no ambiente de desenvolvimento em Python da Google, o Google Colab. Os scripts foram escritos ordenadamente com descritivos de suas específicas funções.

Primeiro foi feito o comando de instalação do SDK da Google:

!pip install -q -U google-generativeai

Depois a importação da API key gerada:

import google.generativeai as genai
from google.colab import userdata
userdata.get('GOOGLE_API_KEY')

GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)

A criação do modelo seguiu primeiramente com a leitura dos modelos disponíveis:

for m in genai.list_models():
  if 'generateContent' in m.supported_generation_methods:
    print(m.name)

Então os parâmetros determinados pelo Google AI Studio foram passados para o código:

generation_config = {
    "candidate_count": 1,
    "temperature": 1,
}

safety_settings = {
    "HARASSMENT": "BLOCK_NONE",
    "HATE": "BLOCK_NONE",
    "SEXUAL": "BLOCK_NONE",
    "DANGEROUS": "BLOCK_NONE",
}

system_instruction = "CONTEXTO\n\nVocê é um guia pela Internet chamado Golshell. Seu objetivo é ajudar seu usuário a navegar pela Internet, oferecendo instruções para pessoas que nunca navegaram em qualquer browser em suas vidas.\n\nConsidere que os seus usuários são pessoas na faixa etária de 60 a 100 anos de idade. Muitas dessas pessoas não conhecem termos em inglês, expressões da Internet e/ou siglas.\n\n*Exemplos de palavras que seus usuários podem não conhecer:*\n\n- Browser;\n- Cursor;\n- Link;\n- URL;\n- Endpoint;\n- Website;\n- Download;\n- Upload;\n- Anexo.\n\nOBJETIVO\n\nSeu objetivo central é fazer com que seu usuário idoso cumpra a ação que deseja com êxito e de forma que possa fazer de novo depois.\n\nINSTRUÇÕES DE OUTPUT\n\nNo primeiro output, apresente-se utilizando a marca de título do markdown (#).  Depois de se apresentar uma vez, não precisa se apresentar de novo.\n\n*Exemplo*:\n\n# Meu nome é Goshell, sou seu guia pelo fantástico mundo da Internet.\n\nInicie um output com uma saudação amigável e respeitosa usando a marca de título 2 do markdown (##). \n\nDemonstre acolhimento e alegria.\n\n*Exemplos*:\n\n## Boas Vindas! Como está sendo seu dia 👋😁?\n## Olá! Que bom ter você aqui 👋😁! \n## Saudações! É muito bom falar com você 👋😁!\n\nDê respostas instrutivas para pessoas que não estão acostumadas a navegar pela Internet. \n\nEvite falar com termos da Internet, siglas e palavras em inglês.\n\nQuando utilizar um termo específico da Internet, coloque em negrito (** **). \n\n*Exemplos*: **URL**, **Browser**, **Link**, **Website**.\n\nInclua links clicáveis para os endereços de destino.\n\nOfereça um passo a passo numerado para instruir o usuário detalhadamente.\n\nPergunte se o usuário está satisfeito.\n\nOfereça ajudas adicionais para o problema.\n\nCertifique-se de que o usuário pôde cumprir a ação.\n\nApresente calma e paciência na fala.\n\nPermita que o usuário compreenda a natureza dos problemas, e não se sinta mal.\n\n**Finalização**\n\nFinalize o output com a frase: \"Se precisar de mais alguma coisa, é só chamar. Estarei à postos para te auxiliar.\""

O modelo foi então, oficialmente iniciado:

model = genai.GenerativeModel(model_name="gemini-1.5-pro-latest",
                              generation_config=generation_config,
                              system_instruction=system_instruction,
                              safety_settings=safety_settings)

Finalmente, o chat estava pronto para ser utilizado com uma interface melhorada com markdown

import textwrap
from IPython.display import display
from IPython.display import Markdown

def to_markdown(text):
  text = text.replace('•', '  *')
  return textwrap.indent(text, '> ', predicate=lambda _: True)

prompt = input("Escreva o que você precisa: ")

while prompt != "golshell":
  response = chat.send_message(prompt)
  markdown_text = to_markdown(response.text)
  display(Markdown(markdown_text))
  prompt = input("Precisa de mais alguma coisa? Se não, escreva a palavra golshell: ")

Para ter acesso ao processo de construção no Colab, é só clicar aqui.

Ideias para o futuro

É da intenção do autor deste projeto que esse chatbot seja, futuramente, aplicado em uma extensão de navegação, para auxiliar pessoas idosas enquanto estão em um Browser. Além disso, incorporar o chat com um sistema de voz, permitirá abrir ainda mais o espaço acessível para pessoas idosas que possuem dificuldade de manipulação motora e/ou visão.

Inspirações:

image

Uma extensão do Google Chrome que consegue ler dados de páginas da web e sumarizar vídeos no YouTube.


image

Uma extensão do Opera GX que consegue interpretar, traduzir e pesquisar sobre textos selecionados na web.


image

Um script em Python com desenvolvimento transmitido pelo YouTube que complementa APIs da Google e da Open AI para criar um assistente de voz vinculado ao Gemini.


Fundamentos

lab

Esse projeto foi baseado nos fundamentos tratados durante a Imersão_IA da Alura. A imersão fundamentou conceitos de LLM, uso do Gemini, uso do Google AI Studio, Programação em Python e desenvolvimento de chatbots.

Todo o conteúdo disponibilizado com algumas anotações pessoais do autor, estão disponíveis neste repositório do GitHub.

Sobre o Autor

lab

Meu nome é André, boas vindas ao meu repositório. Eu sou um pesquisador serial interdisciplinar especializado no desenvolvimento de produtos ergonômicos e interfaces intuitivas, com aplicações focadas em jogos digitais e dispositivos vestíveis. Abaixo estão alguns dos lugares onde você pode me encontrar e contatar.

Licença

Projeto licenciado via MIT


About

Um projeto para a criação de uma extensão de navegador que ajuda pessoas idosas a navegarem na Internet e utilizar atalhos de comando.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published