问题验证
- 我已在文档和discord中寻找答案。
问题
你好,我正在使用llama-index-bedrock-converse@0.2.2,在CBEventType.LLM上,总是得到NotImplementedError('Use async-for instead
,我不确定问题来自哪里,它可能来自这里
event_handler = EventCallbackHandler()
chat_engine.callback_manager.handlers.append(event_handler) # type: ignore
response = await chat_engine.astream_chat(last_message_content, messages)
async def content_generator():
# Yield the text response
async def _text_generator():
async for token in response.async_response_gen():
yield VercelStreamResponse.convert_text(token)
# the text_generator is the leading stream, once it's finished, also finish the event stream
event_handler.is_done = True
# Yield the events from the event handler
async def _event_generator():
async for event in event_handler.async_event_gen():
event_response = event.to_response()
if event_response is not None:
yield VercelStreamResponse.convert_data(event_response)
combine = stream.merge(_text_generator(), _event_generator())
你能帮我指出我缺少的配置在哪里吗?我一直陷入这个问题。谢谢
#### 问题验证
* 我已在文档和discord中寻找答案。
#### 问题
你好,我正在使用llama-index-bedrock-converse@0.2.2,在CBEventType.LLM上,总是得到`NotImplementedError('Use async-for instead`,我不确定问题来自哪里,它可能来自这里
event_handler = EventCallbackHandler()
chat_engine.callback_manager.handlers.append(event_handler) # type: ignore
response = await chat_engine.astream_chat(last_message_content, messages)
async def content_generator():
# Yield the text response
async def _text_generator():
async for token in response.async_response_gen():
yield VercelStreamResponse.convert_text(token)
# the text_generator is the leading stream, once it's finished, also finish the event stream
event_handler.is_done = True
# Yield the events from the event handler
async def _event_generator():
async for event in event_handler.async_event_gen():
event_response = event.to_response()
if event_response is not None:
yield VercelStreamResponse.convert_data(event_response)
combine = stream.merge(_text_generator(), _event_generator())
你能帮我指出我缺少的配置在哪里吗?我一直陷入这个问题。谢谢
6条答案
按热度按时间rslzwgfq1#
ca1c2owp2#
我的基石配置:
daolsyd03#
嘿,@gilangdipper!我在这里帮助你解决任何bug、问题或贡献。只是在等待人类维护者吗?在此期间,我会协助你。
要解决在使用
CBEventType.LLM
时的llama-index-bedrock-converse@0.2.2
中的NotImplementedError('Use async-for instead')
错误,你需要确保事件处理是异步进行的。提供的代码目前不支持异步事件处理,这很可能是导致错误的原因。以下是更新后的
SimpleLLMHandler
类,其中包含异步方法来处理事件:此代码更新了
SimpleLLMHandler
类,使其使用异步方法(async def
)处理事件,这应该解决了NotImplementedError('Use async-for instead')
错误。此外,在实施异步操作之前,请确保你的 LLM 支持异步操作。qf9go6mv4#
你好,@dosu ,你能帮我检查一下我的代码吗?
68de4m5k5#
你的
llama_index
处理回调事件的代码看起来基本正确,但还有一些改进和潜在问题需要解决:is_done
的初始化:确保在构造函数中正确初始化is_done
。None
有效载荷:添加检查以处理payload
可能是None
的情况。is_done
设置为True
时,async_event_gen
中的生成器被正确关闭。以下是经过这些改进的你的代码修订版本:
这应该解决了与初始化、处理
None
有效载荷以及正确关闭生成器相关的问题。83qze16e6#
@dosu,我们是否可以改进与此问题相关的一些方面?
using llama-index-bedrock-converse@0.2.2, on CBEventType.LLM, always got NotImplementedError('Use async-for instead, I'm not sure the issue coming from where, it could be from here