# Vision RAG com Cohere Embed-4 🖼️

> Um poderoso sistema de Geração Aumentada por Recuperação (RAG) visual que utiliza o modelo Embed-4 da Cohere para incorporação multimodal e o eficiente modelo Gemini 2.5 Flash do Google para responder a perguntas sobre imagens e páginas de PDF.

- Fonte: https://doutorai.pt/apps/vision-rag
- Categoria: RAG e Conhecimento
- Dificuldade: Médio
- Modelos: Gemini
- Frameworks: -
- Corre local?: Precisa de APIs cloud
- Chaves necessárias: Nenhuma
- Licença: Apache-2.0
- Site: Doutor AI (https://doutorai.pt) - ferramentas de IA para pequenos negócios em português

## Tutorial completo

# Vision RAG com Cohere Embed-4 🖼️

Um poderoso sistema de Geração Aumentada por Recuperação (RAG) visual que utiliza o modelo de ponta Embed-4 da Cohere para incorporação multimodal e o eficiente modelo Gemini 2.5 Flash da Google para responder a perguntas sobre imagens e páginas de PDF.

## Funcionalidades

- **Pesquisa Multimodal**: Aproveita o Cohere Embed-4 para encontrar a imagem (ou imagem de página de PDF) mais semanticamente relevante para uma dada pergunta em texto.
- **Resposta a Perguntas Visuais**: Utiliza o Google Gemini 2.5 Flash para analisar o conteúdo da imagem/página recuperada e gerar respostas precisas e contextualizadas.
- **Fontes de Conteúdo Flexíveis**: 
    - Usa gráficos financeiros e infografias de amostra pré-carregados.
    - Carrega as tuas próprias imagens personalizadas (PNG, JPG, JPEG).
    - **Carrega documentos PDF**: Extrai automaticamente páginas como imagens para análise.
- **Sem OCR Necessário**: Processa diretamente imagens complexas e elementos visuais dentro de páginas de PDF sem precisar de etapas separadas de extração de texto.
- **Interface Interativa**: Construída com Streamlit para fácil interação, incluindo carregamento de conteúdo, entrada de perguntas e exibição de resultados.
- **Gestão de Sessões**: Lembra o conteúdo carregado/carregado (imagens e páginas de PDF processadas) dentro de uma sessão.

## Requisitos

- Python 3.8+
- Chave da API da Cohere
- Chave da API da Google Gemini

## Como Executar

Segue estes passos para configurar e executar a aplicação:

1.  **Clona e Navega para o Diretório**:

```bash
    git clone https://github.com/Shubhamsaboo/awesome-llm-apps.git
    cd awesome-llm-apps/rag_tutorials/vision_rag
    ```

```markdown
## 2.  **Instalar Dependências**:
```

```bash
    pip install -r requirements.txt
    ```

```markdown
*(Assegura-te de que tens a versão mais recente do `PyMuPDF` instalada, juntamente com outros requisitos)*

3.  **Configura as tuas chaves de API**:
    - Obtém uma chave de API da Cohere em: [https://dashboard.cohere.com/api-keys](https://dashboard.cohere.com/api-keys)
    - Obtém uma chave de API do Google em: [https://aistudio.google.com/app/apikey](https://aistudio.google.com/app/apikey)

4.  **Executa a aplicação Streamlit**:
```

```bash
    streamlit run vision_rag.py
    ```

```markdown
5.  **Aceder à Interface Web**:
    - O Streamlit fornecerá uma URL local (geralmente `http://localhost:8501`) no teu terminal.
    - Abre esta URL no teu navegador.

## Como Funciona

A aplicação segue um processo RAG em duas etapas:

1.  **Recuperação**: 
    - Quando carregas imagens de exemplo ou fazes upload das tuas próprias imagens/PDFs:
        - Imagens regulares são convertidas em strings base64.
        - **Os PDFs são processados página a página**: Cada página é renderizada como uma imagem, guardada temporariamente e convertida numa string base64.
    - O modelo `embed-v4.0` da Cohere (com `input_type="search_document"`) é utilizado para gerar um embedding de vetor denso para cada imagem ou imagem de página de PDF.
    - Quando colocas uma pergunta, a consulta de texto é incorporada utilizando o mesmo modelo `embed-v4.0` (com `input_type="search_query"`).
    - A similaridade cosseno é calculada entre o embedding da pergunta e todos os embeddings de imagem.
    - A imagem com a pontuação de similaridade mais alta (que pode ser uma imagem regular ou uma imagem de uma página específica de PDF) é recuperada como o contexto mais relevante.

2.  **Geração**:
    - A pergunta de texto original e a imagem/imagem de página recuperada são passadas como entrada para o modelo `gemini-2.5-flash-preview-04-17` da Google.
    - O Gemini analisa o conteúdo da imagem no contexto da pergunta e gera uma resposta textual.

## Utilização

1.  Introduz as tuas chaves de API da Cohere e da Google na barra lateral.
2.  Carrega conteúdo:
    - Clica em **"Carregar Imagens de Exemplo"** para descarregar e processar os exemplos integrados.
    - *OU/E* Usa a secção **"Fazer Upload das Tuas Imagens ou PDFs"** para fazer upload dos teus próprios ficheiros de imagem ou PDF.
3.  Uma vez que o conteúdo esteja carregado e processado (embeddings gerados), a secção **"Fazer uma Pergunta"** será ativada.
4.  Opcionalmente, expande **"Ver Imagens Carregadas"** para ver miniaturas de todas as imagens e páginas de PDF processadas atualmente na sessão.
5.  Escreve a tua pergunta sobre o conteúdo carregado no campo de entrada de texto.
6.  Clica em **"Executar Vision RAG"**.
7.  Vê os resultados:
    - A **Imagem/Página Recuperada** considerada mais relevante para a tua pergunta (a legenda indica a fonte do PDF e o número da página, se aplicável).
    - A **Resposta Gerada** pelo Gemini com base na imagem e na pergunta.

## Casos de Uso

- Analisar gráficos financeiros e extrair números ou tendências chave.
- Responder a perguntas específicas sobre diagramas, fluxogramas ou infográficos dentro de imagens ou PDFs.
- Extrair informação de tabelas ou texto dentro de capturas de ecrã ou páginas de PDF sem OCR explícito.
- Construir e consultar bases de conhecimento visuais (a partir de imagens e PDFs) utilizando linguagem natural.
- Compreender o conteúdo de vários documentos visuais complexos, incluindo relatórios de várias páginas.

## Nota

- O processamento de imagens e PDFs (renderização de páginas + embedding) pode demorar, especialmente para muitos itens ou ficheiros grandes. As imagens de exemplo são armazenadas em cache após o primeiro carregamento; o processamento de PDFs ocorre atualmente em cada upload dentro de uma sessão.
- Assegura-te de que as tuas chaves de API têm as permissões e quotas necessárias para os modelos da Cohere e do Gemini utilizados.
- A qualidade da resposta depende tanto da relevância da imagem recuperada quanto da capacidade do modelo Gemini de interpretar a imagem com base na pergunta.
```

## Poupe horas todas as semanas com IA, sem complicações

O **Doutor AI** dá-lhe 1859 prompts de IA prontos a copiar, por indústria e em português simples - mais uma biblioteca técnica completa para quem quer ir mais longe. [Ver planos →](https://doutorai.pt/precos)

---
Conteúdo de Doutor AI (https://doutorai.pt). Ao citar, indique a fonte: https://doutorai.pt/apps/vision-rag
