File size: 1,616 Bytes
74cb225
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import sys
import os
abs_path = os.getcwd()
sys.path.append(abs_path) # Adds higher directory to python modules path.
from models.openai import Generator
import streamlit as st

def test():
    state = st.session_state
    # col1, col2 = st.columns([1, 1])
    with st.sidebar:
        st.subheader("LangGPT结构化提示词")
        prompt = st.text_area("langgpt_prompt",state.prompt,height=500,label_visibility="collapsed")
        if st.button("保存提示词"):
            if "test_messages" not in state:
                state.test_messages = []
                pass
            # state.test_messages = [{"role": "system", "content": prompt}]
            state.prompt = prompt
            st.rerun()
            pass
        pass
    ## A Chatbot to display the messages
    if "test_messages" not in state:
        state.test_messages = [{"role": "system", "content": state.prompt}]
        response = state.generator.generate_response(state.test_messages)
        state.test_messages.append({"role": "assistant", "content": response})
        st.rerun()
        pass
    # st.subheader("LangGPT对话")
    for message in state.test_messages:
        if message["role"] == "system":
            continue
        st.chat_message(message["role"]).write(message["content"])
        pass
    
    if prompt := st.chat_input("输入对话"):
        state.test_messages.append({"role": "user", "content": prompt})
        response = state.generator.generate_response(state.test_messages)
        state.test_messages.append({"role": "assistant", "content": response})
        st.rerun()
        pass
    pass