Spaces:
Running
Running
import requests | |
import streamlit as st | |
from flask import Flask, request, jsonify | |
import threading | |
# Flask 部分 | |
flask_app = Flask(__name__) | |
def predict(): | |
data = request.get_json() | |
if not data or 'input' not in data: | |
return jsonify({'error': 'Invalid input'}), 400 | |
input_text = data['input'] | |
# 模拟模型预测 | |
result = {"prediction": f"Predicted for: {input_text}"} | |
return jsonify(result) | |
def run_flask(): | |
flask_app.run(port=5000, debug=False) | |
# Streamlit 部分 | |
st.title("AI Model API Interface") | |
st.write("输入文本,获取模型预测结果。") | |
# 用户输入 | |
user_input = st.text_area("请输入文本:") | |
if st.button("提交"): | |
if user_input.strip(): | |
with st.spinner("正在预测..."): | |
try: | |
api_url = "http://127.0.0.1:5000/predict" # 内部调用 Flask | |
response = requests.post(api_url, json={"input": user_input}) | |
if response.status_code == 200: | |
prediction = response.json() | |
st.success(f"预测结果: {prediction}") | |
else: | |
st.error(f"错误: {response.text}") | |
except Exception as e: | |
st.error(f"请求失败: {e}") | |
else: | |
st.warning("请输入文本!") | |
# 使用线程运行 Flask | |
if __name__ == "__main__": | |
threading.Thread(target=run_flask).start() | |