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

Поділитися
Вставка
  • Опубліковано 21 жов 2024
  • Aprenda Inteligência Artificial! Seja Membro do canal:
    / @inteligenciamilgrau
    Arquivos do vídeo: github.com/int...
    Precisa de uma Inteligência Artificial de Atendimento para Sua Empresa? A NeuralChat é parceira do canal: www.inteligenc...
    Site: www.inteligenciamilgrau.com
    Instagram: @inteligenciamilgrau
    facebook: / inteligenciamilgrau
    GitHub: github.com/int...

КОМЕНТАРІ • 73

  • @rafadgkurt
    @rafadgkurt 2 місяці тому +14

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

  • @PEDROMARCOSLOCATELLI
    @PEDROMARCOSLOCATELLI 2 місяці тому +4

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

  • @jonathanestefani6755
    @jonathanestefani6755 Місяць тому

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

  • @HellitonSoaresMesquita
    @HellitonSoaresMesquita 2 місяці тому +1

    Rapaz conteúdo de alto nível.

  • @VivianeFranco
    @VivianeFranco 2 місяці тому

    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  2 місяці тому

      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 2 місяці тому +1

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

  • @sem.mais.delongas
    @sem.mais.delongas 2 місяці тому

    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  2 місяці тому

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

  • @acciolimoda3390
    @acciolimoda3390 2 місяці тому

    Que conteúdo foda. Obrigado!

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 місяці тому

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

  • @julio.moreira
    @julio.moreira Місяць тому

    Sensacional 👏

  • @mardoniorodrigues11
    @mardoniorodrigues11 2 місяці тому

    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  2 місяці тому +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

  • @Sarmoung-Biblioteca
    @Sarmoung-Biblioteca 2 місяці тому

    Mil Grau video fantastico, super bem explicado, sugestao, faz um video sobre Croma, Pinecone etc.. sobre os bancos vetoriais !

  • @phdcosta
    @phdcosta 2 місяці тому +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  2 місяці тому +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

  • @fschincariol
    @fschincariol 2 місяці тому +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  2 місяці тому +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

  • @rafaelg8238
    @rafaelg8238 2 місяці тому +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  2 місяці тому

      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

  • @ElaraArale
    @ElaraArale 2 місяці тому +1

    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  2 місяці тому

      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!

  • @brunobraga83
    @brunobraga83 2 місяці тому +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  2 місяці тому +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 Місяць тому

      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.

  • @RafaelOliveira-st3ih
    @RafaelOliveira-st3ih 2 місяці тому +2

    Marcando presença

  • @LVFPRODUCAO
    @LVFPRODUCAO 2 місяці тому

    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  2 місяці тому +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

  • @ramon58453
    @ramon58453 2 місяці тому

    Valeu!

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 місяці тому +2

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

  • @nickvasc
    @nickvasc 2 місяці тому

    Curti!!

  • @otimistarj
    @otimistarj 2 місяці тому

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

  • @asanchezz
    @asanchezz 6 днів тому

    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  6 днів тому

      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

  • @ramon58453
    @ramon58453 2 місяці тому

    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  2 місяці тому

      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

  • @jorunessa
    @jorunessa 24 дні тому

    Esse canal ensina a fazer Reggae!

  • @SpartacusCurioso
    @SpartacusCurioso 2 місяці тому

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

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 місяці тому

      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?

  • @DuCkOx
    @DuCkOx 2 місяці тому

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

    • @inteligenciamilgrau
      @inteligenciamilgrau  2 місяці тому

      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

  • @diegocapelladev
    @diegocapelladev 2 місяці тому

    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  2 місяці тому +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 2 місяці тому

      @@inteligenciamilgrau Vou pesquisar sobre. Obrigado!!

  • @otimistarj
    @otimistarj Місяць тому

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

    • @inteligenciamilgrau
      @inteligenciamilgrau  Місяць тому

      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

  • @Douglasmoreiranunes
    @Douglasmoreiranunes 2 місяці тому

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

  • @roalves1234
    @roalves1234 7 днів тому

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

    • @inteligenciamilgrau
      @inteligenciamilgrau  6 днів тому +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 6 днів тому

      @@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?

  • @UNKNOW_NAME00097
    @UNKNOW_NAME00097 2 місяці тому

    É 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  2 місяці тому

      É 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

  • @rennoman4609
    @rennoman4609 2 місяці тому

    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  2 місяці тому

      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:
      ua-cam.com/video/bmfR9YNksRo/v-deo.html

  • @adrianokelviodarochadantas5303
    @adrianokelviodarochadantas5303 Місяць тому

    PDF que tem imagnes .. o LLM faz OCR ?

    • @inteligenciamilgrau
      @inteligenciamilgrau  Місяць тому

      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

  • @ElaraArale
    @ElaraArale 2 місяці тому

    Interessante então isso é RAG.