python-3.x 如何启用streamlit_chat滚动保持输入框在同一位置

lo8azlld  于 2023-05-19  发布在  Python
关注(0)|答案(1)|浏览(896)

我正在使用chatgpt3.5streamlit应用程序构建chatbot。我可以把Input text放在屏幕底部。但是随着文本查询的增长,我的input text area也下降了。
streamlit_chathttps://github.com/AI-Yash/st-chat/blob/main/streamlit_chat/frontend/src/stChat.tsx的前端代码
代码如下:

import openai
import streamlit as st
from streamlit_chat import message

openai.api_key='API_KEY'

def generate_response(prompt):
    completion=openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.6,
    )
    message=completion.choices[0].text
    return message

st.title("ChatGPT3.5 BOT")

if 'generated' not in st.session_state:
    st.session_state['generated'] = []
if 'past' not in st.session_state:
    st.session_state['past'] = []

def inputchange():

    inp={
        "inputs": {
            "past_user_inputs": st.session_state.past,
            "generated_responses": st.session_state.generated,
            "text": st.session_state.input,
        },
    }
    output=generate_response(inp['inputs']['text'])

    # append user_input and output to state
    st.session_state['past'].append(st.session_state.input)
    st.session_state['generated'].append(output)

# If responses have been generated by the model
if st.session_state['generated']:
    # Reverse iteration through the list
    for i in range(len(st.session_state['generated']) - 1, -1, -1):
        # message from streamlit_chat
        # message(st.session_state['past'][::-1][i], is_user=True, key=str(i) + '_user', )
        message(st.session_state['past'][::-1][i], is_user=True, key=str(i) + '_user', )
        message(st.session_state['generated'][::-1][i], key=str(i),avatar_style="adventurer",seed=123,)

user_input = st.text_input("Input Message: ", "", key="input", on_change=inputchange)

如何为message添加滚动,就像ChatGPT3.5一样,可以向上滚动消息而不是滚动页面。

oxf4rvwz

oxf4rvwz1#

这是一些工作,为我,将尝试和更新,一旦我确定这工作。这样做:

  1. pip安装streamlit聊天组件
    1.现在从git repo安装源代码
    1.在这个tax应用程序中为你的container设置scroll=true
    1.为prod构建此文件并生成构建文件夹
    1.转到源安装并将您的构建文件夹替换为那里的文件夹
    1.导入并运行包
    我想这应该对你的案子有用https://github.com/AI-Yash/st-chat/blob/main/streamlit_chat/frontend/src/stChat.tsx
    这是您要更改的代码文件。
    希望这有帮助;它在更改URL时工作。

相关问题