From 553b27ffac025822e6215462f6820186b1413ca2 Mon Sep 17 00:00:00 2001 From: practicer2015 Date: Mon, 17 Mar 2025 22:58:57 +0800 Subject: [PATCH] Auto Commit --- main.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 4c0c135..88c3451 100644 --- a/main.py +++ b/main.py @@ -1 +1,74 @@ -print('欢迎来到 InsCode') \ No newline at end of file +import os +import json +import logging +from flask import Flask, request, jsonify +import requests + +app = Flask(__name__) + +# 设置 DeepSeek API 的相关信息 +DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions" +DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY") # 从环境变量获取 API 密钥 + +if not DEEPSEEK_API_KEY: + raise ValueError("请设置 DEEPSEEK_API_KEY 环境变量") + +# 配置日志记录 +logging.basicConfig(level=logging.DEBUG) + +@app.route('/judge', methods=['POST']) +def judge(): + data = request.get_json() + if not data or 'input_text' not in data or 'prompt' not in data: + return jsonify({"error": "请求中缺少 'input_text' 或 'prompt' 字段"}), 400 + + input_text = data['input_text'] + prompt = data['prompt'] + + # 输入验证 + if not isinstance(input_text, str) or not isinstance(prompt, str): + return jsonify({"error": "'input_text' 和 'prompt' 必须是字符串"}), 400 + + logging.debug(f"input_text: {input_text}") + logging.debug(f"prompt: {prompt}") + + # 构建 DeepSeek API 请求的消息 + messages = [ + {"role": "system", "content": prompt}, + {"role": "user", "content": input_text} + ] + + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {DEEPSEEK_API_KEY}" + } + + payload = { + "model": "deepseek-chat", # 可以根据实际情况选择合适的模型 + "messages": messages + } + + logging.debug(f"payload: {json.dumps(payload, indent=2)}") + + try: + # 发送请求到 DeepSeek API + response = requests.post(DEEPSEEK_API_URL, headers=headers, json=payload, timeout=10) + response.raise_for_status() + + result = response.json() + output = result['choices'][0]['message']['content'] + print(output) + return jsonify({"output": output}) + + except requests.RequestException as e: + logging.error(f"请求 DeepSeek API 时出错: {str(e)}") + return jsonify({"error": f"请求 DeepSeek API 时出错: {str(e)}"}), 500 + except (KeyError, IndexError) as e: + logging.error(f"解析 DeepSeek API 响应时出错: {str(e)}") + return jsonify({"error": f"解析 DeepSeek API 响应时出错: {str(e)}"}), 500 + except ValueError as e: + logging.error(f"JSON 解析错误: {str(e)}") + return jsonify({"error": f"JSON 解析错误: {str(e)}"}), 400 + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file -- GitLab