Respostas no Fórum
- AutorPosts
Olá Carlos!
Você está executando localmente ou no Colab? Se for em sua máquina, poderia me informar a sua versão do LangChain?
E peço também por gentiliza se puder postar aqui a mensagem de erro completa que aparece ao fazer a importação, para verificarmos melhor
Olá!
Pela descrição do erro parece ser algo local, então sugiro primeiro testar em uma guia anônima ou outro navegador para descartar problemas relacionados a extensões como AdBlock. Se apresentar o mesmo problema em outros navegadores então sugiro desabilitar temporariamente softwares que poderiam impedir o carregamento, conforme os exemplos citados.
Outra coisa que pode resolver nesses casos é trocar o DNS no seu computador, vi alguns relatos de que isso resolveu esse mesmo problema. Veja se não está o DNS do Google (8.8.8.8), se sim experimente trocar pelo do Cloudflare (1.1.1.1).
Se ainda assim não funcionar, pode ser um bloqueio na rede do seu trabalho, já que mencionou estar acessando de lá. Muitas empresas bloqueiam o acesso a sites de vídeos populares como Vimeo (que é onde estão hospedadas as aulas da plataforma) ou YouTube. Nesse caso, pode ser bom verificar com o suporte técnico ou testar a conexão em outra rede se for possível.
Que ótimo =)
Disponha!
Isso, por essas razões pode ocorrer falha em algumas execuções, onde a LLM “se perde”
Você pode tentar usar o LangGraph conforme comentei, ou ainda dar uma olhada em serviços como o Crew AI, que é uma opção que tem sido bastante usada para criação de agentes mais complexos. Portanto pode ser algo mais robusto e confiável para ser usada em produção, além de mais completo que o LangChain devido à sua melhor integração com modelos open source
Caso deseje focar em modelos open source, também sugiro dar uma olhada no Llama Index
Que ótimo que conseguiu descobrir
Esse problema deve ocorrer porque alguns PDFs possuem conteúdos mal formatados ou usam codificação que dificulta a extração adequada do texto, resultando em palavras juntas ou sem espaçamento. Talvez quando você abriu o PDF com o Word e salvou novamente, o Word automaticamente reformatou o texto e com isso corrigiu essas inconsistências.
Para evitar isso no futuro, você pode usar ferramentas como PyPDF2 ou pdfplumber para inspecionar e corrigir problemas nos arquivos antes de carregá-los com o PyPDFLoader. Ou ainda, converter em um arquivo de texto ou outro formato legível antes de enviar o conteúdo para o RAG.
Se quiser também pode testar outros loaders de PDF que o LangChain suporta, como PyMuPDFLoader ou PDFMinerLoader. Mais informações aqui: https://python.langchain.com/docs/integrations/document_loaders/
Para lidar com PDFs com formatos inconsistentes, o uso de serviços como o Unstructured (que o LangChain também suporta) pode ser uma ótima solução para extrair textos de maneira mais robusta. Para mais informações sobre ele veja https://python.langchain.com/docs/integrations/document_loaders/unstructured_file/ – aliás também deixamos comentários sobre no final do Colab do projeto 03 (aqui)
Olá Tatiane!
Você pode usar o programa labelImg, que permite fazer as anotações de modo bastante prático. Na aula “Criação do seu dataset de imagens manualmente” tem uma explicação detalhada mostrando como pode usar.
Caso use o modelo YOLOv8 ou versão superior eu recomendo usar a plataforma roboflow, que oferece uma ferramenta gratuita para anotação e costuma ser mais prático pois gera em uma interface unificada os arquivos de anotação no formato para essa versão do YOLO – veja aqui a explicação de como usar https://roboflow.com/how-to-label/yolov8
Olá Leonardo!
Se entendi corretamente, inicialmente não estava funcionando, mas depois você executou o mesmo código com a mesma pergunta e funcionou. Isso pode estar relacionado à própria biblioteca e não a um erro na programação. Fiz algumas pesquisas e há diversos relatos da comunidade sobre inconsistências no LangChain, especialmente quando ele entra em loops infinitos, mesmo com tudo configurado corretamente.
Embora o LangChain seja excelente para lidar com várias funções de LLMs, ele apresenta algumas limitações para a implementação nativa de agentes, deixando a desejar em certos quesitos. Por isso, para tentar resolver eu recomendo antes experimentar mudar o prompt do sistema para ficar de acordo com o seu objetivo específico, dá para testar desse modo antes e ver se apresenta melhoras.
Parece que recentemente os autores da biblioteca passaram a mudar um pouco o foco, fazendo com que o melhor modo de implementar agentes no ecossistema LangChain seja através do LangGraph, que é uma extensão da biblioteca justamente voltada para a criação de agentes personalizáveis.
Para adaptar é necessário algumas modificações, esse artigo aqui explica bem e detalha exatamente essas mudanças: https://python.langchain.com/docs/how_to/migrate_agent/
Opa, parece ser algo que afeta a pré-visualização somente, mas para garantir você consegue me passar a versão do LangChain e a versão do Streamlit que tem instalado em sua máquina local? Para eu tentar reproduzir o problema daqui, já que em meus ambientes está funcionando conforme esperado
Olá Fernando,
Primeiramente, agradeço o feedback positivo! Vamos às suas dúvidas:
Em relação às respostas incorretas da IA, pela sua descrição parece que o modelo está usando somente conhecimento prévio ou não está encontrando os dados no banco vetorial corretamente. Você comentou que o texto apareceu juntas sem espaçamento, isso mostrou quando clica em cima do botão (popover) para ver a fonte? Se puder mandar um print de onde aparece, pode até ser que seja um bug do streamlit e que nessa caixinha está exibindo o texto sem os espaços ao final de cada bloco. O problema de palavras sem espaçamento poderia estar prejudicando sim a indexação e a recuperação, mas se foi utilizado exatamente o código da aula então não deveria ocorrer pois a função exata já faz esse processamento correto do texto antes de enviar à rede neural (mas só para testar, poderia usar também outro método que faz o pré-processamento do texto). Recomendo fazer novamente o envio dos documentos e testar diferentes parâmetros para o ‘k’ e ‘fetch_k’, dentro de vectorstore.as_retriever().
Quanto a melhorar o tempo de resposta inicial, você está correto. O carregamento e a indexação podem ser feitos separadamente, em um aplicativo à parte. Isso permite iniciar o chat acessando diretamente o vectorstore já pronto, reduzindo significativamente o tempo de resposta inicial. E caso o arquivo seja enviado apenas uma vez e não mude então pode salvar em disco, assim não precisa executar a indexação toda vez que inicia o app. Para mais velocidade no tempo de indexação/recuperação, sugiro dar uma olhada no Pinecone, que pode ser facilmente integrado com o LangChain, basicamente precisa apenas mudar os métodos para integração e assim pode reaproveitar todo o restante do código (veja mais).
E em relação às limitações de tamanho do arquivo, é possível sim carregar arquivos grandes porém o processamento e a indexação podem levar mais tempo e consumir mais memória, portanto precisa verificar se o hardware é adequado ou se vale mais a pena usar soluções que rodam em cloud como o Pinecone. Para PDFs extensos, como livros, recomenda-se dividi-los em chunks menores para facilitar o processamento e melhorar a recuperação de informações durante as consultas. A abordagem correta é experimentar diferentes parâmetros para o método do retriever, o que tenderá a funcionar melhor para documentos bem maiores.
- Esta resposta foi modificada 6 meses atrás por
Gabriel Alves.
Olá Flávio! Excelente, obrigado pela sua contribuição
Para não se preocupar com as funções de desenho também é possível usar como alternativa a implementação via CLI, o que pode ser um pouco mais prático
Olá Gabrielli, tudo bem?
Agradecemos a sugestão! Estamos planejando um próximo curso sobre LLMs, muito provavelmente abordaremos esses temas
Ah sim entendo, ainda mais considerando que hoje existem várias tecnologias novas e muito relevantes, é complicado arrumar tempo para aprender tudo
mas faz no seu tempo, que vai dar certo =)
bons estudos!
Olá José!
Sim, seria totalmente viável utilizar o reconhecimento facial via câmera do celular como um método de marcação de ponto no seu aplicativo. Para isso bastaria integrar seu software em Delphi com uma tecnologia de reconhecimento facial – como a mostrada nesse curso de visão computacional ou no curso de Reconhecimento facial aqui da plataforma.
Para o uso dessas técnicas teria que se conectar via API já que o processamento rodaria em um servidor, portanto precisaria de conexão constante com a internet. Desse modo costuma ser melhor porque o processamento é mais pesado e não dependerá do hardware do dispositivo, mas caso seja um único celular fixo e com excelente configuração então talvez rodar tudo localmente pelo celular seja melhor (ambas as alternativas possuem suas vantagens e desvantagens, então veja qual faz mais sentido).
O reconhecimento facial pode ser realizado 100% localmente no dispositivo usando o Google ML Kit ou alguma biblioteca de Face Net em mobile por exemplo, mas como precisa se conectar ao sistema em Delphi então ainda haveria a necessidade de ser enviado a um servidor remoto, onde seu sistema de controle de ponto em Delphi pode validar o registro e associá-lo ao banco de dados.
Portanto, quanto ao reconhecimento seria possível sim e você pode integrar com alguma dessas maneiras, a parte mais trabalhosa seria desenvolver o aplicativo em si na linguagem ou framework de sua preferência, contanto que funcione em Android e iOS e tenha biblioteca para se conectar com a câmera do celular de forma eficiente.
Opa, isso! Creio que o artigo vá ajudar bastante, mas qualquer dúvida pode postar aqui no fórum!
7 de dezembro de 2024 às 22:41 em resposta a: Mensurar o tamanho (largura e altura) em imagens 2D. #46818Disponha =)
- Esta resposta foi modificada 6 meses atrás por
- AutorPosts