現在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\": \"新修正之勞工特別休假日數有多少?\"}"
近期留言