import SparkLLM_Thread
import streamlit as st
from streamlit_chat import message
# 页面提示语, 开场白 streamlit markdown
st.markdown("#### 您好, 我是多风格翻译官小星, 很荣幸为您服务。 :sunglasses:")
# 文本输入框
user_input = st.text_input("请输入您需要翻译的英文文本:", key='input')
# 设置一些风格按钮选项, 来设置不同的翻译风格 botton 辅助提示词
but = st.radio(
"翻译风格:",
('默认风格','古文风格', '学术风格', '琼瑶风格',), horizontal=True)
if but =='默认风格':
style = '。 '
elif but =='古文风格':
style = ', 请按照古文风格进行翻译, 用古诗词的行文风格, 做到辞藻精炼, 可用典故。'
elif but =='学术风格':
style = ', 请按照学术风格进行翻译, 保持严谨认真的风格。'
elif but == '琼瑶风格':
style = ', 请按照琼瑶风格进行翻译, 意境优美, 充满诗情画意, 或多愁善感, 或心花怒放。'
else:
style = '。 '
# 用于判断模型生成内容是否存在, 不存在则创建列表
if 'generated' not in st.session_state:
st.session_state['generated'] = []
# 用于判断用户输入内容是否存在, 不存在则创建列表
if 'past' not in st.session_state:
st.session_state['past'] = []
if user_input:
# 组装prompt, 最终传入大模型的是text内容
text = user_input + "\n请将上述英文内容翻译为中文" + style
# 保存用户输入到列表, 用于后续页面展示
st.session_state['past'].append(user_input)
# 向星火模型发出请求, 其中appid, api_key, api_secret 获取地址: https://console.xfyun.cn/services/bm3
output =SparkLLM_Thread.main(uid='itcast',
chat_id='itcast001 ',
appid='输入你的appid',
api_key='输入你的api_key',
api_secret='输入你的api_secret',
gpt_url='wss://spark-api.xf-yun.com/v3.5/chat',
question=[{"role": "user", "content":text}])
# 保存大模型输出到列表, 用于后续页面展示
st.session_state['generated'].append(output)
# 在前端页面展示列表中的内容
if st.session_state['generated']:
for i in range(len(st.session_state['generated']) - 1, -1, -1):
message(st.session_state["generated"][i], key=str(i))
message(st.session_state['past'][i], is_user=True, key=str(i) + '_user')