gpt4 book ai didi

streamlit - 流式响应线 chatgpt

转载 作者:行者123 更新时间:2023-12-02 22:47:16 35 4
gpt4 key购买 nike

有谁知道我是否可以使用 streamlit_chat 消息在 Streamlit 中显示类似 chatgpt 的流响应?

我需要类似 message(streaming=True) 或任何其他替代方案。我的代码段如下:

from streamlit_chat import message
import streamlit as st

for i in range(len(st.session_state['generated']) - 1, -1, -1):
message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')
message(st.session_state["generated"][i], key=str(i))`

我期望像 steamlit 应用程序上的 chatgpt 一样的响应流

最佳答案

我不确定 Streamlit 中的流媒体策略,但这里是客户端流媒体的通用黑客逻辑,以防有帮助,

import asyncio, shlex, subprocess, sys
async def subprocess_async(cmd, **kwargs):
cmd_list = shlex.split(cmd)
proc = await asyncio.create_subprocess_exec(
*cmd_list,
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.STDOUT,
**kwargs)

answer = ""
while proc.returncode is None:
buf = await proc.stdout.read(4)
if not buf:
return
buf = buf.decode("utf-8")
print(buf, end="")
sys.stdout.flush()
answer += buf
res = subprocess.CompletedProcess(cmd, proc.returncode, stdout=answer, stderr=b'')
return res

X = """Python 是一种高级、解释型、通用编程语言。它是一种功能强大且多功能的语言,可用于从 Web 开发到数据科学的广泛应用。Python 以其可读性和易用性而闻名,这使其成为初学者的绝佳语言。它还拥有一个庞大而活跃的开发人员社区,为该语言及其库做出了贡献。“”“

asyncio.create_task(subprocess_async(f"echo {X}"))

关于streamlit - 流式响应线 chatgpt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76408677/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com