用flask做个简单llm-api

详细文档见: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结构:

  1. 首先我们导入了 Flask 类。该类的实例将会成为我们的 WSGI 应用。

  2. app=Flask(__name__)创建该类实例

  3. 使用 route() 装饰器来告诉 Flask 触发函 数的 URL 。本代码设置'http://localhost:5000/api/answer'的url用来触发函数。在app.run中设置0.0.0.0表示可以被同网络的用户访问

 可以用app.py命名:在终端输入flask --app app.py run运行

用flask做个简单llm-api_第1张图片

发送端,用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格式

 发送端的运行结果:

用flask做个简单llm-api_第2张图片

你可能感兴趣的:(flask,python,后端)