Entendo a frustração, sim, o ecossistema de versões de LangChain (e bibliotecas relacionadas, como LangSmith, ChromaDB, FAISS e pinecone-client) tem muitas incompatibilidades documentadas. Vou passar uma configuração sugerida que costuma funcionar bem num ambiente local para RAG (Retrieval-Augmented Generation) e alguns cuidados/boas práticas para minimizar dores.
Sugestão de versão compatível
Aqui está um conjunto de versões com boa chance de funcionar (para Python ≥ 3.10, idealmente 3.11) para atividades de curso de RAG:
langchain~=0.3.22
langsmith<0.4,>=0.1.0
langchain-community~=0.3.20
langchain-google-genai>=0.6.15,<1.0.0
faiss-cpu>=1.8.0.post1
chromadb==0.5.11
pinecone-client>=5,<6
langchain-pinecone>=0.1.3,<0.2
Note que essas versões correspondem mais ou menos às ranges que você citou e são próximas às que têm menos relato de conflito.
Cuidados e observações
- Verifique os pré-requisitos de cada biblioteca: por exemplo, o pacote
langchain-pinecone exige uma versão específica do pinecone-client. Há issue aberta referente a conflito entre versões maiores de pinecone-client e versões de langchain-pinecone. ([GitHub][1]) - A biblioteca
chromadb teve mudanças recentes que quebraram compatibilidade com langchain-chroma. ([GitHub][2]) - Use ambiente virtual limpo (por exemplo
venv ou conda) para evitar restos de versões antigas que geram conflito. - Quando instalar, prefira instalar tudo de uma vez via
pip install … ou via requirements.txt, em vez de ir instalando pacote por pacote, assim o gerenciador de dependências pode resolver conflitos de versão. - Se aparecer erro tipo “ResolutionImpossible” ou “Could not install because … dependency conflict”, volte à versão anterior de algum dos pacotes que foi alterado recentemente.
- Documente claramente no seu
requirements.txt ou pyproject.toml as versões “fixas” (não usar >= sem limite, se possível) para evitar que novas versões quebram o seu ambiente.