現在AI的時代,實在是離不開python,有時候想要快速的驗證程式設計,並且對外服務,給外部的人測試,這時候可以考慮把在 CLI 執行的 python code ,改成 web api,讓外部的人測試看看,改法如下
內容目錄
步驟 1: 安裝 Flask
pip install Flask
步驟 2 : 建立一個 Web APP
可以建立一個名為 webapi.py 的檔案,並且輸入以下程式碼,這樣就可以簡單地把 GraphRAG 的服務對外
from flask import Flask, request, jsonify
import subprocess
import shlex
app = Flask(__name__)
@app.route('/query', methods=['POST'])
def query():
# 获取请求中的问题
data = request.json
question = data.get('question')
if not question:
return jsonify({'error': 'No question provided'}), 400
# 构建 CLI 命令
command = f"python -m graphrag.query --root ./ragtest --method local \"{question}\""
# 安全地处理命令
args = shlex.split(command)
# 执行命令
try:
result = subprocess.run(args, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
response = result.stdout
# 假设输出中包含 "SUCCESS:" 和我们需要的答案
if "SUCCESS:" in response:
answer = response.split("SUCCESS:")[1].strip() # 取得成功后的文本作为答案
return jsonify({'answer': answer})
else:
return jsonify({'error': 'Failed to get a valid response from the CLI tool'}), 500
except subprocess.CalledProcessError as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, port=5000)
步驟 3 : 開啟服務
python webapi.py
步驟 4 : 使用 API
curl -X POST http://localhost:5000/query -H "Content-Type: application/json" -d "{\"question\": \"新修正之勞工特別休假日數有多少?\"}"
近期留言