Trouble linking ContextualCompressionRetriever to already working RAG pipeline with Context Aware Retriever. AttributeError: 'str' object has no attribute 'get' #29528
Unanswered
ignaceHelsen
asked this question in
Q&A
Replies: 1 comment 3 replies
-
@DosuBot |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Checked other resources
Commit to Help
Example Code
Description
Greetings,
I have setup a conversational RAG that uses a context aware retriever, together with few-shot prompting and chat history. I am now trying to incorporate a Reranker into the already working chain but I'm failing to set it up correctly. I'm experiencing troubles setting up the link between the context aware retriever and the new reranker retriever.
Setting up the chain is successfull but when running invoke on the chain, I'm getting following traceback.
Thank you for any help!
Traceback (most recent call last):
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/queueing.py", line 625, in process_events
response = await route_utils.call_process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/route_utils.py", line 322, in call_process_api
output = await app.get_blocks().process_api(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/blocks.py", line 2044, in process_api
result = await self.call_function(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/blocks.py", line 1603, in call_function
prediction = await utils.async_iteration(iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/utils.py", line 728, in async_iteration
return await anext(iterator)
^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/utils.py", line 833, in asyncgen_wrapper
response = await iterator.anext()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/chat_interface.py", line 898, in _stream_fn
first_response = await utils.async_iteration(generator)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/gradio/utils.py", line 728, in async_iteration
return await anext(iterator)
^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/projects/llm-finetunen/src/main.py", line 35, in chat_fn
async for chunk in rag_system.ask_question(question=message, session_id='abc-123'):
File "/home/ignace/projects/llm-finetunen/src/rag/rag_system.py", line 45, in ask_question
async for chunk in self.chatbot.generate_answer(question=question, session_id=session_id):
File "/home/ignace/projects/llm-finetunen/src/rag/chatbot.py", line 134, in generate_answer
if 'answer' in chunk:
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5540, in astream
async for item in self.bound.astream(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5540, in astream
async for item in self.bound.astream(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3431, in astream
async for chunk in self.atransform(input_aiter(), config, **kwargs):
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3414, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3384, in _atransform
async for output in final_pipeline:
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5576, in atransform
async for item in self.bound.atransform(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4946, in atransform
async for output in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4927, in _atransform
async for chunk in output.astream(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5540, in astream
async for item in self.bound.astream(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5540, in astream
async for item in self.bound.astream(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3431, in astream
async for chunk in self.atransform(input_aiter(), config, **kwargs):
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3414, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3384, in _atransform
async for output in final_pipeline:
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/passthrough.py", line 627, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/passthrough.py", line 605, in _atransform
async for chunk in for_passthrough:
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/utils/aiter.py", line 123, in tee_peer
item = await iterator.anext()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/utils/aiter.py", line 123, in tee_peer
item = await iterator.anext()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/passthrough.py", line 627, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/passthrough.py", line 617, in _atransform
yield await first_map_chunk_task
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/utils/aiter.py", line 74, in anext_impl
return await anext(iterator)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3915, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3902, in _atransform
chunk = AddableDict({step_name: task.result()})
^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3885, in get_next_chunk
return await py_anext(generator)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5576, in atransform
async for item in self.bound.atransform(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3414, in atransform
async for chunk in self._atransform_stream_with_config(
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 2295, in _atransform_stream_with_config
chunk: Output = await asyncio.create_task( # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 3384, in _atransform
async for output in final_pipeline:
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 1465, in atransform
async for output in self.astream(final, config, **kwargs):
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 1012, in astream
yield await self.ainvoke(input, config, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/retrievers.py", line 322, in ainvoke
result = await self._aget_relevant_documents(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain/retrievers/contextual_compression.py", line 70, in _aget_relevant_documents
docs = await self.base_retriever.ainvoke(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 5369, in ainvoke
return await self.bound.ainvoke(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/branch.py", line 271, in ainvoke
expression_value = await condition.ainvoke(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4748, in ainvoke
return await self._acall_with_config(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 1966, in _acall_with_config
output: Output = await asyncio.create_task(coro, context=context) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4672, in _ainvoke
output = await acall_func_with_variable_args(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4642, in f
return await run_in_executor(config, func, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/config.py", line 588, in run_in_executor
return await asyncio.get_running_loop().run_in_executor(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/config.py", line 579, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/base.py", line 4636, in func
return call_func_with_variable_args(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain_core/runnables/config.py", line 396, in call_func_with_variable_args
return func(input, **kwargs) # type: ignore[call-arg]
^^^^^^^^^^^^^^^^^^^^^
File "/home/ignace/anaconda3/envs/llm/lib/python3.11/site-packages/langchain/chains/history_aware_retriever.py", line 60, in
lambda x: not x.get("chat_history", False),
^^^^^
AttributeError: 'str' object has no attribute 'get'
System Info
langchain==0.3.17
langchain-cli==0.0.35
langchain-community==0.3.16
langchain-core==0.3.33
langchain-huggingface==0.1.2
langchain-ollama==0.2.2
langchain-openai==0.3.2
langchain-qdrant==0.2.0
langchain-text-splitters==0.3.5
rank_llm==0.20.3
Beta Was this translation helpful? Give feedback.
All reactions