Este complemento permite obter descrições detalhadas de imagens, controles da interface do usuário e outros conteúdos visualmente inacessíveis.
Aproveitando os recursos multimodais de modelos avançados de IA e algoritmos de visão computacional, nosso objetivo é fornecer as melhores descrições de conteúdo e aumentar a independência geral. Para obter mais informações sobre os modelos subjacentes, consulte a seção correspondente deste documento.
Descreva o objeto em foco, o objeto navegador, a tela inteira ou tire uma foto da câmera integrada
Descreva qualquer imagem que foi copiada para a área de transferência, seja uma imagem de um e-mail ou um caminho no Windows Explorer
Indique se o rosto do usuário está posicionado no centro do quadro usando algoritmos de visão computacional (não requer acesso pago à API)
Suporta vários provedores (GPT4 da OpenAI, Gemini do Google, Claude 3 da Anthropic e llama.cpp)
Suporta uma ampla variedade de formatos, incluindo PNG (.png), JPEG (.jpeg e .jpg), WEBP (.webp) e GIF não animado (.gif)
Opcionalmente, armazena em cache as respostas para preservar a cota da API
Para uso avançado, personalize a contagem de prompts e tokens para adaptar as informações às suas necessidades
Renderização de Markdown para acessar facilmente informações estruturadas (basta incorporar, por exemplo, "responder em Markdown" no final de seus prompts)
Houve algumas motivações principais por trás deste projeto.
O NVDA é capaz de realizar reconhecimento óptico de caracteres (OCR) imediatamente, o que é uma virada de jogo. Se você está tentando extrair texto de uma imagem ou documento PDF, é isso que você está procurando.
No entanto, o OCR só é capaz de analisar dados que possam ser texto. É insuficiente ao considerar o contexto, os objetos e as relações transmitidas nessas imagens. E a internet está cheia deles. Logotipos, retratos, memes, ícones, gráficos, diagramas, gráficos de barras/linhas... Você escolhe. Eles estão em toda parte e geralmente não estão em um formato que os usuários de leitores de tela possam interpretar. Até recentemente, tem havido uma confiança inabalável no fornecimento de descrições de texto alternativas pelos autores de conteúdo. Embora isto ainda seja uma obrigação, é difícil mudar o facto de que um elevado padrão de qualidade é a excepção e não a regra.
Agora, as possibilidades são quase infinitas. Você pode:
Visualize a área de trabalho ou uma janela específica para entender o posicionamento dos ícones ao treinar outras pessoas
Obtenha informações detalhadas sobre o status de jogos, máquinas virtuais, etc. quando o som é insuficiente ou indisponível
Descubra o que é exibido em um gráfico
Desmistifique capturas de tela ou compartilhamentos de tela no Zoom ou Microsoft Teams
Certifique-se de que seu rosto esteja claramente voltado para a câmera e que seu histórico seja profissional antes de gravar vídeos ou participar de reuniões on-line
Visão GPT4
Visão profissional do Google Gemini
Claude 3 (Haicai, Soneto e Opus)
llama.cpp (extremamente instável e lento dependendo do seu hardware, testado para funcionar com modelos llava-v1.5/1.6, BakLLaVA, Obsidian e MobileVLM 1.7B/3B)
Siga as instruções fornecidas abaixo para que cada um deles funcione.
Baixe a versão mais recente do complemento neste link. Clique no arquivo em um computador com o NVDA instalado e siga as instruções abaixo para obter uma chave API de um provedor compatível. Se você não tiver certeza sobre qual usar, o consenso dos desenvolvedores e testadores deste complemento é que o Gemini atualmente oferece preços mais razoáveis, enquanto o Open-AI parece fornecer um maior grau de precisão. Claude 3 haiku é a opção mais barata e rápida, mas a qualidade é um sucesso ou um fracasso. É claro que esses resultados dependem muito da tarefa em questão, por isso recomendamos experimentar diferentes modelos e instruções para descobrir o que funciona melhor.
Vá para a página da chave API do open-AI
Se você ainda não tem uma conta, crie uma. Se você fizer isso, faça login.
Na página Chaves de API, clique para criar uma nova chave secreta. Copie-o para sua área de transferência.
Financie a conta com pelo menos $ 1
Na caixa de diálogo de configurações do NVDA, role para baixo até a categoria AI Content Describer, escolha "gerenciar modelos (alt+m)", selecione "GPT4 Vision" como provedor, vá até o campo de chave de API e cole a chave que você acabou de gerar aqui.
No momento da redação deste artigo, a Open-AI emite créditos para novas contas de desenvolvedor que podem ser usados por três meses, após os quais são perdidos. Após este período, você terá que adquirir créditos. O uso típico nunca deve exceder US$ 5,00 por mês. Para referência, a versão original deste complemento foi desenvolvida por pouco menos de um dólar. Sempre é possível fazer login na sua conta OpenAI e clicar em “uso” para obter sua cota.
Primeiro, você precisará criar um projeto de espaço de trabalho do Google acessando o console da nuvem do Google. Certifique-se de estar conectado à sua conta do Google.
Crie um nome entre quatro e trinta caracteres, como "Gemini" ou "complemento NVDA"
Navegue até a página de chaves de API do Google AI Studio
Clique em "criar chave API"
Na caixa de diálogo de configurações do NVDA, role para baixo até a categoria AI Content Describer, escolha "gerenciar modelos (alt+m)", selecione "Google Gemini" como seu provedor, vá até o campo de chave de API e cole a chave que você acabou de gerar aqui.
Faça login no console Antrópico.
Clique no seu perfil -> Chaves API.
Clique em Criar chave.
Digite um nome para a chave, como "AIContentDescriber", clique em "Criar chave" e copie o valor que aparece. Isto é o que você irá colar no campo chave API na categoria Ai Content Describer da caixa de diálogo de configurações do NVDA -> gerenciar modelos -> Claude 3.
Se ainda não o fez, compre pelo menos US$ 5 em créditos na página de planos antrópicos.
Este provedor está atualmente com alguns bugs e sua milhagem pode muito. Na verdade, só deve ser tentado por usuários avançados com interesse em executar modelos locais auto-hospedados e com o hardware para fazê-lo.
Baixe lhama.cpp. No momento em que este artigo foi escrito, esta solicitação pull removeu recursos multimodais, portanto, você desejará usar a última versão com suporte para isso. Se você estiver executando um adaptador gráfico Nvidia com suporte CUDA, baixe estes binários pré-construídos: llama-b2356-bin-win-cublas-cu12.2.0-x64.zip e cudart-llama-bin-win-cu12.2.0-x64. zip As etapas para trabalhar com um adaptador gráfico diferente estão fora do escopo, mas podem ser encontradas no leia-me llama.cpp.
Extraia esses dois arquivos na mesma pasta.
Localize os formatos quantizados dos modelos que você gostaria de usar no Huggingface. Para LLaVA 1.6 Vicuna 7B: llava-v1.6-vicuna-7b.Q4_K_M.gguf e mmproj-model-f16.gguf
Coloque esses arquivos na pasta com o restante dos binários llama.cpp.
Em um prompt de comando, execute o binário do servidor llava.cpp, passando os arquivos .gguf para o modelo e o projetor multimodal (como segue):
server.exe -m llava-v1.6-vicuna-7b.Q4_K_M.gguf --mmproj mmproj-model-f16.gguf
Na caixa de diálogo de configurações do NVDA, role para baixo até a categoria AI Content Describer, escolha "gerenciar modelos (alt+m)", selecione "llama.cpp" como seu provedor, vá até o campo URL base e insira o endpoint mostrado em o console (o padrão é "http://localhost:8080").
Alternativamente, você pode omitir algumas dessas etapas e executar llama.cpp em um servidor remoto com especificações mais altas do que sua máquina local e, em seguida, inserir esse endpoint.
Quatro teclas de atalho estão vinculadas por padrão:
NVDA+shift+i: Abre um menu perguntando se deseja descrever o foco atual, o objeto navegador, a câmera física ou a tela inteira com IA.
NVDA+shift+u: Descreve o conteúdo do objeto navegador atual usando IA.
NVDA+shift+y: Descreva a imagem (ou caminho do arquivo para uma imagem) na área de transferência usando IA.
NVDA+shift+j: Descreve a posição do seu rosto no enquadramento da câmera selecionada. Se você tiver várias câmeras conectadas, navegue até o menu descritor de conteúdo AI (NVDA+shift+i) e escolha aquela que você gostaria de usar com o item "selecionar câmera" no submenu de detecção de rosto.
Três gestos são desvinculados:
Descreva o conteúdo do item atualmente em foco usando IA.
Faça uma captura de tela e descreva-a usando IA.
Tire uma foto usando a câmera selecionada e descreva-a usando IA.
Não hesite em personalizá-los a qualquer momento na caixa de diálogo de gestos de entrada.
Para criar o pacote complementar a partir do código-fonte, você precisará de:
uma distribuição Python (recomenda-se 3.7 ou posterior). Verifique o site Python para instaladores do Windows. Por favor note que atualmente, a preparação do código-fonte do NVDA e dos módulos de terceiros incluídos requer a versão de 32 bits do Python 3.7.
Scons - Site - versão 4.3.0 ou posterior. Você pode instalá-lo via PIP. pip install scons
Markdown 3.3.0 ou posterior. pip install markdown
Em seguida, abra o terminal de sua preferência:
git clone https://github.com/cartertemm/AI-content-describer.git cd AI-content-describer scons
Após a execução do comando scons
, um arquivo *.nvda-addon será colocado na raiz deste repositório pronto para teste e lançamento.
Se você adicionar strings adicionais que precisam ser traduzidas, é importante reconstruir o arquivo .pot da seguinte forma:
scons pot
Em uma máquina Windows:
baixar poedit. Este é o software que você usará para traduzir cada mensagem do inglês.
baixe o arquivo .pot com todas as strings aqui
Abra o arquivo que você acabou de baixar no programa poedit. Clique em “Criar nova tradução” na janela que aparece e selecione o idioma de destino.
Percorra e converta o conteúdo do texto de origem para o idioma de destino e cole-o no campo de tradução. Para obter ajuda extra, sinta-se à vontade para clicar com o botão direito no item da lista -> ocorrências de código e, em seguida, subir uma linha para ler o comentário que começa com "# Translators:". Esses comentários também são disponibilizados em um só lugar no arquivo .pot.
Quando terminar, clique em arquivo -> salvar ou pressione ctrl+s e escolha um local para o novo arquivo .mo e .po ser armazenado. Estes são os arquivos que devem ser enviados para mim por e-mail ou anexados em uma solicitação pull.
Traduza o conteúdo de readme.md (este arquivo). Anexe também!
Todos são muito apreciados e serão creditados. As seguintes pessoas trabalharam no addon.
Mazen: implementação de markdown, outras contribuições de código
Kostenkov-2021: tradução russa
Nidza07: tradução para o sérvio
Heorhii Halas: tradução para o ucraniano
Umut Korkmaz: tradução turca
Platinum_Hikari: tradução francesa
Lucas: tradução tcheca
Michaela: Tradução para Eslovaco
Enfrentando um problema? Envie-o para o rastreador de problemas
Tem uma sugestão para um novo recurso? Crie um ticket para isso também e poderemos conversar sobre como implementá-lo. Solicitações pull sem problemas associados serão revisadas, mas provavelmente levarão mais tempo para todos, especialmente se eu decidir que a nova correção ou funcionalidade precisa funcionar de maneira diferente do que foi proposto.
As traduções são recebidas de braços abertos. Quanto mais pessoas puderem acessar essa poderosa tecnologia, melhor!
Se você não tem Github ou prefere não usá-lo, pode me enviar um e-mail - cartertemm (arroba) gmail (ponto) com.
Obrigado pelo apoio!