描述您希望的解决方案
我希望在使用OpenAIChatGenerator
时,能够在streamlit
上实时查看流式响应。
描述您考虑过的替代方案
我已经尝试了以下streaming_callback
函数。(我只放了相关的代码字段。如果需要,我可以提供完整的代码)
import streamlit as st
# Method 1: Nothing seen in the UI
def st_streaming_callback(chunk: StreamingChunk):
yield chunk.content
# Method 2: Instead of typewriter format, each chunk seen as one line output.
def st_streaming_callback(chunk: StreamingChunk):
st.write(chunk.content)
model = OpenAIChatGenerator(
model="gpt-4-turbo-preview",
streaming_callback=streaming_callback,
generation_kwargs=None,
)
response_dict = st.write_stream(
llm_chat.run(
messages=[
ChatMessage(
role=message.role, content=message.content, name=None
)
for message in st.session_state.messages
]
)
附加上下文
在这里添加有关此功能请求的其他上下文或截图。
5条答案
按热度按时间arknldoa1#
这是一个有趣的用例,但需要进行一些调查。我认为我们应该提供一个关于如何处理流的指南(+代码示例)。关于Streamlit的示例将是有帮助的。
jfgube3f2#
这是一个有趣的用例,但需要一些调查。我认为我们应该提供一个关于如何处理流的指南(+代码示例)。关于Streamlit的示例会很有帮助。那将是完美的,谢谢。
lymgl2op3#
你好!我正在与这个问题作斗争。
以下是一个个人例子,我正在使用OllamaChatGenerator,但同样的原理可以应用于OpenAI的聊天生成器。
很高兴在文档或其他方面提供帮助!
使用OllamaChatGenerator的类文件
这是streamlit的'app'文件
haystack-streamlit-with-streaming.mp4
ev7lccsx4#
感谢T-Visor提供的代码,在我这边运行得非常完美。我希望它能被原生集成到haystack中。
t9eec4r05#
@ilkersigirci 不用谢!这是一个小技巧,但很高兴它能用。希望对你有帮助。