详细文档见:flask中文文档快速上手 — Flask中文文档(2.3.x) (dormousehole.readthedocs.io)
也可以看英文文档。
接收端:开放本机5000端口api
from flask import Flask, jsonify, request
app = Flask(__name__)
from utils.llm import load_llm
llms = load_llm()
def llm(question):
# 假设你已经有了实现的逻辑,例如调用LLM模型来获取答案
answer = "答案:{}".format(llms.invoke(question)) # 这里仅作演示,实际应替换为你的模型调用逻辑
return answer
@app.route('/api/answer', methods=['POST']) # 方法设置成post
def get_answer():
data = request.get_json() # 接收json格式的数据
if 'question' not in data:
return jsonify({"error": "请求缺少question参数"}), 400
question = data['question']
answer = llm(question)
return jsonify({"answer": answer}), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
llm函数返回字符串答案,data接收发送端发送的json格式的数据,方式为post,简单介绍flask结构:
-
首先我们导入了 Flask 类。该类的实例将会成为我们的 WSGI 应用。
-
app=Flask(__name__)创建该类实例
-
使用 route() 装饰器来告诉 Flask 触发函 数的 URL 。本代码设置'http://localhost:5000/api/answer'的url用来触发函数。在app.run中设置0.0.0.0表示可以被同网络的用户访问
可以用app.py命名:在终端输入flask --app app.py run运行
发送端,用post方式发送json数据
import requests
url = 'http://localhost:5000/api/answer'
data = {"question": "你想问的问题"}
response = requests.post(url, json=data)
if response.status_code == 200:
answer = response.json()["answer"]
print(answer)
else:
print(f"请求失败,状态码:{response.status_code}")
用requests.post向url发送信息,返回json格式
发送端的运行结果: