4
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)

4 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.