Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Langflow - Erro na execução do componente ChromaDB

Aula 4 - Criando Fluxos RAG com Langflow - Tópico 05 - Carregando e preparando dados. Criei todos os componentes e ao processar (Run component) o Chroma DB recebi erro:

Error Building Componente Erro building Componente Chroma DB: Expecting value: line 1 column 1 (char 0)

Fiz varias tentativas:

  • recriei o componente
  • recriei o fluxo inteiro
  • conferi detalhadamente todos os passos (token) porém todas sem sucesso!

LOG:

Error building Component Chroma DB: Expecting value: line 1 column 1 (char 0)

Traceback (most recent call last): File "/app/.venv/lib/python3.12/site-packages/requests/models.py", line 974, in json return complexjson.loads(self.text, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/init.py", line 346, in loads return _default_decoder.decode(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/app/.venv/lib/python3.12/site-packages/langflow/graph/vertex/base.py", line 757, in _build_results result = await initialize.loading.get_instance_results( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/interface/initialize/loading.py", line 68, in get_instance_results return await build_component(params=custom_params, custom_component=custom_component) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/interface/initialize/loading.py", line 145, in build_component build_results, artifacts = await custom_component.build_results() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/custom/custom_component/component.py", line 892, in build_results return await self._build_with_tracing() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/custom/custom_component/component.py", line 874, in _build_with_tracing results, artifacts = await self._build_results() ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/custom/custom_component/component.py", line 919, in _build_results result = await self._get_output_result(output) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/custom/custom_component/component.py", line 955, in _get_output_result result = await method() if inspect.iscoroutinefunction(method) else await asyncio.to_thread(method) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/asyncio/threads.py", line 25, in to_thread return await loop.run_in_executor(None, func_call) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/base/vectorstores/model.py", line 140, in search_documents vector_store = self.build_vector_store() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langflow/base/vectorstores/model.py", line 32, in check_cached result = f(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 167, in build_vector_store File "", line 197, in _add_documents_to_vector_store File "/app/.venv/lib/python3.12/site-packages/langchain_core/vectorstores/base.py", line 286, in add_documents return self.add_texts(texts, metadatas, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langchain_chroma/vectorstores.py", line 508, in add_texts embeddings = self._embedding_function.embed_documents(texts) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/langchain_community/embeddings/huggingface.py", line 453, in embed_documents return response.json() ^^^^^^^^^^^^^^^ File "/app/.venv/lib/python3.12/site-packages/requests/models.py", line 978, in json raise RequestsJSONDecodeError(e.msg, e.doc, e.pos) requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

8 respostas

Esse erro acontece porque o ChromaDB não conseguiu interpretar a resposta corretamente. O problema pode estar em três áreas principais: o ChromaDB pode não estar rodando, a API que gera embeddings pode estar com falha ou os dados que você enviou podem estar em um formato incorreto.

Primeiro, ve se o ChromaDB está ativo. Se estiver rodando via Docker, abra o terminal e use o comando docker ps para ver se o contêiner está funcionando. Se não estiver, inicie-o com docker run -p 8000:8000 chromadb/chroma.

Se o ChromaDB estiver funcionando, o problema pode estar na API de embeddings. Se você estiver usando Hugging Face, teste manualmente para ver se ele está gerando os embeddings corretamente. Execute este código Python e veja se ele retorna um resultado válido:

from langchain.embeddings import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2")
result = embeddings.embed_documents(["teste de embedding"])
print(result)

Se o código falhar, o problema pode ser o modelo de embeddings ou a API que você configurou.

Outra possibilidade é que os dados que você enviou para o ChromaDB estejam vazios ou com um formato inválido. Tente adicionar prints no seu fluxo do Langflow para ver quais dados estão sendo enviados para o ChromaDB. Se o Langflow estiver tentando processar um valor None ou um JSON vazio, isso pode causar esse erro.

Caso tenha seguido esses passos e o erro ainda aconteça, me diga mais detalhes sobre como seu fluxo está configurado no Langflow.

Olá, primeiramente agradeço por responder. Eu estou fazendo EXATAMENTE o que a Valquíria mostra no curso. Segui rigorosamente todos os passos (inclusive já revisei 2 vezes). Os componentes funcionam (rodam no Langflow) com única exceção do Chroma DB. Os dados são os fornecidos no curso (serenatto_cafes_especiais.pdf).

Fluxo do Langflow

Quanto a "Tente adicionar prints no seu fluxo do Langflow para ver quais dados estão sendo enviados para o ChromaDB." eu até olhei o código do HuggingFace Embeding e do Choma mas, sinceramente não sei aonde colocar o print. (tentei mas não apareceu nada rs). Vou anexar o código de cada componente (talvez ajude a achar o problema).

Tentei anexar os arquivos com o código de cada componente mas aparentemente o site "não funciona" (a instrução é que basta arrastar o arquivo para a resposta mas não funcionou).

Sigo com o mesmo erro. Tentei fazer com o FAISS, mas ele também apresentou o mesmo problema. Algum instrutor poderia verificar se perdemos algumas etapa de implementação? Também segui a risca o que foi mostrado na aula, porém não obtive sucesso. Fico no aguardo.

Também sigo com o mesmo erro.

solução!

Oi pessoal, tudo bem?

Estou investigando a causa exata desse erro, que pode estar relacionada ao serviço de embeddings que está sendo usado, especialmente quando há instabilidades na resposta da API ou problemas temporários de rede.

Como solução alternativa (e que tem funcionado bem), recomendo trocar o componente de embedding. Na aula tem uma atividade com duas opções gratuitas (da NVIDIA e do Google):

Atividade com alternativas de embedding

Isso vai permitir que vocês continuem normalmente com o fluxo no Langflow. E se mesmo trocando o embedding o erro persistir, me avisem aqui, tá?

Espero que dê tudo certo no projeto de vocês!

Val

Olá pessoal, tudo bem? Segui a orientação da Valquíria e troquei o componente de embbeding. Primeiro tentei obter a chave da api da NVIDIA porém sem sucesso! Fiz todo o processo, informei o número do celular mas não enviaram o SMS com o código de verificação (tentei várias vezes sem sucesso! o SMS não chegou). Fui então para a segunda alternativa e então obtive a chave da Google e utilizei o componente sem problemas! Finalizei todo o projeto com sucesso! Abraços

Maravilha, Julio! Fico feliz em saber que deu tudo certo!

Parabéns pela conclusão do projeto :D