{
  "name": "DSAProjeto8",
  "nodes": [
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ckP-ZgAMs2l2sFUpLAXx-gWNOQrHXoAs48Vo271X3rs",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ckP-ZgAMs2l2sFUpLAXx-gWNOQrHXoAs48Vo271X3rs/edit?usp=drivesdk",
          "cachedResultName": "dsa_lista_arquivos"
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1476836405,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ckP-ZgAMs2l2sFUpLAXx-gWNOQrHXoAs48Vo271X3rs/edit#gid=1476836405",
          "cachedResultName": "GOOG"
        },
        "options": {}
      },
      "id": "fbf17c10-f3c5-4ad7-9d6e-dd87f8fccd8e",
      "name": "Lista de Arquivos Para Carregar no RAG",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        416
      ],
      "typeVersion": 4.5,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Este n\u00f3 acessa uma planilha no Google Sheets contendo os caminhos dos arquivos pdf com demonstrativos financeiros de empresas. Os arquivos estar\u00e3o no Google Drive e na planilha vai apenas o caminho completo (url) de cada arquivo. Ou seja, a planilha funcionar\u00e1 como um \u00edndice."
    },
    {
      "parameters": {
        "content": "## Etapas de Configura\u00e7\u00e3o\n\n\n### 1. Chave da API do Google AI:\n\n* Obtenha uma chave da API do Google AI no Google AI Studio.\n\n### 2. Conta e chave da API do Pinecone:\n\n* Crie uma conta gratuita no site do Pinecone.\n* Obtenha sua chave da API no painel do Pinecone.\n* Crie um \u00edndice chamado dsa-relatorios no seu projeto do Pinecone.\n\n### 3. Google Drive - baixar e salvar documentos financeiros:\n\n* Acesse a empresa que deseja analisar e baixe os PDFs dos seus resultados trimestrais.\n* Salve os PDFs no Google Drive.\n* Crie uma Planilha no Google Sheets que armazene uma lista de URLs de arquivos apontando para os PDFs que voc\u00ea baixou e salvou no Google Drive.\n\n### 4- Configure as credenciais no seu ambiente n8n para:\n\n* Google Sheets OAuth2\n* Google Drive OAuth2\n* Google Docs OAuth2\n* API da OpenAI\n* API Google Gemini (PaLM) (usando sua chave da API Google AI)\n* API Pinecone (usando sua chave da API Pinecone)\n\n### 5- Execute o fluxo de trabalho:\n\n* Execute o workflow aqui no n8n. O relat\u00f3rio ser\u00e1 gerado no Google Docs. Ajuste o prompt do Agente de IA conforme desejar.\n\n\nExemplo de fonte de dados:\n\nhttps://abc.xyz/investor",
        "height": 1572,
        "width": 500,
        "color": 3
      },
      "id": "e38dea69-3a05-4c19-a58d-1f8b164bb2cf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -624,
        336
      ],
      "typeVersion": 1
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "5edea605-b04e-435a-9479-e250fa2784c1",
      "name": "Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        288,
        416
      ],
      "typeVersion": 3,
      "notes": "DSA Log - Loop pelos elementos listados na planilha (nomes de arquivos)."
    },
    {
      "parameters": {
        "operation": "download",
        "fileId": {
          "__rl": true,
          "value": "={{ $('Lista de Arquivos Para Carregar no RAG').item.json['File URL'] }}",
          "mode": "url"
        },
        "options": {
          "fileName": "={{ $('Lista de Arquivos Para Carregar no RAG').item.json['10Q'] }}"
        }
      },
      "id": "9e8a436b-fcac-4726-8568-1571cdbcd0ad",
      "name": "Download de Arquivos do Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        560,
        416
      ],
      "typeVersion": 3,
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Este n\u00f3 vai realizar o download dos arquivos que est\u00e3o no Google Drive e que ser\u00e3o usados no RAG como fonte para gera\u00e7\u00e3o de relat\u00f3rio com o Agente de IA."
    },
    {
      "parameters": {
        "mode": "insert",
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "dsa-relatorios",
          "cachedResultName": "dsa-relatorios"
        },
        "options": {}
      },
      "id": "c7a3663c-4ff7-402a-aae2-66a268f669c6",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        816,
        416
      ],
      "typeVersion": 1,
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Este n\u00f3 vai construir um banco vetorial para armazenar os vetores dos dados de texto dos documentos em pdf."
    },
    {
      "parameters": {},
      "id": "7960fb45-101d-41dd-b54f-f612e4aa6caf",
      "name": "Embeddings Google Gemini",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        720,
        624
      ],
      "typeVersion": 1,
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Este n\u00f3 \u00e9 do modelo de embeddings, usado para converter texto em representa\u00e7\u00e3o num\u00e9rica."
    },
    {
      "parameters": {
        "dataType": "binary",
        "loader": "pdfLoader",
        "options": {}
      },
      "id": "d629c5e4-032e-4f2e-8812-df4d994513bc",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        896,
        624
      ],
      "typeVersion": 1,
      "notes": "DSA Log - N\u00f3 para carregar os documentos em pdf."
    },
    {
      "parameters": {
        "chunkOverlap": 50,
        "options": {}
      },
      "id": "1d174a5c-d9a8-47fe-bccf-11ae346a6327",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        976,
        832
      ],
      "typeVersion": 1,
      "notes": "DSA Log - N\u00f3 para a opera\u00e7\u00e3o de chunking (divis\u00e3o de dados de texto em blocos, ou chunks)."
    },
    {
      "parameters": {
        "content": "## Fluxo 1 - M\u00f3dulo de RAG",
        "height": 672,
        "width": 1360,
        "color": 6
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        320
      ],
      "typeVersion": 1,
      "id": "5b23dbae-831e-4240-9be3-de7af55dccde",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "options": {}
      },
      "id": "43f4e561-4ef4-4bbb-aaff-5dede33eb025",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        1328
      ],
      "typeVersion": 1.1,
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Node para o LLM da OpenAI. Este \u00e9 o LLM que vai gerar o relat\u00f3rio."
    },
    {
      "parameters": {
        "name": "dsa_vector_store_tool",
        "description": "Obtenha informa\u00e7\u00f5es sobre os resultados financeiros do Google nos \u00faltimos 3 trimestres."
      },
      "id": "34d035e4-b57e-4510-aeb0-1d2e28a6db38",
      "name": "Vector Store Tool",
      "type": "@n8n/n8n-nodes-langchain.toolVectorStore",
      "position": [
        560,
        1344
      ],
      "typeVersion": 1,
      "notes": "DSA Log - Ferramenta para consultar o RAG."
    },
    {
      "parameters": {
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "dsa-relatorios",
          "cachedResultName": "dsa-relatorios"
        },
        "options": {}
      },
      "id": "1cc0783e-be89-40df-8c15-fbefecd61589",
      "name": "Pinecone Vector Store (Retrieval)",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        432,
        1552
      ],
      "typeVersion": 1,
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Retriever do RAG."
    },
    {
      "parameters": {},
      "id": "8572c2bf-698a-440d-82fd-7e114559cd24",
      "name": "Embeddings Google Gemini (retrieval)",
      "type": "@n8n/n8n-nodes-langchain.embeddingsGoogleGemini",
      "position": [
        560,
        1728
      ],
      "typeVersion": 1,
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Modelo de embeddings usado pelo retriever."
    },
    {
      "parameters": {
        "content": "## Fluxo 2 - M\u00f3dulo do Agente de IA",
        "height": 864,
        "width": 1360,
        "color": 2
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        1040
      ],
      "typeVersion": 1,
      "id": "fd359b88-c670-47ad-be0d-d098fff9cf5e",
      "name": "Sticky Note2"
    },
    {
      "parameters": {
        "content": "## IA e Fluxos Cognitivos Para Automa\u00e7\u00e3o de Processos de Neg\u00f3cios (BPA) com n8n\n\n### DSA - Projeto 8\n\n**Fluxo de Automa\u00e7\u00e3o com Agentes de IA e RAG Para Gera\u00e7\u00e3o de Relat\u00f3rios**\n\nwww.datascienceacademy.com.br",
        "height": 192,
        "width": 944,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "typeVersion": 1,
      "id": "816eb986-b255-45bd-a723-d405c511ca2f",
      "name": "Sticky Note5"
    },
    {
      "parameters": {},
      "id": "dbfad583-83ff-4b73-ac81-662d5981abd1",
      "name": "In\u00edcio do Fluxo 2",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        128,
        1120
      ],
      "typeVersion": 1,
      "notes": "DSA Log - Node de in\u00edcio do Fluxo 2."
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "Elabore um relat\u00f3rio sobre os resultados financeiros do Google nos \u00faltimos tr\u00eas trimestres. Formate-o em Markdown. Concentre-se nas diferen\u00e7as e tend\u00eancias. Identifique quaisquer valores discrepantes.",
        "options": {
          "systemMessage": "Voc\u00ea \u00e9 um analista financeiro altamente qualificado, especializado em analisar o desempenho financeiro do Google (Alphabet Inc.). Voc\u00ea tem acesso a duas ferramentas poderosas:\n\n1. **Ferramenta Vector Store:** Esta ferramenta permite recuperar informa\u00e7\u00f5es relevantes dos relat\u00f3rios de resultados do Google dos \u00faltimos tr\u00eas trimestres (documentos PDF). Os documentos foram processados e armazenados como embeddings em um banco de dados vetorial, possibilitando a busca sem\u00e2ntica. Use esta ferramenta para encontrar informa\u00e7\u00f5es espec\u00edficas relacionadas a receita, despesas, lucros, preju\u00edzos, crescimento, m\u00e9tricas-chave, coment\u00e1rios da administra\u00e7\u00e3o e quaisquer outros dados financeiros relevantes.\n\n2. **Ferramenta Google Docs:** Esta ferramenta permite criar, editar e formatar documentos do Google Docs. Use-a para salvar suas descobertas em um documento do Google Docs. Sua tarefa \u00e9 gerar relat\u00f3rio resumido sobre o desempenho financeiro do Google com base nos relat\u00f3rios de resultados dos \u00faltimos tr\u00eas trimestres. \n\n3. **Recupere informa\u00e7\u00f5es relevantes:** Use a ferramenta Vector Store para pesquisar e recuperar as passagens de texto mais relevantes dos relat\u00f3rios de resultados. Recupere v\u00e1rios trechos diversos para garantir uma cobertura abrangente.\n\n4. **Sintetize e analise:** Analise as informa\u00e7\u00f5es dos trechos de texto recuperados. Identifique as principais tend\u00eancias, padr\u00f5es e insights relacionados \u00e0 consulta do usu\u00e1rio.\n\n5. **Gere o relat\u00f3rio no Google Docs:** Use a ferramenta Google Docs para criar um novo documento do Google (ou anexar a um existente, se especificado pelo usu\u00e1rio). Estruture o relat\u00f3rio com t\u00edtulos claros, marcadores e par\u00e1grafos concisos. Inclua o seguinte em seu relat\u00f3rio, conforme apropriado:\n\n* **Resumo Executivo:** Uma breve vis\u00e3o geral das principais conclus\u00f5es.\n\n* **An\u00e1lise de Receita:** Relat\u00f3rio sobre os valores de receita, taxas de crescimento e principais fatores de receita.\n* **An\u00e1lise de Despesas:** Relate as principais categorias de despesas e seu impacto na lucratividade.\n* **An\u00e1lise de Lucratividade:** Discuta o lucro l\u00edquido, as margens de lucro e o lucro por a\u00e7\u00e3o (LPA).\n\n* **M\u00e9tricas Principais:** Inclua outras m\u00e9tricas financeiras relevantes mencionadas nos relat\u00f3rios (por exemplo, lucro operacional, fluxo de caixa, desempenho do segmento).\n\n* **Coment\u00e1rios da Administra\u00e7\u00e3o:** Resuma quaisquer insights ou explica\u00e7\u00f5es relevantes fornecidos pela administra\u00e7\u00e3o do Google nas teleconfer\u00eancias ou relat\u00f3rios de resultados.\n\n* **An\u00e1lise de Tend\u00eancias:** Compare o desempenho do trimestre atual com os dois trimestres anteriores, destacando mudan\u00e7as ou tend\u00eancias significativas.\n\n* **Visualiza\u00e7\u00f5es:** Se poss\u00edvel, use a ferramenta Google Docs para inserir gr\u00e1ficos ou tabelas b\u00e1sicos para representar visualmente os dados. (Voc\u00ea pode precisar orientar o usu\u00e1rio sobre como fazer isso se a ferramenta tiver limita\u00e7\u00f5es.)\n\n6. **Cite as Fontes:** Indique claramente a fonte de suas informa\u00e7\u00f5es (por exemplo, \"Relat\u00f3rio de Resultados do 2\u00ba Trimestre de 2023\") para cada ponto de dados ou an\u00e1lise.\n\n7. **Mantenha um tom profissional:** Escreva em um tom claro, conciso e objetivo, como esperado de um analista financeiro. Evite especula\u00e7\u00f5es ou afirma\u00e7\u00f5es sem fundamento.\n\nSeu objetivo final \u00e9 fornecer ao usu\u00e1rio um relat\u00f3rio financeiro bem estruturado, informativo e preciso, baseado nos dados dispon\u00edveis nos \u00faltimos tr\u00eas trimestres dos relat\u00f3rios de resultados do Google.\n\nSalve o relat\u00f3rio como um documento do Google usando a ferramenta dispon\u00edvel! Gere o relat\u00f3rio em portugu\u00eas do Brasil."
        }
      },
      "id": "fc17dfab-5290-4df9-b3b3-037a553714c1",
      "name": "Agente de IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        432,
        1120
      ],
      "typeVersion": 1.7,
      "notes": "DSA Log - N\u00f3 do Agente de IA"
    },
    {
      "parameters": {
        "operation": "update",
        "documentURL": "3bKUl-mnCaI4__tULmBZSvWlOQhTHdD-RUPesP7_sGB7",
        "actionsUi": {
          "actionFields": [
            {
              "action": "insert",
              "text": "={{ $json.output }}"
            }
          ]
        }
      },
      "id": "2e093d07-b56f-483d-a743-3ff3bb36af10",
      "name": "Salva o Relat\u00f3rio no Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        848,
        1120
      ],
      "typeVersion": 2,
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - N\u00f3 para salvar o relat\u00f3rio no Google Docs"
    },
    {
      "parameters": {
        "modelName": "models/gemini-2.0-flash-exp",
        "options": {}
      },
      "id": "9feddd46-22d5-4f02-a71c-2ead563a01db",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        784,
        1536
      ],
      "typeVersion": 1,
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "notes": "DSA Log - Este LLM ser\u00e1 usado para formatar a resposta do RAG."
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1168,
        416
      ],
      "id": "b03bcbbd-167c-44c3-9dc9-5cc6989e09cd",
      "name": "Fim1",
      "notes": "DSA Log - Fim do fluxo 1."
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "position": [
        1104,
        1120
      ],
      "id": "c55258ba-da3f-4e30-b648-99d38da777c8",
      "name": "Fim2",
      "notes": "DSA Log - Fim do fluxo 2."
    }
  ],
  "connections": {
    "Lista de Arquivos Para Carregar no RAG": {
      "main": [
        [
          {
            "node": "Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop": {
      "main": [
        [],
        [
          {
            "node": "Download de Arquivos do Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download de Arquivos do Google Drive": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Agente de IA",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Vector Store Tool": {
      "ai_tool": [
        [
          {
            "node": "Agente de IA",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store (Retrieval)": {
      "ai_vectorStore": [
        [
          {
            "node": "Vector Store Tool",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Google Gemini (retrieval)": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store (Retrieval)",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "In\u00edcio do Fluxo 2": {
      "main": [
        [
          {
            "node": "Agente de IA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Agente de IA": {
      "main": [
        [
          {
            "node": "Salva o Relat\u00f3rio no Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Vector Store Tool",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Salva o Relat\u00f3rio no Google Docs": {
      "main": [
        [
          {
            "node": "Fim2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store": {
      "main": [
        [
          {
            "node": "Fim1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "178c2491-e61d-4ee9-96f3-867169d6385d",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "id": "2KKRmFrQqg36cMaL",
  "tags": []
}