import streamlit as st import requests import json # 定义 generate 函数 def generate(query, state_name): url = "http://47.113.113.230:6969/process_text" payload = { "input_text": query, "states_name": state_name } response = requests.post(url, json=payload) if response.status_code == 200: result = response.json() output_text = json.loads(result["output_text"]) elapsed_time = result["elapsed_time"] st.write(f"生成时间: {elapsed_time} 秒") st.write("生成结果:") st.json(output_text) else: st.write("请求失败") # 定义 states 变量 states = ["unit_extractor", "domain_expert"] # 设置应用标题 st.title("多States切换生成Demo") # 初始化 session_state if 'query' not in st.session_state: st.session_state.query = "" if 'state_name' not in st.session_state: st.session_state.state_name = states[0] # 创建侧边栏 with st.sidebar: st.header("Demo Inputs") # 定义 demo_inputs 列表 demo_inputs = [ {"query": "总共453户", "state": "unit_extractor"}, {"query": "菌子,又名蘑菇。通常大家把人工种植的叫蘑菇,野生的叫菌子。 菌子是人们常食的山珍佳肴,即食用菌类植物的子实体,指蕈、菇、灵芝一类,多来源于担子菌纲的某些科属。常见的食用菌菌类有香菇、蘑菇、猴头、木耳、灵芝等,多属山珍类,古时均属野生,现在已能人工培植,可以大范围生产。菌子已走出深山老林,既进入了大的酒店餐馆,也进入了寻常百姓家。许多食用真菌营养丰富,为食中佳品,其作用家喻户晓,人人皆知。", "state": "domain_expert"}, {"query": "总面积约1234.8平方米", "state": "unit_extractor"}, {"query": "云南省,简称“云”或“滇”,中国23个省之一,位于西南地区,省会昆明。介于北纬21°8′~29°15′,东经97°31′~106°11′之间,东部与贵州、广西为邻,北部与四川相连,西北部紧依西藏,西部与缅甸接壤,南部和老挝、越南毗邻,云南省总面积39.41万平方千米,居全国第8位。云南省是全国边境线最长的省份之一,有8个州(市)的25个边境县分别与缅甸、老挝和越南交界。", "state": "domain_expert"}, {"query": "包括394.34平方公里", "state": "unit_extractor"}, {"query": "元谋人,因发现地点在云南元谋县上那蚌村西北小山岗上而得名。元谋人牙齿化石是1965年“五一”节在云南元谋县上那蚌村发现的,元谋县被誉为“元谋人的故乡”。1976年根据古地磁学方法测定,生活年代距今约170万年,差距最多不超过前后十万年(也有学者认为其年代不应超过73万年,即可能为差距在60万至50万年或更晚一些)。", "state": "domain_expert"}, ] # 展示 demo_inputs 列表 for i, demo in enumerate(demo_inputs): st.write(f"Query: {demo['query']}") st.write(f"State: {demo['state']}") if st.button(f"Apply {i}"): st.session_state.query = demo['query'] st.session_state.state_name = demo['state'] st.rerun() # 创建下拉框 state_name = st.selectbox("选择一个State", states, index=states.index(st.session_state.state_name)) # 创建输入框 query = st.text_input("输入查询内容", value=st.session_state.query) # 创建提交按钮 if st.button("提交"): # 调用 generate 函数 generate(query, state_name)