Como Consultar Arquivos, Documentos e PDFs com I.A. Usando RAG

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

Комментарии • 80

  • @rafadgkurt
    @rafadgkurt 4 месяца назад +21

    Muito bom. Um dos melhores canais do RUclips brasileiro sobre implementação de LLM, sem marketing furado e sensacionalismo apenas o conteúdo técnico e informativo.

  • @PEDROMARCOSLOCATELLI
    @PEDROMARCOSLOCATELLI 4 месяца назад +6

    Ótimo, Bob. Suas explicações são as mais claras e de fácil compreensão dentre os canais semelhantes no RUclips. Força!!!

  • @jonathanestefani6755
    @jonathanestefani6755 3 месяца назад +1

    Parabéns pelo conteúdo, muito bem demonstrado com exemplos práticos.

  • @VivianeFranco
    @VivianeFranco 4 месяца назад

    Eu sou apaixonada pelos seus vídeos. Vc é extremamente didático. Eu sou de Letras e consigo entender tudo o que você fala. Obrigada demais pelo seu conteúdo!

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Boaaaa Viviane!! Fico feliz em ler isso!! A IA está numa etapa de democratização e certeza vai fazer parte do dia a dia de todas as áreas!! E a linguagem é onde a IA moderna está mais conectada!! Valeuuuuu

  • @marcelocosta2612
    @marcelocosta2612 4 месяца назад +1

    Muito boa a aula, Bob! Ficou bem claro como funciona essa técnica do RAG... Valeu demais!

  • @HellitonSoaresMesquita
    @HellitonSoaresMesquita 4 месяца назад +1

    Rapaz conteúdo de alto nível.

  • @sem.mais.delongas
    @sem.mais.delongas 4 месяца назад

    Sensacional seu video... assim vou virar membro hein !... vou assistir mais alguns videos pra me convencer 100% de que tú realmente é o cara !!! 😃

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Aeeee MM! Obrigadão pela força!! Valeuuuuuuuuuuuuuuuuuuuuuuu

  • @ramon58453
    @ramon58453 4 месяца назад

    Valeu!

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +2

      Valeuuuuuuuuuu!! Eu que agradeço!!! Foi o primeiro superthanks da história do canal! Uhuuuuuuuuuuu!!

  • @brunobraga83
    @brunobraga83 4 месяца назад +1

    Estou testando dois projetos RAG um e o AnythingLLm e o Quivr, tive problemas cm o Anything trabalhando com documentos tecnicos e o Quivr possue muitos problemas com a implementaçao mas consegui fazer funcionar e estou testando, a minha ideia e transformar isso e um auxialiar tecnico em diversas areas como eletronica por exemplo.

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +1

      Faaaaala Bruno! O rag mais simples de usar de plataformas prontas que vc consegue inclusive configurar os chunks é o dify!! Testa ele e diz o que achou!! Valeuuuuuuuuu

    • @dutodiboa
      @dutodiboa 3 месяца назад

      Cara tenta fazer no open webui. Na minha opinião, o melhor que testei até agora usando o llama 3.1 8b e gemini 2b.

  • @acciolimoda3390
    @acciolimoda3390 4 месяца назад

    Que conteúdo foda. Obrigado!

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Faaaaala Accioli!! Eu que agradeço!! Valeuuuuuuuuuuuuuuuuuu

  • @julio.moreira
    @julio.moreira 4 месяца назад

    Sensacional 👏

  • @phdcosta
    @phdcosta 4 месяца назад +2

    E aí Bob? tudo certo? parabéns pelo canal. Tenho pesquisado sobre RAG, contudo achei os resultados decepcionantes quando trabalhamos com textos mais complexos como de filosofia, por exemplo. Parece tudo muito bom para perguntas/respostas ou coisas tipo um estudo dirigido (o que acho fraco semanticamente). Quando os conceitos estão dispersos em um texto longo a similaridade entre a pergunta e os textos com as respostas é muito distante. Você teria alguma dica de como abordarmos esses textos? Tenta aí com um livrão de psicologia prá ver o resultado. Abraço e continue com sua vibe bacana e didática simples e objetiva.

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +5

      Faaala Paulo! Pensa que todo texto que envolve uma semântica mais interpretativa vão ser mais difíceis! Sobretudo quando usam palavras fora do uso comum das que estão nos dados que o modelo foi treinado! Quando o conteúdo é mais complexo, vai ser necessário debruçar um pouco mais de esforço mesmo! Uma coisa que em geral se faz se chama rerank, quem é fazer a busca, ao invés de 4, escolher as 20 melhores, e pedir pra LLM reclassificar a ordem dessas 20 melhores! E tem estratégias de busca, você não precisa passar o texto todo para o RAG, pode criar resumos que apontam para um trecho e por aí vai! Mas por exemplo, pensadores muito famosos estilo Kant, que tem diversos dicionários inclusive para ler a obra dele, isso vai ser um trabalho mais àrduo eu vale mais fazer um fine tuning que RAG! Esses casos seriam difíceis até para uma pessoa comum, essa é a questão! rsrs Valeuuuuuuuu

  • @mardoniorodrigues11
    @mardoniorodrigues11 4 месяца назад

    Que conteúdo espetacular!!! Ganhou Mais um inscrito.
    Fiquei pensando em casos onde se têm documentos que contêm dados, como relatórios financeiros. Digamos que eu queira usar esse tipo de documento no RAG e depois fazer perguntas analíticas, como: 'Qual foi o lucro da minha empresa no mês X?' ou 'Quantos itens do produto X foram vendidos no mês Y?'. Imagino que, para esses casos, o exemplo do vídeo não funcione muito bem. Sendo assim, é possível criar uma solução que atenda a esse propósito usando RAG?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +2

      Se o documento tiver dados de lucro, quantidades de itens, ele responde sim!! Mas fica atento que se você pedir para ele "somar", "calcular", o modelo vai errar!! E nesse caso você precisa criar uma ferramenta específica de matemática para o seu agente usar!! Que aí ele manda os dados para a ferramenta, ela calcula e passa a informação!! E se os dados forem em imagens, é só enviar a imagem!! Valeuuuuuuuuuuu

  • @ElaraArale
    @ElaraArale 4 месяца назад +2

    Agora entendi, o porque as instruções do meu bot não gastam tokens, eles fazem parte de um banco de dados, tinham me dito isso, mas agora deu para entender melhor.

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Ele em geral vai gastar só o token to texto que enviou e da resposta, mas não vai processar o texto todo! Então reduz bem!! Uhuuuuuu!

  • @RafaelOliveira-st3ih
    @RafaelOliveira-st3ih 4 месяца назад +2

    Marcando presença

  • @fschincariol
    @fschincariol 4 месяца назад +1

    Fantástico Bob!!! Estão podemos criar varios banco de dados de determinados assuntos e usá-los quando quisermos e assim a resposta é mais rápida e o custo é menor?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +1

      Exato! Você gasta na hora que gera o banco e depois no futuro vai gastar só pra converter a pergunta e com a resposta!! O texto processa uma vez só! Valeuuuuu

  • @LVFPRODUCAO
    @LVFPRODUCAO 4 месяца назад

    excelente conteúdo, estou estudando muito LLMs, porém ainda não aplicando tanto.. Poderia me deixar uma sugestão de como aplicar RAG sem códigos (nocode) com efetividade/assertividade alta também? (N8N, DIFY..)

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +1

      Faala LVF!! O dify faz com certeza nativo!! N8N vc vai precisar montar o banco manualmente e depois conectar!! Veja pinecone e supabase!! Valeuuuuuuuuuuuu

  • @adrianaviana3276
    @adrianaviana3276 Месяц назад +1

    Estou criando um modelo RAG com o ollama, mas ele está trazendo respostas externas ao documento. Sabe como resolver isso?

    • @inteligenciamilgrau
      @inteligenciamilgrau  Месяц назад +1

      Oi Adriana, não esquece de dizer no prompt para ele usar somente o que você passar como contexto! Coloca o texto em uma área específica no system e diga para ele responder usando o texto daquela área!! Valeuuuuuuu

  • @asanchezz
    @asanchezz 2 месяца назад +1

    Amigo, tenho cerca de 1000 documentos PDF com instruções normativas da empresa, qual a melhor técnica "ensinar" uma LLM a responder sobre esses assuntos? RAG ou Fine tuning?

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 месяца назад

      Faaaala Anderson!! Neste caso específico vai precisar olhar com atenção os detalhes e as nuances dos documentos, o grau de criticidade de cada um deles, montar um projeto maior e ver qual a melhor direção!! Valeuuuuuuuuuuuuu

  • @AndreSilva-oy5kv
    @AndreSilva-oy5kv Месяц назад

    Curti muito o video. Fiquei em duvida, gostaria de passar um PDF que tem algumas informações cadastrais como nome,empresa,endereço e etc. Mas esses documentos tem padrões diversos,por isso acredito que usar IA seria uma boa. Eu passaria o documento e o output seria no formato json {"nome" "andre", "empresa": "Google"} e etc. Como o input são documentos diversos, acredito que o RAG seria uma boa,porem preciso do output em um formato especifico, nesse caso json.
    Pode me explicar se devo usar RAG ou fine tuning ou até mesmo ambos ?

    • @inteligenciamilgrau
      @inteligenciamilgrau  Месяц назад

      Faaaaala André, o ideal antes de enviar os PDFs direto para a LLM salvar, é fazer um pré-processamento! Principalmente quando os dados tem formatos diferentes!! Você pode ler os PDFs antes com um agente que vai padronizar a saída e só depois enviar os dados para o banco criar o RAG!! Valeuuuuuuuu

    • @AndreSilva-oy5kv
      @AndreSilva-oy5kv Месяц назад

      @@inteligenciamilgrau Infelizmente não consigo fazer um pre-processamento, são dados de processos judiciais, o motivo de usar IA é que não consigo desenhar uma logica que pegue esses dados de forma estruturada, já que existem diversos padrões de processos judiciais

  • @orafaelgf
    @orafaelgf 4 месяца назад +1

    otimo video. direto ao ponto. parabens.
    uma duvida:
    caso eu queira ler um arquivo pdf, basta eu alterar o 'path' pra buscar desse arquivo ou preciso fazer mais algum ajuste?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      PDF especificamente vai variar bastante porque tem vários padrões que surgiram ao longo do tempo!! Algumas vezes o pdf é feito de imagens (principalmente os mais antigos)! No geral vc precisa de uma lib que importa o pdf, extrai o texto, e aí vc manda o texto para ser processado!! Valeuuuuuu

  • @adrianokelviodarochadantas5303
    @adrianokelviodarochadantas5303 3 месяца назад

    PDF que tem imagnes .. o LLM faz OCR ?

    • @inteligenciamilgrau
      @inteligenciamilgrau  3 месяца назад

      Faaaala Adriano!! Dos testes que eu fiz com PDF com imagens, ele só pega o texto mesmo!! Mas eu diria para você sempre testar PDFs com imagens para conferir porque isso pode variar dependendo de como a pessoa faz a implementação!! Nos vídeos que eu fiz sobre o ENEM, eu fazia OCR enviando as imagens do PDF como imagem mesmo! Você consegue extrair as imagens do PDF dependendo de como ele foi feito!! valeuuuuuuuuu

  • @ramon58453
    @ramon58453 4 месяца назад

    Parabéns pelo video. Ótima didatica.
    Tentei replicar o exercicio, mas deu erro porque esta pedidno uma OPENAI_API_KEY no trecho OpenAIEmbeddings(), fique na dúvida porque no video não vi apontar essa chave. Abaixo segue o erro.
    Agradeço se puder me ajudar e comentar o custo aproximado para procesamento do exemplo com essa api.
    vectorstore = Chroma.from_documents(documents=all_splits, embedding=OpenAIEmbeddings())
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\langchain_chroma\vectorstores.py", line 921, in from_documents
    return cls.from_texts(
    ^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\langchain_chroma\vectorstores.py", line 876, in from_texts
    chroma_collection.add_texts(
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\langchain_chroma\vectorstores.py", line 389, in add_texts
    embeddings = self._embedding_function.embed_documents(texts)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\langchain_openai\embeddings\base.py", line 526, in embed_documents
    return self._get_len_safe_embeddings(texts, engine=engine)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\langchain_openai\embeddings\base.py", line 424, in _get_len_safe_embeddings
    response = self.client.create(
    ^^^^^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai
    esources\embeddings.py", line 114, in create
    return self._post(
    ^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai\_base_client.py", line 1266, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai\_base_client.py", line 942, in request
    return self._request(
    ^^^^^^^^^^^^^^
    File "C:\Users
    ala\AppData\Local\Programs\Python\Python312\Lib\site-packages\openai\_base_client.py", line 1046, in _request
    raise self._make_status_error_from_response(err.response) from None
    openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: your_api*****here. You can find your API key at platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Faaala Ramon!! A lib dotenv puxa automaticamente a chave do arquivo .env !! Coloquei um exemplo no código do git, veja se agora vai!!
      github.com/inteligenciamilgrau/videos_tutoriais/tree/main/rag

  • @diegocapelladev
    @diegocapelladev 4 месяца назад

    Tem algum modelo grátis que eu poderia utilizar com o Ollama e Open WebUI para voz sem que seja necessário “treinar” a voz? Exemplo, converter texto para áudio.

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад +1

      Se estiver usando python, pode usar o pyttsx3!! Ele vai usar as vozes instaladas no seu PC para gerar os audios!! Valeuuuuuuuu

    • @diegocapelladev
      @diegocapelladev 4 месяца назад

      @@inteligenciamilgrau Vou pesquisar sobre. Obrigado!!

  • @SpartacusCurioso
    @SpartacusCurioso 4 месяца назад

    Irmão, pra diminuir a quantidade de tokens eu pego o .pdf e transformo em .protobuf mantendo a semântica.

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Muito interessante sua dica!! Já chegou a fazer o teste usando a API de quanto gasta com e sem protobuff pra ter uma noção da economia?

  • @otimistarj
    @otimistarj 4 месяца назад

    muito bom, para ter os chunks todos no mesmo tamanho não use separador.
    text_splitter = CharacterTextSplitter(separator="", chunk_size=chunk_size,

  • @UNKNOW_NAME00097
    @UNKNOW_NAME00097 4 месяца назад

    É possível fazer isso para ler dados de planilhas e depois fazer com prompt buscar esses dados e mostrar? Joga alguma planilhas com números e pedir e depois converte em json?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      É possível sim!! Mas eu diria que se você já tem a planilha, usa algum programa pra ler os dados, já converte em variável e envia como texto normal! Vai dar certo também!! Dá inclusive para gerar gráficos e enviar o gráfico como imagem pra ia interpretar!! Valeuuuuuuuuuu

  • @nickvasc
    @nickvasc 4 месяца назад

    Curti!!

  • @DuCkOx
    @DuCkOx 4 месяца назад

    Como fica a questão de informações pessoais no documentos que a IA vai ler?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Faaaaala Lucas!! No caso cada empresa tem uma política de segurança de dados diferente! Tem que ler as documentações de cada empresa!! Em geral tem cenários que a empresa usa os dados para treino, outros cenários que não usa, mas retém os dados por um período de tempo! Para ter 100% de sigilo, só rodando na própria máquina com modelos opensource estilo Llama, Mistral e por aí vai!! Dá para usar via Ollama ou LmStudio que são os mais conhecidos!! Valeuuuuuuuuu

  • @roalves1234
    @roalves1234 2 месяца назад

    Olá professor, e se o contexto necessário ao chunk x por exemplo, estiver no bloco y? Isso o RAG consegue resolver?

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 месяца назад +1

      O Rag pode resolver com abordagens avançadas!! Já passei por isso algumas vezes, e aí a solução vai ser mais avançada mesmo, resolvendo item a item eventualmente!! Pensa no rag como uma consulta ao dicionário! Ela é mais bruta e busca mais identificar os trechos do que ser inteligente de fato!

    • @roalves1234
      @roalves1234 2 месяца назад

      @@inteligenciamilgrau Professor imagina que estou trabalhando com um artigo e a pergunta que eu farei depende do contexto dado pelo subtítulo - esse subtítulo aparecerá nos primeiros chunks mas não nos demais, afetando assim a resposta. O que posso fazer nesse caso?

  • @Urukpensador
    @Urukpensador Месяц назад

    Da pra rodar em um orange pi win a64 512Mb RAM

    • @inteligenciamilgrau
      @inteligenciamilgrau  Месяц назад

      Dá sim, desde que seja um modelo online! Se for rodar local não aguenta

  • @otimistarj
    @otimistarj 4 месяца назад

    é possivel fazer RAG simplesmente juntando dois PDFs de assuntos distintos num só arquivo ? da bons resultados ?

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Faaala Antônio!! Pode sim!! Pensa que é um banco de dados que você consulta, como se fosse uma planilha em que cada célula tem um embedding e um trecho de texto!! A planilha não limita se vc quiser misturar um ou mais documentos!! Você pode ter mais colunas inclusive de outros assuntos que complementam aquele texto como o nome do arquivo e tudo mais!! O único limite que ela impõe é que tenha uma coluna de "embedding" que ela vai usar para comparar com o texto da pergunta! Acho que esse exemplo ajuda a entender!! Valeuuuuuuuu

  • @rennoman4609
    @rennoman4609 4 месяца назад

    Eu queria saber qual a dificuldade que os modelos tem hoje de consultar e analisar uma simples planilha , pois já testei inúmeras interfaces gratuitas e até pagas ( tirando for 4o , sei q ele faz isso ) , mas maioria ou não faz ou da erro .
    Quer dizer , existe tecnologia para gerar um vídeo com prompt mas conversar com arquivos parece ser uma coisa q as i.as não curtem fazer
    Alguém pode me explicar ???
    Qual

    • @inteligenciamilgrau
      @inteligenciamilgrau  4 месяца назад

      Faaaaala Renno! Entendo sua dúvida, parece não fazer sentido, mas pensa que o problema maior está na importação que na LLM em si!! Pode não haver suporte à importação e nem todo arquivo importado terá a informação limpa e pronta para uso!! Os modelos gratuitos locais em geral não suportam importação!! Para rodar um modelo local com acesso à arquivos eu recomendo a Open WebUI que mostro nesse vídeo:
      ruclips.net/video/bmfR9YNksRo/видео.html

  • @AndreLuiz-wi5fz
    @AndreLuiz-wi5fz Месяц назад

    Preciso aprender isso kkk

  • @Douglasmoreiranunes
    @Douglasmoreiranunes 4 месяца назад

    Essa busca por similaridade em um banco de dados me faz pensar..... O que é pensar ?

  • @jorunessa
    @jorunessa 2 месяца назад

    Esse canal ensina a fazer Reggae!

  • @ElaraArale
    @ElaraArale 4 месяца назад

    Interessante então isso é RAG.