""" 提示词管理API接口 """ from flask import Blueprint, request, jsonify from backend.models.database import ( get_all_prompts, save_prompt, delete_prompt_by_id, get_prompt_by_id ) prompts_bp = Blueprint('prompts', __name__) @prompts_bp.route('/api/prompts', methods=['GET']) def get_prompts(): """ 获取所有提示词 返回参数: - prompts: 提示词列表 """ try: prompts = get_all_prompts() return jsonify({ 'success': True, 'prompts': prompts }) except Exception as e: return jsonify({'error': f'获取提示词失败: {str(e)}'}), 500 @prompts_bp.route('/api/prompts', methods=['POST']) def create_prompt(): """ 保存新提示词 请求参数: - name: 提示词名称 - content: 提示词内容 - model_type: 模型类型 """ try: data = request.get_json() # 参数验证 name = data.get('name', '').strip() content = data.get('content', '').strip() model_type = data.get('model_type', 'gemini-3-pro-image-preview') if not name: return jsonify({'error': '提示词名称不能为空'}), 400 if not content: return jsonify({'error': '提示词内容不能为空'}), 400 # 保存提示词 prompt_id = save_prompt(name, content, model_type) return jsonify({ 'success': True, 'message': '提示词保存成功', 'prompt_id': prompt_id }) except Exception as e: return jsonify({'error': f'保存提示词失败: {str(e)}'}), 500 @prompts_bp.route('/api/prompts/', methods=['DELETE']) def delete_prompt(prompt_id): """ 删除提示词 路径参数: - prompt_id: 提示词ID """ try: success = delete_prompt_by_id(prompt_id) if success: return jsonify({ 'success': True, 'message': '提示词删除成功' }) else: return jsonify({'error': '提示词不存在'}), 404 except Exception as e: return jsonify({'error': f'删除提示词失败: {str(e)}'}), 500 @prompts_bp.route('/api/prompts/', methods=['GET']) def get_prompt(prompt_id): """ 获取单个提示词详情 路径参数: - prompt_id: 提示词ID """ try: prompt = get_prompt_by_id(prompt_id) if prompt: return jsonify({ 'success': True, 'prompt': prompt }) else: return jsonify({'error': '提示词不存在'}), 404 except Exception as e: return jsonify({'error': f'获取提示词失败: {str(e)}'}), 500