binqiangliu's picture
Update app.py
1d1683c
raw
history blame
3.05 kB
import streamlit as st
import requests
import timeit
import datetime
from dotenv import load_dotenv
load_dotenv()
st.set_page_config(page_title="AI Chat Client", layout="wide")
st.title("AI Chat Client")
current_datetime_0= datetime.datetime.now()
print(f"Anything happens, this ST app will execute from top down. @ {current_datetime_0}")
print()
HUGGINGFACEHUB_API_TOKEN = os.getenv("HUGGINGFACEHUB_API_TOKEN")
# 用户输入
url = st.text_input("Enter the URL to chat with:")
print(f"URL Entered: "+url)
print()
question = st.text_input("Enter your question:")
print(f"Question Entered: "+question)
print()
# 当用户点击按钮时
if st.button('Get AI Response'):
if url and question:
print(f"URL & Question Entered & Button clicked.")
print()
with st.spinner('Fetching AI response...'):
# 构造请求
# FastAPI 服务器的 URL
fastapi_server_url = "https://binqiangliu-wechatarticleloaderfastapi.hf.space/get_ai_response"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {HUGGINGFACEHUB_API_TOKEN}"
#保险起见,建议始终采用f''的形式以及配合使用{}
}
data = {"url": url, "question": question}
# 发送请求到 FastAPI 服务器
current_datetime_0 = datetime.datetime.now()
print(f'API调用请求发送开始 @ {current_datetime_0}')
print()
start_1 = timeit.default_timer() # Start timer
#response = requests.post(fastapi_server_url, json=data)
response = requests.post(fastapi_server_url, headers=headers, json=data)
end_1 = timeit.default_timer() # Start timer
print(f'API调用请求发送结束,共耗时: @ {end_1 - start_1}')
print()
if response.status_code == 200:
# 显示 AI 的回答
#ai_response = response.json().get("AI Response", "No response received.")
current_datetime_1 = datetime.datetime.now()
print(f'获取API调用结果开始 @ {current_datetime_1}')
print()
start_2 = timeit.default_timer() # Start timer
ai_response = response.json()
ai_response_output=ai_response['AIResponse']
end_2 = timeit.default_timer() # Start timer
print(f'获取API调用结果完毕,共耗时: @ {end_2 - start_2}')
print()
print("AI Response:", ai_response)
print("AI Response:", ai_response_output)
print()
st.write("AI Response:", ai_response)
st.write("AI Response:", ai_response_output)
else:
# 显示错误信息
st.error("Error in fetching response from AI server.")
else:
st.warning("Please enter both URL and a question.")