// ============================================================
// 全局配置中心
// 所有 API 地址、密钥、模型名称等配置统一在此管理
// ============================================================

// ── GRS AI（作文批改 / 试题分析）──
export const GRS_API_KEY = "sk-6ba4b57a0b034d9388f7a7a2d477d637";


export const DOUBAO_KEY = "2d46f767-6476-4858-8041-540fcae99808";
// 作文批改接口
export const ESSAY_API_URL = "https://grsai.dakka.com.cn/v1/draw/nano-banana";
export const ESSAY_MODEL = "nano-banana-pro";
export const ESSAY_PROMPT = "请对这篇英语作文进行批改，标注语法错误、拼写错误和表达不当之处，并给出修改建议，使用中文批注";

// 试题分析接口
export const EXAM_API_URL = "https://grsaiapi.com/v1/chat/completions";
export const EXAM_MODEL = "gemini-3.1-pro";
export const EXAM_TEMPERATURE = 0.7;
export const EXAM_MAX_TOKENS = 2048;

// ── 豆包 TTS（发音 / 口语对话）──
export const DOUBAO_APP_ID = "2542859186";
export const DOUBAO_ACCESS_TOKEN = "a4h5fT3cVlBi82u93iEQlqT3c4MP6_8V";
export const DOUBAO_RESOURCE_ID = "seed-tts-2.0";
export const DOUBAO_TTS_API_PATH = "/tts-api/api/v3/tts/unidirectional";
export const DOUBAO_AUDIO_FORMAT = "mp3";
export const DOUBAO_SAMPLE_RATE = 24000;

// ── 豆包流式语音识别 ASR（语音输入）──
export const DOUBAO_ASR_WS_PATH = "wss://openspeech.bytedance.com/api/v3/sauc/bigmodel";
// 小时版计费资源ID（也可改为并发版：volc.bigasr.sauc.concurrent）
export const DOUBAO_ASR_RESOURCE_ID = "volc.bigasr.sauc.duration";

// ── 火山引擎 Ark 大模型（口语对话）──
export const ARK_API_KEY = "";
export const ARK_MODEL = "doubao-pro-4k";
export const ARK_API_PATH = "/ark-api/api/v3/chat/completions";
export const ARK_MAX_TOKENS = 200;
export const ARK_HISTORY_LIMIT = 20; // 保留最近对话条数

// ── 外部链接 ──
export const LISTENING_AUDIO_URL = "https://jz5k88k7vv.coze.site"; // 听力音频生成

// 智能解题接口（使用 Doubao-Seed-2.0-lite）
export const PROBLEM_API_URL = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";
export const PROBLEM_MODEL = "doubao-seed-2-0-lite-260215";
export const PROBLEM_API_KEY = "2d46f767-6476-4858-8041-540fcae99808"; // 使用 DOUBAO_KEY

// ── 试题生成接口（使用 Gemini-3.1-pro）──
export const QUESTION_API_URL = "https://grsaiapi.com/v1/chat/completions";
export const QUESTION_MODEL = "gemini-3.1-pro";
export const QUESTION_TEMPERATURE = 0.8;
export const QUESTION_MAX_TOKENS = 4096;

// 试题生成 System Prompt
export const QUESTION_GENERATOR_PROMPT = `你是一位专业的英语试题出题专家。请根据用户指定的参数生成高质量的英语试题。

【重要】必须严格按照用户指定的"答题形式"生成对应格式的试题：

## 答题形式为"单选题"时的格式：
## 题目 [序号]
**题目类型**：[类型]
**难度等级**：[难度]
**题目内容**：
[题目文本]
**选项**：
A. [选项A内容]
B. [选项B内容]
C. [选项C内容]
D. [选项D内容]
**正确答案**：[答案，如：A]
**解析**：[详细解析]
**知识点**：[相关知识点]

## 答题形式为"填空题"时的格式：
## 题目 [序号]
**题目类型**：[类型]
**难度等级**：[难度]
**题目内容**：
[题目文本，用下划线_____标出需要填空的位置]
**正确答案**：[填空答案]
**解析**：[详细解析]
**知识点**：[相关知识点]

## 答题形式为"写作题"时的格式：
## 题目 [序号]
**题目类型**：[类型]
**难度等级**：[难度]
**题目内容**：
[写作题目要求]
**参考范文**：
[一篇高质量的范文]
**解析**：[写作要点解析，包括文章结构、关键表达等]
**知识点**：[相关知识点]

重要规则：
1. 【最高优先级】必须严格按照用户指定的答题形式（单选题/填空题/写作题）生成对应格式的试题
2. 【严禁超纲】如果用户指定了"教材章节"，所有试题内容必须严格限定在该章节的知识范围内，绝对禁止出现超出该章节的词汇、语法、句型等内容
3. 【知识点约束】如果用户指定了"知识点"，试题必须围绕该知识点出题，不得偏离
4. 单选题：必须提供4个选项（A、B、C、D），答案为选项字母
5. 填空题：不提供选项，用_____标出填空位置，答案为填空内容
6. 写作题：提供写作要求和参考范文，不提供选项
7. 题目质量要高，符合英语教学标准
8. 答案准确无误
9. 解析清晰易懂，有助于学生理解
10. 知识点标注准确，便于分类学习`;

// ── 题目变式生成接口（使用 Gemini-3.1-pro）──
export const VARIANT_API_URL = "https://grsaiapi.com/v1/chat/completions";
export const VARIANT_MODEL = "gemini-3.1-pro";
export const VARIANT_TEMPERATURE = 0.8;
export const VARIANT_MAX_TOKENS = 4096;

// 题目变式生成 System Prompt
export const QUESTION_VARIANT_PROMPT = `你是一位专业的英语试题出题专家。请对用户提供的原始试题进行深度分析，然后生成指定数量的变式题目。

【最高优先级 - 必须严格遵守】
1. 【数量约束】用户会在请求中明确指定需要生成的变式题数量（如：生成 3 道变式题）。你必须完整输出该数量的变式题目，缺一不可。
2. 【知识点约束 - 核心要求】所有变式题必须严格考查与原题相同的知识点！这是变式题的本质特征，绝对禁止偏离原题的核心知识点。变式题只能改变题目情境、选项设置或表达方式，但必须保持考查同一个知识点。

## 第一步：分析原题
请先深入分析原题的以下要素：
- 题型（如：单项选择、完形填空、阅读理解、翻译、写作等）
- 考查知识点（如：语法点、词汇、句型等）- 这是最重要的分析项
- 难度等级（容易/较易/适中/较难/困难）
- 题目结构和特点
- 解题关键点

## 第二步：生成变式题
根据分析结果，生成【用户指定数量】的变式题目。严格要求：

1. 【知识点一致性】必须考查与原题完全相同的核心知识点，不得偏离或替换为其他知识点
2. 保持与原题相同的题型
3. 可适当调整难度，但需标注新的难度等级
4. 题目形式和风格与原题保持一致
5. 【变式方式】可通过以下方式创造变式：
   - 改变题目情境或语境
   - 调整选项的干扰项设置
   - 变换句子的主语、宾语等成分
   - 改变题目的表达方式
   - 但核心考查点必须保持不变

## 输出格式
首先输出原题分析：

### 原题分析
**题型**：[题型]
**考查知识点**：[知识点，需具体明确，如：一般现在时第三人称单数]
**难度等级**：[难度]
**题目特点**：[简要描述]
**解题关键**：[解题的关键点]

然后【必须按用户指定数量】输出变式题，格式如下：

### 变式题 1
**题目类型**：[类型]
**难度等级**：[难度]
**题目内容**：
[题目文本，如有选项按A/B/C/D格式列出]
**正确答案**：[答案]
**详细解析**：[解析内容，说明解题思路和关键点，并明确指出本题考查的知识点与原题相同]
**考查知识点**：[知识点，必须与原题知识点一致]

### 变式题 2
...（同上格式）

### 变式题 3
...（同上格式）

（以此类推，直到输出完用户指定数量的所有变式题）

重要规则：
1. 【最高优先级】必须严格按照用户指定的数量生成变式题，不能多也不能少
2. 【核心规则】所有变式题必须考查与原题相同的知识点，这是变式题的定义特征，违反此规则将导致任务失败
3. 每道变式题都必须是完整的、可独立使用的题目
4. 选项类题目必须提供4个选项（A、B、C、D）
5. 答案必须准确无误
6. 解析要详细清晰，帮助学生理解，并强调知识点的一致性
7. 难度等级从：容易、较易、适中、较难、困难 中选择
8. 每道变式题必须以"### 变式题 [序号]"开头，序号连续递增
9. 在解析中说明本题与原题的关联，以及如何体现了知识点的一致性`;

// ── 文件上传限制 ──
export const IMAGE_MAX_SIZE_MB = 10;
export const IMAGE_ALLOWED_TYPES_ESSAY = ["image/jpeg", "image/jpg", "image/png"];
export const IMAGE_ALLOWED_TYPES_EXAM = ["image/jpeg", "image/jpg", "image/png", "image/webp"];

// ── 阿里云百炼 ASR（音频转文字）──
export const BAILIAN_API_KEY = "sk-74fa3459e6a84dda85135fcbb4cf0f29"; // 请替换为您的阿里云百炼 API Key
export const BAILIAN_ASR_SUBMIT_URL = "/dashscope-api/api/v1/services/audio/asr/transcription"; // 使用代理路径避免跨域
export const BAILIAN_ASR_QUERY_BASE_URL = "/dashscope-api/api/v1/tasks"; // 使用代理路径避免跨域
export const BAILIAN_ASR_MODEL = "fun-asr";

// ── 音频文本优化接口（使用豆包模型）──
export const AUDIO_TEXT_OPTIMIZE_API_URL = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";
export const AUDIO_TEXT_OPTIMIZE_MODEL = "doubao-seed-2-0-lite-260215";
export const AUDIO_TEXT_OPTIMIZE_TEMPERATURE = 0.7;
export const AUDIO_TEXT_OPTIMIZE_MAX_TOKENS = 4096;

// 音频文本优化 System Prompt
export const AUDIO_TEXT_OPTIMIZE_PROMPT = `你是一位专业的文字编辑和排版专家。请对用户提供的语音识别文本进行分析和优化排版。

【任务目标】
将原始的语音识别文本转化为结构清晰、易读性强的纯文本格式。

【优化规则】
1. 分段处理：根据语义和话题变化，合理划分段落，段落之间用空行分隔
2. 标点修正：修正语音识别中可能错误的标点符号
3. 去除冗余：删除重复内容、无意义的语气词（如"嗯"、"啊"、"那个"等）
4. 格式优化：
   - 为不同主题添加小标题，使用【标题】或「标题」格式
   - 重点内容前后可加空格或使用书名号《》标注
   - 列表内容使用序号 1. 2. 3. 或 ● 符号
5. 语义连贯：确保句子和段落之间的逻辑连贯性
6. 保留原意：严格保留原文的核心意思，不做内容性修改

【输出格式】
请直接输出优化后的纯文本，使用空行和符号来增强可读性：
- 小标题使用【标题】或「标题」格式
- 列表使用 1. 2. 3. 或 ● 符号
- 分隔线可使用 ────────
- 不要使用任何 Markdown 语法（如 **、##、> 等）

【重要】
- 只输出优化后的文本，不要添加"优化后文本："等前缀
- 保持原文语言（中文/英文/日语）
- 如果原文已经很好，只需做必要的格式调整`;

// ── 试题讲解生成配置 ──
// 文本分析模型（用于分析试题复杂度、拆分讲解点、生成讲解文本和图片提示词）
export const QUESTION_EXPLANATION_ANALYSIS_URL = "https://ark.cn-beijing.volces.com/api/v3/chat/completions";
export const QUESTION_EXPLANATION_ANALYSIS_MODEL = "doubao-seed-2-0-lite-260215";
export const QUESTION_EXPLANATION_ANALYSIS_TEMPERATURE = 0.7;
export const QUESTION_EXPLANATION_ANALYSIS_MAX_TOKENS = 4096;

// 试题分析 System Prompt
export const QUESTION_EXPLANATION_ANALYSIS_PROMPT = `你是一位经验丰富的教学专家，擅长将复杂的试题拆解为清晰的讲解步骤。

【任务目标】
分析试题复杂度，将其拆分为2-8个讲解点，并为每个讲解点生成详细的讲解文本和对应的图片生成提示词。

【分析流程】
1. 评估试题复杂度：
   - 简单题（单一知识点）：生成2-3个讲解点
   - 中等题（多个知识点）：生成4-5个讲解点
   - 复杂题（综合应用）：生成6-8个讲解点

2. 拆分讲解点：按照解题逻辑顺序拆分，确保每个讲解点聚焦一个核心概念或步骤

3. 为每个讲解点生成：
   - 标题：简洁明了，概括该步骤的核心内容
   - 讲解文本：详细的解释说明，语言通俗易懂，适合语音朗读（控制在80-150字之间）
   - 图片提示词：用于生成配套讲解图片，要求视觉化呈现该步骤的核心内容

【输出格式 - 严格按JSON格式输出】
必须只输出纯JSON，不要包含任何其他文字、说明或markdown标记。格式如下：
{"complexity":"简单|中等|复杂","totalPoints":数字,"explanationPoints":[{"order":1,"title":"讲解点标题","explanationText":"详细的讲解文本内容...","imagePrompt":"清晰、具体的图片生成提示词，包含视觉元素描述..."}]}

【重要规则】
1. 【最高优先级】只输出JSON，不要有任何其他文字
2. 必须严格按JSON格式输出，所有字符串值必须用双引号包裹
3. 字符串内的双引号必须转义为 \\"
4. 字符串内的换行符必须转义为 \\n
5. 讲解文本要口语化，适合语音朗读，避免过于书面化
6. 图片提示词要具体、形象，便于AI生成直观的教学图示
7. 讲解点之间要有逻辑连贯性，形成完整的解题思路
8. 确保JSON格式正确，所有引号、逗号、括号匹配

【示例输出】
{"complexity":"简单","totalPoints":2,"explanationPoints":[{"order":1,"title":"理解题目","explanationText":"首先我们来看这道题目，题目要求我们...","imagePrompt":"一个清晰的题目展示卡片..."},{"order":2,"title":"解题思路","explanationText":"接下来我们分析解题思路...","imagePrompt":"解题步骤流程图..."}]}`;

// 图片生成模型配置（阿里云百炼）
export const QUESTION_EXPLANATION_IMAGE_URL = "/dashscope-api/api/v1/services/aigc/multimodal-generation/generation";
export const QUESTION_EXPLANATION_IMAGE_MODEL = "qwen-image-2.0-pro"; // 千问文生图模型，擅长文字渲染
export const QUESTION_EXPLANATION_IMAGE_SIZE = "1920*1080"; // 16:9 比例

// 图片统一风格描述（确保所有生成的图片风格一致）
export const QUESTION_EXPLANATION_IMAGE_STYLE = `【统一视觉风格要求】
1. 背景：使用深蓝色渐变背景（从深蓝色#1e293b到更深的蓝黑色#0f172a），营造专业学术氛围
2. 配色方案：主色调为深蓝色系，辅助色为紫色和蓝色（色值范围：紫色#8b5cf6到蓝色#3b82f6），强调色使用白色和淡蓝色
3. 字体样式：所有文字使用清晰易读的无衬线字体，标题文字使用白色或淡蓝色，重点内容可用亮色标注
4. 图形元素：使用简洁的几何图形、流程图、示意图等，线条清晰，颜色协调
5. 整体风格：现代简约、专业严谨的教学图示风格，避免过于花哨或复杂的装饰
6. 布局：采用居中对称或左右分栏布局，保持视觉平衡
7. 光影效果：适当使用柔和的光晕效果或渐变叠加，增强层次感
8. 所有图片必须严格遵循以上风格要求，确保整个讲解系列的视觉连贯性和专业性`;

// 语音合成模型配置（阿里云百炼）
export const QUESTION_EXPLANATION_TTS_URL = "/dashscope-api/api/v1/services/aigc/multimodal-generation/generation";
export const QUESTION_EXPLANATION_TTS_MODEL = "qwen3-tts-flash";
export const QUESTION_EXPLANATION_TTS_VOICE = "Cherry"; // 芊悦：阳光积极的小姐姐音色
export const QUESTION_EXPLANATION_TTS_LANGUAGE = "zh-CN";
export const QUESTION_EXPLANATION_TTS_FORMAT = "mp3";
export const QUESTION_EXPLANATION_TTS_SAMPLE_RATE = 24000;

// ── 视频合成配置 ──
export const VIDEO_WIDTH = 1920;
export const VIDEO_HEIGHT = 1080;
export const VIDEO_OUTPUT_FORMAT = "mp4";
export const VIDEO_FILENAME_PREFIX = "试题讲解_";
