# AI平台问答SOP (ai_platform_query_sop)

## 用途
当任务涉及复杂理论、需要多方观点、或不确定答案时，可先向AI平台提问获取参考，再综合回答。

## 平台列表

| 平台 | URL | 输入框类型 | 发送方式 | 特长 |
|------|-----|-----------|---------|------|
| ChatGPT | https://chat.openai.com | ProseMirror (contenteditable) | send按钮 | 英文能力最强，逻辑推理强 |
| DeepSeek | https://chat.deepseek.com | textarea | Enter键 | 中文能力强，推理能力强，联网搜索 |
| Kimi | https://kimi.moonshot.cn | contenteditable div | Enter键 | 长文本，联网搜索 |
| 豆包 | https://www.doubao.com | textarea | Enter键 | 中文对话，创意写作 |
| 通义千问 | https://tongyi.aliyun.com | textarea | Enter键 | 阿里生态，多模态 |
| 文心一言 | https://ernie.baidu.com | textarea | Enter键 | 中文理解，百度生态 |
| 智谱清言 | https://chatglm.cn | textarea | Enter键 | 中文能力强，代码辅助 |
| 讯飞星火 | https://xinghuo.xfyun.cn | textarea | Enter键 | 语音交互，教育场景 |

## 操作流程

### 1. 导航
```
web_execute_js: location.href='URL'
```
- 先检查是否已有对应tab (web_scan tabs_only)
- 有则switch_tab_id切换，无需重新导航

### 2. 输入文本
**ProseMirror类 (ChatGPT)**:
```javascript
var editor = document.querySelector('#prompt-textarea');
if(editor){ editor.focus();
  var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').set;
  nativeInputValueSetter.call(editor, '你的问题');
  editor.dispatchEvent(new Event('input', {bubbles: true}));
}
```

**textarea类 (DeepSeek/豆包/通义/文心/智谱/讯飞)**:
```javascript
var ta = document.querySelector('textarea');
if(ta){ ta.focus();
  var nativeInputValueSetter = Object.getOwnPropertyDescriptor(window.HTMLTextAreaElement.prototype, 'value').set;
  nativeInputValueSetter.call(ta, '你的问题');
  ta.dispatchEvent(new Event('input', {bubbles: true}));
}
```

**contenteditable类 (Kimi)**: 逐字符模拟键盘事件

### 3. 发送
**ChatGPT**: 点击 `#composer-submit-button`
**其他平台**: 输入框dispatch Enter键事件

### 4. 回答选择器
| 平台 | 选择器 |
|------|-------|
| ChatGPT | `[data-message-author-role="assistant"]` |
| DeepSeek | `.ds-markdown-paragraph` |
| Kimi | `.markdown-container .markdown` |
| 豆包 | `.assistant-message-content` |
| 通义千问 | `.tongyi-answer-content` |
| 文心一言 | `.ernie-answer-content` |
| 智谱清言 | `.chatglm-answer-content` |
| 讯飞星火 | `.spark-answer-content` |

## 典型坑点
1. contenteditable不能直接设值: 必须逐字符模拟键盘事件
2. ChatGPT需native setter+input事件
3. 导航后先scan确认输入框存在再操作
4. 长回答可能分段返回，需多次提取
5. Kimi可能有验证码

## 降级策略
1. 主选失败 → 换备用平台
2. 全部失败 → 用DeepSearch SOP联网搜索
3. 多源验证 → 同时问2-3个平台
