Initial commit: 炼妖壶 (Lianyaohu) - 稷下学宫AI辩论系统

- 🏛️ 稷下学宫八仙论道AI辩论系统
- 🌍 天下体系资本生态分析
- 🔒 安全配置管理 (Doppler集成)
- 📊 RapidAPI永动机数据引擎
- 🎨 Streamlit现代化界面
-  清理所有敏感信息泄露
This commit is contained in:
ben
2025-08-02 16:32:37 +00:00
commit a24b887e8b
110 changed files with 23995 additions and 0 deletions

View File

@@ -0,0 +1,358 @@
# 防止推理模型独白泄露解决方案
## 🎯 问题分析
### 推理模型的"搞笑"表现
```
用户问题: "今天股市如何?"
推理模型回答:
"让我想想...首先我需要分析当前的市场情况...
嗯,从技术面来看...不对,我应该先看基本面...
等等,用户问的是今天,我需要看今日数据...
好的,我的分析是:今天股市表现良好。"
正常回答应该是:
"今天股市表现良好,主要受益于..."
```
## 🔍 模型分类与选择策略
### 1. 推理模型识别
```python
# 已知的推理模型列表
REASONING_MODELS = {
"openai": [
"o1-preview", "o1-mini", "o1-pro"
],
"anthropic": [
"claude-3-opus-reasoning", "claude-3-sonnet-reasoning"
],
"google": [
"gemini-2.0-flash-thinking"
],
"alibaba": [
"qwen2.5-math-instruct", "qwen-reasoning"
],
"deepseek": [
"deepseek-r1", "deepseek-reasoning"
]
}
# 非推理模型(安全选择)
NON_REASONING_MODELS = {
"openai": ["gpt-4o-mini", "gpt-4o", "gpt-3.5-turbo"],
"anthropic": ["claude-3.5-sonnet", "claude-3-haiku"],
"google": ["gemini-1.5-flash", "gemini-1.5-pro"],
"mistral": ["mistral-7b-instruct", "mixtral-8x7b-instruct"],
"meta": ["llama-3.1-8b-instruct", "llama-3.1-70b-instruct"]
}
```
### 2. 八仙模型重新配置(避免推理模型)
```yaml
# 修正后的八仙配置
baxian_models_corrected:
乾一_吕洞宾:
model: "mistralai/mistral-7b-instruct:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
兑二_何仙姑:
model: "google/gemini-1.5-flash:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
离三_铁拐李:
model: "microsoft/phi-3.5-mini-instruct:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
震四_汉钟离:
model: "meta-llama/llama-3.1-8b-instruct:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
巽五_蓝采和:
model: "moonshot-v1-8k:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
坎六_张果老:
model: "alibaba/qwen-2.5-7b-instruct:free" # 避免推理版本 ✅
reasoning_type: "non-reasoning"
艮七_韩湘子:
model: "deepseek-chat:free" # 非推理版本 ✅
reasoning_type: "non-reasoning"
坤八_曹国舅:
model: "zhipuai/glm-4-9b-chat:free" # 非推理模型 ✅
reasoning_type: "non-reasoning"
```
## 🛡️ 防独白泄露技术方案
### 方案1: Prompt工程防护
```python
class AntiMonologuePrompt:
"""防独白泄露的Prompt设计"""
@staticmethod
def create_clean_prompt(role, character, topic):
return f"""你是{role}{character}
【重要规则】
1. 直接给出你的观点,不要展示思考过程
2. 不要说"让我想想""首先""然后"等思考词汇
3. 不要暴露你的分析步骤
4. 直接表达结论和建议
5. 保持角色特色,简洁有力
【话题】{topic}
【你的发言】直接开始不超过100字"""
# 示例对比
bad_prompt = "请分析一下今天的股市情况"
good_prompt = """你是吕洞宾,剑仙,理性分析师。
【重要规则】
1. 直接给出观点,不展示思考过程
2. 不说"让我分析""首先"等词
3. 直接表达结论
4. 保持剑仙风格,简洁犀利
【话题】今天股市情况
【你的发言】直接开始不超过100字"""
```
### 方案2: 输出过滤系统
```python
class OutputFilter:
"""输出内容过滤器"""
def __init__(self):
# 需要过滤的思考词汇
self.thinking_patterns = [
r"让我想想.*?",
r"首先.*?然后.*?",
r"我需要分析.*?",
r"让我考虑.*?",
r"从.*?角度来看.*?",
r"等等.*?",
r"不对.*?我应该.*?",
r"嗯.*?",
r"好的,我的.*?是",
r"经过思考.*?",
r"分析如下.*?",
r"我的思路是.*?"
]
# 独白标识词
self.monologue_indicators = [
"让我", "我想", "我觉得需要", "我应该",
"等等", "不对", "重新考虑", "换个角度"
]
def filter_monologue(self, text):
"""过滤独白内容"""
import re
# 移除思考过程
for pattern in self.thinking_patterns:
text = re.sub(pattern, "", text, flags=re.IGNORECASE)
# 移除独白句子
sentences = text.split('')
filtered_sentences = []
for sentence in sentences:
has_monologue = any(indicator in sentence for indicator in self.monologue_indicators)
if not has_monologue and sentence.strip():
filtered_sentences.append(sentence.strip())
# 重新组合
result = ''.join(filtered_sentences)
if result and not result.endswith(''):
result += ''
return result
def clean_output(self, raw_output):
"""清理输出内容"""
# 1. 过滤独白
filtered = self.filter_monologue(raw_output)
# 2. 移除多余空行
filtered = re.sub(r'\n\s*\n', '\n', filtered)
# 3. 确保简洁
if len(filtered) > 200: # 如果太长取前200字
filtered = filtered[:200] + "..."
return filtered.strip()
```
### 方案3: 模型调用包装器
```python
class SafeModelCaller:
"""安全模型调用器"""
def __init__(self):
self.output_filter = OutputFilter()
self.retry_count = 3
async def safe_call(self, model_name, prompt, max_tokens=150):
"""安全调用模型,确保无独白泄露"""
for attempt in range(self.retry_count):
try:
# 调用模型
raw_response = await self.call_model(model_name, prompt, max_tokens)
# 过滤输出
clean_response = self.output_filter.clean_output(raw_response)
# 验证输出质量
if self.is_valid_response(clean_response):
return clean_response
else:
# 如果输出质量不好,重试
continue
except Exception as e:
if attempt == self.retry_count - 1:
return f"系统错误,请稍后重试。"
continue
return "无法生成有效回应。"
def is_valid_response(self, response):
"""验证回应质量"""
# 检查是否太短
if len(response.strip()) < 10:
return False
# 检查是否还有独白痕迹
monologue_signs = ["让我", "我想", "首先", "然后"]
if any(sign in response for sign in monologue_signs):
return False
return True
```
## 🎭 八仙专用防独白配置
### 针对性Prompt模板
```python
class BaxianAntiMonologue:
"""八仙防独白专用配置"""
def __init__(self):
self.immortal_prompts = {
"吕洞宾": """你是吕洞宾,剑仙,理性分析师。
【发言规则】
- 直接表达观点,如剑出鞘般犀利
- 不展示分析过程,只给结论
- 语言简洁有力不超过100字
- 保持剑仙风格:理性、犀利、直接
【话题】{topic}
【直接发言】:""",
"何仙姑": """你是何仙姑,唯一女仙,情感洞察师。
【发言规则】
- 直接表达直觉判断
- 不说"我感觉""让我想想"
- 语言优美但简洁不超过100字
- 保持女性视角:敏锐、温和、智慧
【话题】{topic}
【直接发言】:""",
# ... 其他六仙类似配置
}
def get_clean_prompt(self, immortal, topic):
"""获取无独白风险的prompt"""
base_prompt = self.immortal_prompts.get(immortal, "")
return base_prompt.format(topic=topic)
```
## 🔧 实施方案
### 完整的防独白系统
```python
class XiantianBaguaAntiMonologue:
"""先天八卦防独白辩论系统"""
def __init__(self):
self.safe_caller = SafeModelCaller()
self.baxian_prompts = BaxianAntiMonologue()
self.model_config = self.load_safe_models()
def load_safe_models(self):
"""加载安全的非推理模型"""
return {
"吕洞宾": "mistralai/mistral-7b-instruct:free",
"何仙姑": "google/gemini-1.5-flash:free",
"铁拐李": "microsoft/phi-3.5-mini-instruct:free",
"汉钟离": "meta-llama/llama-3.1-8b-instruct:free",
"蓝采和": "moonshot-v1-8k:free",
"张果老": "alibaba/qwen-2.5-7b-instruct:free",
"韩湘子": "deepseek-chat:free",
"曹国舅": "zhipuai/glm-4-9b-chat:free"
}
async def get_immortal_statement(self, immortal, topic):
"""获取仙人发言(无独白版本)"""
# 获取安全prompt
prompt = self.baxian_prompts.get_clean_prompt(immortal, topic)
# 获取模型
model = self.model_config[immortal]
# 安全调用
statement = await self.safe_caller.safe_call(model, prompt)
return statement
async def conduct_clean_debate(self, topic):
"""进行无独白泄露的辩论"""
bagua_order = ["吕洞宾", "何仙姑", "铁拐李", "汉钟离",
"蓝采和", "张果老", "韩湘子", "曹国舅"]
debate_results = []
for immortal in bagua_order:
statement = await self.get_immortal_statement(immortal, topic)
debate_results.append({
"immortal": immortal,
"statement": statement,
"clean": True # 标记为已清理
})
return debate_results
```
## 💡 最终建议
### 推荐策略
1. **优先使用非推理模型** - 从源头避免问题
2. **强化Prompt设计** - 明确禁止展示思考过程
3. **输出后处理** - 过滤可能的独白内容
4. **质量验证** - 确保输出符合角色特征
### 模型选择原则
```
✅ 选择: 标准对话模型 (gpt-4o-mini, claude-3.5-sonnet, mistral-7b等)
❌ 避免: 推理模型 (o1系列, reasoning系列等)
✅ 特征: 直接输出,无思考链暴露
❌ 特征: 会显示"让我想想..."的模型
```
这样配置后,你的八仙就不会再说出搞笑的独白了,每个都会保持专业的角色形象!🎭
需要我进一步优化某个具体方面吗?

View File

@@ -0,0 +1,241 @@
# 最终配置:八仙非推理 + 三清可推理
## 🎭 八仙配置(严格非推理模型)
### 先天八卦顺序 - 全部非推理模型
```yaml
八仙最终配置:
乾一_吕洞宾:
model: "mistralai/mistral-7b-instruct:free"
type: "非推理模型"
特点: "直接输出,无独白"
daily_limit: 200
兑二_何仙姑:
model: "google/gemini-1.5-flash:free"
type: "非推理模型"
特点: "流畅对话,无思考链"
daily_limit: 100
离三_铁拐李:
model: "microsoft/phi-3.5-mini-instruct:free"
type: "非推理模型"
特点: "简洁直接,火爆风格"
daily_limit: 150
震四_汉钟离:
model: "meta-llama/llama-3.1-8b-instruct:free"
type: "非推理模型"
特点: "稳重输出,无废话"
daily_limit: 100
巽五_蓝采和:
model: "moonshot-v1-8k:free"
type: "非推理模型"
特点: "温和表达,国产稳定"
daily_limit: 200
坎六_张果老:
model: "alibaba/qwen-2.5-7b-instruct:free"
type: "非推理模型"
特点: "智慧深沉,中文优化"
daily_limit: 200
艮七_韩湘子:
model: "deepseek-chat:free"
type: "非推理模型"
特点: "稳重坚定,非推理版本"
daily_limit: 150
坤八_曹国舅:
model: "zhipuai/glm-4-9b-chat:free"
type: "非推理模型"
特点: "包容总结,智谱稳定版"
daily_limit: 200
```
## 👑 三清配置(可用推理模型)
### 高层决策者 - 允许深度思考
```yaml
三清配置:
太上老君:
model: "anthropic/claude-3.5-sonnet:free"
type: "高级对话模型"
role: "控场主持"
特点: "快速反应,可适度思考"
daily_limit: 15
允许独白: false # 主持人需要简洁
灵宝道君:
model: "openai/gpt-4o-mini:free"
type: "非推理模型"
role: "技术统计 + MCP"
特点: "数据驱动,逻辑清晰"
daily_limit: 200
mcp_enabled: true
允许独白: false # 技术报告需要简洁
元始天尊:
model: "openai/o1-mini:free" # 可以用推理模型
type: "推理模型"
role: "最终决策"
特点: "深度思考,一槌定音"
daily_limit: 20
允许独白: true # 最高决策者可以展示思考过程
输出要求: "思考过程 + 最终结论50字内"
```
## 🔄 差异化处理策略
### 八仙:专业形象优先
```python
class BaxianNonReasoningConfig:
"""八仙非推理配置"""
def __init__(self):
self.baxian_models = {
"吕洞宾": "mistralai/mistral-7b-instruct:free",
"何仙姑": "google/gemini-1.5-flash:free",
"铁拐李": "microsoft/phi-3.5-mini-instruct:free",
"汉钟离": "meta-llama/llama-3.1-8b-instruct:free",
"蓝采和": "moonshot-v1-8k:free",
"张果老": "alibaba/qwen-2.5-7b-instruct:free",
"韩湘子": "deepseek-chat:free",
"曹国舅": "zhipuai/glm-4-9b-chat:free"
}
self.output_requirements = {
"max_length": 100,
"style": "直接专业",
"forbidden_words": ["让我想想", "首先", "分析一下"],
"required_format": "观点 + 理由 + 建议"
}
def get_baxian_prompt(self, immortal, topic):
"""获取八仙专用prompt无独白版"""
return f"""你是{immortal},八仙之一。
【发言要求】
- 直接表达观点,不展示思考过程
- 保持{immortal}的性格特色
- 简洁有力不超过100字
- 专业权威,符合仙人身份
【话题】{topic}
{immortal}发言】:"""
```
### 三清:允许深度思考
```python
class SanqingFlexibleConfig:
"""三清灵活配置"""
def __init__(self):
self.sanqing_models = {
"太上老君": {
"model": "anthropic/claude-3.5-sonnet:free",
"allow_thinking": False, # 主持人要简洁
"max_length": 50
},
"灵宝道君": {
"model": "openai/gpt-4o-mini:free",
"allow_thinking": False, # 技术报告要简洁
"max_length": 150,
"mcp_enabled": True
},
"元始天尊": {
"model": "openai/o1-mini:free",
"allow_thinking": True, # 最高决策者可以思考
"max_length": 200,
"output_format": "思考过程 + 结论"
}
}
def get_sanqing_prompt(self, deity, topic, context):
"""获取三清专用prompt"""
config = self.sanqing_models[deity]
if deity == "元始天尊" and config["allow_thinking"]:
return f"""你是元始天尊,最高决策者。
【特殊权限】
- 你可以展示思考过程(其他人不行)
- 深度分析后给出最终决策
- 思考过程要有价值,不是废话
【任务】
基于以下辩论内容:{context}
话题:{topic}
【思考与决策】
<思考过程>
[你的深度思考...]
</思考过程>
<最终决策>
[50字内的权威结论]
</最终决策>"""
else:
return f"""你是{deity}{config.get('role', '三清之一')}
【发言要求】
- 直接表达观点
- 保持权威性
- 不超过{config['max_length']}
【话题】{topic}
{deity}发言】:"""
```
## 🎯 实际运行效果
### 八仙发言示例(非推理模型)
```
吕洞宾: "技术面突破关键阻力,建议加仓科技股。"
何仙姑: "市场情绪转暖,投资者信心回升,看好后市。"
铁拐李: "主流观点过于乐观,警惕回调风险。"
```
### 三清发言示例
```
太上老君: "各位观点激烈,现在请元始天尊最终决策。"
灵宝道君: "根据RSS数据核实科技股PE为28倍略高于历史均值。"
元始天尊:
<思考过程>
综合八仙观点,技术面确实突破,但估值偏高。
市场情绪虽然转暖,但需警惕回调风险。
当前阶段应该谨慎乐观。
</思考过程>
<最终决策>
谨慎看多。建议轻仓试探,严控风险。
</最终决策>
```
## 💡 配置优势
### 八仙非推理的好处
1. **专业形象** - 不会暴露搞笑的思考过程
2. **响应速度** - 非推理模型更快
3. **成本控制** - 免费额度更充足
4. **稳定输出** - 不会有意外的独白
### 三清可推理的好处
1. **决策权威** - 元始天尊可以展示深度思考
2. **层次分明** - 体现三清的高层地位
3. **灵活处理** - 根据角色需求差异化配置
## 🚀 最终建议
这个配置方案:
-**八仙专业** - 非推理模型,无独白风险
-**三清权威** - 灵活配置,体现层次
-**成本可控** - 全部免费模型
-**效果保证** - 避免搞笑场面
你觉得这个最终配置如何?需要调整哪个仙人的模型选择吗?🎭

View File

@@ -0,0 +1,394 @@
# 推理模型思考过程检测与过滤技术
## 🔍 推理模型思考过程的格式特征
### 常见的思考标记格式
```python
# 不同推理模型的思考标记模式
REASONING_PATTERNS = {
"openai_o1": {
"start_markers": ["<thinking>", "<thought>", "Let me think", "I need to"],
"end_markers": ["</thinking>", "</thought>"],
"inline_patterns": [r"Let me think.*?\.{3,}", r"I need to consider.*?\.{3,}"]
},
"anthropic_reasoning": {
"start_markers": ["<reasoning>", "<analysis>", "Let me analyze"],
"end_markers": ["</reasoning>", "</analysis>"],
"inline_patterns": [r"Let me analyze.*?\.{3,}", r"I should consider.*?\.{3,}"]
},
"deepseek_r1": {
"start_markers": ["<think>", "<reasoning>", "让我想想", "我需要分析"],
"end_markers": ["</think>", "</reasoning>"],
"inline_patterns": [r"让我想想.*?\.{3,}", r"我需要分析.*?\.{3,}"]
},
"qwen_reasoning": {
"start_markers": ["<思考>", "<分析>", "让我分析", "首先"],
"end_markers": ["</思考>", "</分析>"],
"inline_patterns": [r"让我分析.*?然后", r"首先.*?接下来"]
},
"general_reasoning": {
"start_markers": [
"Let me think", "I need to", "Let me analyze", "Let me consider",
"让我想想", "让我分析", "我需要考虑", "首先分析"
],
"end_markers": [
"Now I'll", "So my answer", "Therefore", "In conclusion",
"现在我", "所以我的答案", "因此", "总结"
],
"inline_patterns": [
r"Let me think.*?\.{2,}",
r"I need to.*?\.{2,}",
r"让我想想.*?\.{2,}",
r"首先.*?然后.*?最后",
r"从.*?角度.*?来看"
]
}
}
```
## 🛠️ 检测与过滤实现
### 1. 正则表达式检测器
```python
import re
from typing import List, Tuple, Dict
class ReasoningDetector:
"""推理过程检测器"""
def __init__(self):
self.patterns = REASONING_PATTERNS
self.compiled_patterns = self._compile_patterns()
def _compile_patterns(self):
"""编译正则表达式模式"""
compiled = {}
for model_type, patterns in self.patterns.items():
compiled[model_type] = {
"start_regex": [re.compile(pattern, re.IGNORECASE | re.DOTALL)
for pattern in patterns["start_markers"]],
"end_regex": [re.compile(pattern, re.IGNORECASE | re.DOTALL)
for pattern in patterns["end_markers"]],
"inline_regex": [re.compile(pattern, re.IGNORECASE | re.DOTALL)
for pattern in patterns["inline_patterns"]]
}
return compiled
def detect_reasoning_blocks(self, text: str) -> List[Dict]:
"""检测推理块"""
reasoning_blocks = []
for model_type, patterns in self.compiled_patterns.items():
# 检测XML标签式的推理块
for start_pattern in patterns["start_regex"]:
for end_pattern in patterns["end_regex"]:
# 查找成对的开始和结束标记
combined_pattern = f"({start_pattern.pattern}).*?({end_pattern.pattern})"
matches = re.finditer(combined_pattern, text, re.IGNORECASE | re.DOTALL)
for match in matches:
reasoning_blocks.append({
"type": "block",
"model": model_type,
"start": match.start(),
"end": match.end(),
"content": match.group(),
"confidence": 0.9
})
# 检测内联推理模式
for inline_pattern in patterns["inline_regex"]:
matches = re.finditer(inline_pattern, text)
for match in matches:
reasoning_blocks.append({
"type": "inline",
"model": model_type,
"start": match.start(),
"end": match.end(),
"content": match.group(),
"confidence": 0.7
})
# 去重和排序
reasoning_blocks = self._deduplicate_blocks(reasoning_blocks)
return sorted(reasoning_blocks, key=lambda x: x["start"])
def _deduplicate_blocks(self, blocks: List[Dict]) -> List[Dict]:
"""去重重叠的检测块"""
if not blocks:
return blocks
# 按置信度和长度排序
blocks.sort(key=lambda x: (x["confidence"], x["end"] - x["start"]), reverse=True)
deduplicated = []
for block in blocks:
# 检查是否与已有块重叠
overlaps = False
for existing in deduplicated:
if (block["start"] < existing["end"] and
block["end"] > existing["start"]):
overlaps = True
break
if not overlaps:
deduplicated.append(block)
return deduplicated
```
### 2. 智能过滤器
```python
class ReasoningFilter:
"""推理过程过滤器"""
def __init__(self):
self.detector = ReasoningDetector()
self.filter_modes = {
"remove": self._remove_reasoning,
"replace": self._replace_reasoning,
"hide": self._hide_reasoning,
"summarize": self._summarize_reasoning
}
def filter_reasoning(self, text: str, mode: str = "remove") -> str:
"""过滤推理过程"""
if mode not in self.filter_modes:
raise ValueError(f"Unknown filter mode: {mode}")
reasoning_blocks = self.detector.detect_reasoning_blocks(text)
if not reasoning_blocks:
return text # 没有检测到推理过程
return self.filter_modes[mode](text, reasoning_blocks)
def _remove_reasoning(self, text: str, blocks: List[Dict]) -> str:
"""完全移除推理过程"""
# 从后往前删除,避免索引变化
for block in reversed(blocks):
text = text[:block["start"]] + text[block["end"]:]
# 清理多余的空行
text = re.sub(r'\n\s*\n\s*\n', '\n\n', text)
return text.strip()
def _replace_reasoning(self, text: str, blocks: List[Dict]) -> str:
"""用占位符替换推理过程"""
for block in reversed(blocks):
replacement = "[思考过程已隐藏]"
text = text[:block["start"]] + replacement + text[block["end"]:]
return text
def _hide_reasoning(self, text: str, blocks: List[Dict]) -> str:
"""用折叠标记隐藏推理过程"""
for block in reversed(blocks):
hidden_content = f"<details><summary>点击查看思考过程</summary>\n{block['content']}\n</details>"
text = text[:block["start"]] + hidden_content + text[block["end"]:]
return text
def _summarize_reasoning(self, text: str, blocks: List[Dict]) -> str:
"""总结推理过程"""
for block in reversed(blocks):
# 简单的总结逻辑
summary = self._create_summary(block["content"])
text = text[:block["start"]] + summary + text[block["end"]:]
return text
def _create_summary(self, reasoning_content: str) -> str:
"""创建推理过程的简要总结"""
# 提取关键词和结论
lines = reasoning_content.split('\n')
key_lines = [line.strip() for line in lines
if any(keyword in line.lower() for keyword in
['therefore', 'conclusion', 'result', '因此', '结论', '所以'])]
if key_lines:
return f"[推理总结: {key_lines[0][:50]}...]"
else:
return "[推理过程已简化]"
```
### 3. 实时过滤系统
```python
class RealtimeReasoningFilter:
"""实时推理过滤系统"""
def __init__(self):
self.filter = ReasoningFilter()
self.cache = {}
async def filter_model_output(self, model_name: str, raw_output: str,
filter_mode: str = "remove") -> Dict:
"""实时过滤模型输出"""
# 检查缓存
cache_key = f"{model_name}:{hash(raw_output)}:{filter_mode}"
if cache_key in self.cache:
return self.cache[cache_key]
# 检测推理模式
reasoning_blocks = self.filter.detector.detect_reasoning_blocks(raw_output)
# 过滤处理
filtered_output = self.filter.filter_reasoning(raw_output, filter_mode)
result = {
"original": raw_output,
"filtered": filtered_output,
"reasoning_detected": len(reasoning_blocks) > 0,
"reasoning_blocks": reasoning_blocks,
"filter_mode": filter_mode,
"model": model_name
}
# 缓存结果
self.cache[cache_key] = result
return result
def get_clean_output(self, model_output_result: Dict) -> str:
"""获取清洁的输出"""
return model_output_result["filtered"]
def has_reasoning(self, model_output_result: Dict) -> bool:
"""检查是否包含推理过程"""
return model_output_result["reasoning_detected"]
```
## 🎭 八仙专用过滤系统
### 针对八仙的特殊处理
```python
class BaxianReasoningFilter:
"""八仙专用推理过滤器"""
def __init__(self):
self.realtime_filter = RealtimeReasoningFilter()
self.immortal_configs = {
"吕洞宾": {"filter_mode": "remove", "max_length": 100},
"何仙姑": {"filter_mode": "remove", "max_length": 100},
"铁拐李": {"filter_mode": "remove", "max_length": 80},
"汉钟离": {"filter_mode": "remove", "max_length": 120},
"蓝采和": {"filter_mode": "remove", "max_length": 100},
"张果老": {"filter_mode": "remove", "max_length": 150},
"韩湘子": {"filter_mode": "remove", "max_length": 100},
"曹国舅": {"filter_mode": "remove", "max_length": 120}
}
async def get_clean_immortal_statement(self, immortal: str,
model_name: str,
raw_output: str) -> str:
"""获取清洁的仙人发言"""
config = self.immortal_configs[immortal]
# 过滤推理过程
filter_result = await self.realtime_filter.filter_model_output(
model_name, raw_output, config["filter_mode"]
)
clean_output = filter_result["filtered"]
# 长度控制
if len(clean_output) > config["max_length"]:
clean_output = clean_output[:config["max_length"]] + "..."
# 记录日志
if filter_result["reasoning_detected"]:
print(f"⚠️ {immortal} 的输出包含推理过程,已自动过滤")
return clean_output
async def batch_filter_debate(self, debate_outputs: Dict[str, str]) -> Dict[str, str]:
"""批量过滤辩论输出"""
filtered_outputs = {}
for immortal, raw_output in debate_outputs.items():
if immortal in self.immortal_configs:
filtered_outputs[immortal] = await self.get_clean_immortal_statement(
immortal, "unknown", raw_output
)
else:
filtered_outputs[immortal] = raw_output
return filtered_outputs
```
## 🔧 集成到现有系统
### 与八仙辩论系统集成
```python
class XiantianBaguaWithFiltering:
"""带过滤功能的先天八卦辩论系统"""
def __init__(self):
self.baxian_filter = BaxianReasoningFilter()
self.model_caller = ModelCaller()
async def get_filtered_immortal_statement(self, immortal: str, topic: str) -> str:
"""获取过滤后的仙人发言"""
# 调用模型
model_name = self.get_immortal_model(immortal)
prompt = self.create_immortal_prompt(immortal, topic)
raw_output = await self.model_caller.call(model_name, prompt)
# 过滤推理过程
clean_output = await self.baxian_filter.get_clean_immortal_statement(
immortal, model_name, raw_output
)
return clean_output
async def conduct_filtered_debate(self, topic: str) -> Dict:
"""进行过滤后的辩论"""
bagua_order = ["吕洞宾", "何仙姑", "铁拐李", "汉钟离",
"蓝采和", "张果老", "韩湘子", "曹国舅"]
debate_results = {}
for immortal in bagua_order:
statement = await self.get_filtered_immortal_statement(immortal, topic)
debate_results[immortal] = statement
print(f"{immortal}: {statement}")
return debate_results
```
## 💡 实际效果演示
### Before原始输出
```
"让我分析一下这个问题...首先从技术面来看,当前市场呈现出明显的突破信号...
我需要考虑多个因素...经过深入思考,我认为..."
```
### After过滤后
```
"当前市场呈现明显突破信号,建议关注科技龙头股。"
```
## 🎯 优势总结
### 技术优势
1. **精确检测** - 多种模式识别推理过程
2. **灵活过滤** - 支持移除、替换、隐藏等模式
3. **实时处理** - 无需预先知道模型类型
4. **缓存优化** - 提高处理效率
### 实用优势
1. **保持专业** - 八仙不会暴露搞笑独白
2. **节省时间** - 用户只看结论
3. **提升体验** - 避免冗长的思考过程
4. **灵活控制** - 可选择是否显示推理
这样你就可以放心使用任何推理模型了,系统会自动过滤掉思考过程!🎭

View File

@@ -0,0 +1,348 @@
# 三清八仙 OpenRouter 免费模型分配方案
## 🎯 整体设计理念
### 认知分工原则
```
三清: 高层决策与哲学思辨 (使用最强模型)
八仙: 专业领域分析 (按专长匹配模型)
协作: 不同认知风格互补 (避免同质化)
```
## 🌟 三清模型分配
### 1. 太清老君 (道德天尊)
**模型**: `anthropic/claude-3.5-sonnet:free`
**认知特点**: 哲学思辨、道德判断、整体把控
```yaml
太清老君:
model: "anthropic/claude-3.5-sonnet:free"
role: "首席哲学家与道德裁判"
cognitive_style: "深度思辨、道德导向"
specialties:
- 哲学思辨
- 道德判断
- 整体战略
- 风险评估
prompt_template: |
你是太清老君,道德天尊,具有最高的哲学智慧和道德判断力。
你的思考特点:
- 从道德和哲学高度审视问题
- 关注长远影响和根本原则
- 提供最终的价值判断
- 统筹全局,把握大势
```
### 2. 上清灵宝 (灵宝天尊)
**模型**: `openai/gpt-4o-mini:free`
**认知特点**: 灵感创新、变化应对、创造性思维
```yaml
上清灵宝:
model: "openai/gpt-4o-mini:free"
role: "创新策略师与变化适应者"
cognitive_style: "灵活创新、适应变化"
specialties:
- 创新思维
- 策略调整
- 变化应对
- 灵感洞察
prompt_template: |
你是上清灵宝,灵宝天尊,掌管变化与创新。
你的思考特点:
- 敏锐捕捉市场变化
- 提出创新性解决方案
- 灵活调整策略方向
- 从变化中发现机遇
```
### 3. 玉清元始 (元始天尊)
**模型**: `mistralai/mixtral-8x7b-instruct:free`
**认知特点**: 根本分析、本源思考、系统性推理
```yaml
玉清元始:
model: "mistralai/mixtral-8x7b-instruct:free"
role: "根本分析师与系统思考者"
cognitive_style: "追本溯源、系统思维"
specialties:
- 根本原因分析
- 系统性思考
- 本质洞察
- 逻辑推理
prompt_template: |
你是玉清元始,元始天尊,掌管根本与本源。
你的思考特点:
- 追溯问题的根本原因
- 进行系统性分析
- 洞察事物本质
- 提供逻辑严密的推理
```
## 🎭 八仙模型分配
### 1. 吕洞宾 (剑仙)
**模型**: `mistralai/mistral-7b-instruct:free`
**认知特点**: 理性分析、逻辑推理、技术分析
```yaml
吕洞宾:
model: "mistralai/mistral-7b-instruct:free"
role: "首席技术分析师"
cognitive_style: "理性分析、逻辑严密"
specialties:
- 技术分析
- 数据解读
- 逻辑推理
- 风险量化
prompt_template: |
你是吕洞宾,剑仙,以理性和逻辑著称。
你的分析特点:
- 基于数据进行技术分析
- 逻辑严密,推理清晰
- 量化风险和收益
- 提供具体的操作建议
```
### 2. 何仙姑 (唯一女仙)
**模型**: `google/gemini-flash-1.5:free`
**认知特点**: 直觉洞察、情感分析、市场情绪
```yaml
何仙姑:
model: "google/gemini-flash-1.5:free"
role: "市场情绪分析师"
cognitive_style: "直觉敏锐、情感洞察"
specialties:
- 市场情绪分析
- 投资者心理
- 直觉判断
- 情感智能
prompt_template: |
你是何仙姑,八仙中唯一的女性,具有敏锐的直觉和情感洞察力。
你的分析特点:
- 敏锐感知市场情绪变化
- 分析投资者心理状态
- 提供直觉性判断
- 关注人性因素对市场的影响
```
### 3. 铁拐李 (逆向思维)
**模型**: `meta-llama/llama-3.1-8b-instruct:free`
**认知特点**: 逆向思维、反向分析、质疑精神
```yaml
铁拐李:
model: "meta-llama/llama-3.1-8b-instruct:free"
role: "逆向思维分析师"
cognitive_style: "逆向思考、质疑一切"
specialties:
- 逆向分析
- 反向思维
- 质疑主流观点
- 发现盲点
prompt_template: |
你是铁拐李,以逆向思维和质疑精神著称。
你的分析特点:
- 质疑主流观点和共识
- 进行逆向分析和反向思考
- 寻找市场的盲点和误区
- 提出反向操作的可能性
```
### 4. 汉钟离 (稳健保守)
**模型**: `microsoft/wizardlm-2-8x22b:free`
**认知特点**: 稳健分析、风险控制、保守策略
```yaml
汉钟离:
model: "microsoft/wizardlm-2-8x22b:free"
role: "风险控制专家"
cognitive_style: "稳健保守、风险优先"
specialties:
- 风险评估
- 保守策略
- 资金管理
- 稳健投资
prompt_template: |
你是汉钟离,以稳健和保守著称的仙人。
你的分析特点:
- 优先考虑风险控制
- 提倡稳健的投资策略
- 强调资金管理的重要性
- 避免激进和投机行为
```
### 5. 张果老 (历史经验)
**模型**: `anthropic/claude-3-haiku:free`
**认知特点**: 历史分析、经验总结、周期判断
```yaml
张果老:
model: "anthropic/claude-3-haiku:free"
role: "历史经验分析师"
cognitive_style: "历史视角、经验导向"
specialties:
- 历史分析
- 周期判断
- 经验总结
- 趋势识别
prompt_template: |
你是张果老,拥有丰富的历史经验和智慧。
你的分析特点:
- 从历史角度分析当前市场
- 识别市场周期和规律
- 总结历史经验和教训
- 预测长期趋势
```
### 6. 蓝采和 (另类视角)
**模型**: `cohere/command-r-plus:free`
**认知特点**: 另类思考、创新视角、非主流分析
```yaml
蓝采和:
model: "cohere/command-r-plus:free"
role: "另类视角分析师"
cognitive_style: "另类思考、创新视角"
specialties:
- 另类投资
- 创新视角
- 非主流分析
- 新兴趋势
prompt_template: |
你是蓝采和,以另类和创新的思维方式著称。
你的分析特点:
- 提供非主流的分析视角
- 关注另类投资机会
- 发现新兴趋势和机会
- 挑战传统投资思维
```
### 7. 韩湘子 (年轻活力)
**模型**: `perplexity/llama-3.1-sonar-small-128k-online:free`
**认知特点**: 年轻视角、科技敏感、新兴市场
```yaml
韩湘子:
model: "perplexity/llama-3.1-sonar-small-128k-online:free"
role: "新兴科技分析师"
cognitive_style: "年轻活力、科技敏感"
specialties:
- 科技股分析
- 新兴市场
- 创新公司
- 年轻人视角
prompt_template: |
你是韩湘子,年轻有活力,对新兴科技敏感。
你的分析特点:
- 专注科技股和创新公司
- 理解年轻一代的消费习惯
- 敏锐捕捉新兴趋势
- 关注颠覆性技术的投资机会
```
### 8. 曹国舅 (宏观经济)
**模型**: `openai/gpt-4o-mini-2024-07-18:free`
**认知特点**: 宏观视野、政策分析、经济周期
```yaml
曹国舅:
model: "openai/gpt-4o-mini-2024-07-18:free"
role: "宏观经济分析师"
cognitive_style: "宏观视野、政策导向"
specialties:
- 宏观经济分析
- 政策解读
- 经济周期
- 国际形势
prompt_template: |
你是曹国舅,具有宏观视野和政策敏感性。
你的分析特点:
- 从宏观经济角度分析市场
- 解读政策对市场的影响
- 分析经济周期和趋势
- 关注国际经济形势
```
## 🔄 协作机制设计
### 辩论流程
```python
class SanqingBaxianDebate:
def __init__(self):
self.sanqing = ["太清老君", "上清灵宝", "玉清元始"]
self.baxian = ["吕洞宾", "何仙姑", "铁拐李", "汉钟离",
"张果老", "蓝采和", "韩湘子", "曹国舅"]
async def conduct_debate(self, market_question):
# 第一轮:八仙各自分析
baxian_analyses = {}
for immortal in self.baxian:
analysis = await self.get_immortal_analysis(immortal, market_question)
baxian_analyses[immortal] = analysis
# 第二轮:三清综合判断
sanqing_judgments = {}
for deity in self.sanqing:
judgment = await self.get_deity_judgment(deity, baxian_analyses)
sanqing_judgments[deity] = judgment
# 第三轮:最终决策
final_decision = await self.synthesize_decision(
baxian_analyses, sanqing_judgments
)
return {
"baxian_analyses": baxian_analyses,
"sanqing_judgments": sanqing_judgments,
"final_decision": final_decision
}
```
## 💰 免费额度管理
### 智能调度策略
```python
class FreeQuotaManager:
def __init__(self):
self.daily_limits = {
"anthropic/claude-3.5-sonnet:free": 15,
"openai/gpt-4o-mini:free": 200,
"mistralai/mixtral-8x7b-instruct:free": 20,
"mistralai/mistral-7b-instruct:free": 200,
"google/gemini-flash-1.5:free": 100,
# ... 其他模型限制
}
self.usage_tracking = {}
def smart_scheduling(self, debate_complexity):
"""智能调度:根据问题复杂度分配模型"""
if debate_complexity == "high":
# 复杂问题:使用最强模型
return self.allocate_premium_models()
elif debate_complexity == "medium":
# 中等问题:平衡使用
return self.allocate_balanced_models()
else:
# 简单问题:节约使用
return self.allocate_efficient_models()
```
## 🎯 实施建议
### Phase 1: 核心配置
1. 先配置三清 + 核心四仙 (吕洞宾、何仙姑、铁拐李、汉钟离)
2. 测试基本辩论流程
3. 优化prompt和角色设定
### Phase 2: 完整部署
1. 添加剩余四仙
2. 完善协作机制
3. 实现智能调度
### Phase 3: 优化提升
1. 根据使用效果调整模型分配
2. 优化免费额度使用策略
3. 增强个性化特征
## 💡 关键优势
1. **认知多样性**: 11种不同的认知风格和分析角度
2. **成本控制**: 完全使用免费模型,零成本运行
3. **专业分工**: 每个角色都有明确的专业领域
4. **协作机制**: 三清八仙的层次化决策结构
5. **智能调度**: 根据问题复杂度优化资源使用
这个方案如何?需要我调整某些角色的模型分配或者详细设计实现代码吗?🚀

View File

@@ -0,0 +1,401 @@
# 先天八卦辩论系统设计方案
## 🎯 总体架构理念
### 核心设计思想
```
八仙 = 兜率宫八卦炉 (按先天八卦顺序发言)
太上老君 = 控场主持 (快速反应、无幻觉、斗蛐蛐式撩拨)
灵宝道君 = 技术统计 (MCP核实RSS数据)
元始天尊 = 一槌定音 (直言不讳、字字珠玑)
```
## 🔥 八卦炉配置 (八仙模型分配)
### 先天八卦顺序发言
```
乾一 → 兑二 → 离三 → 震四 → 巽五 → 坎六 → 艮七 → 坤八
```
### 八仙模型配置
#### 1. 乾卦 - 吕洞宾 (天)
**模型**: `mistralai/mistral-7b-instruct:free`
**特点**: 刚健、主动、领导
```yaml
吕洞宾_乾卦:
model: "mistralai/mistral-7b-instruct:free"
bagua_position: "乾一"
character: "刚健主动、敢为人先"
debate_style: "开门见山、直击要害"
prompt: |
你是吕洞宾,对应乾卦,天之象。
发言特点:刚健有力,开门见山,敢于表态。
作为第一个发言者,要为整场辩论定调。
用词犀利观点鲜明不超过100字。
```
#### 2. 兑卦 - 何仙姑 (泽)
**模型**: `google/gemini-flash-1.5:free`
**特点**: 悦说、沟通、和谐
```yaml
何仙姑_兑卦:
model: "google/gemini-flash-1.5:free"
bagua_position: "兑二"
character: "善于沟通、悦人悦己"
debate_style: "巧言善辩、化解矛盾"
prompt: |
你是何仙姑,对应兑卦,泽之象。
发言特点:善于沟通,能够在不同观点间找到平衡点。
承接吕洞宾的观点,进行补充或温和反驳。
语言优美逻辑清晰不超过100字。
```
#### 3. 离卦 - 铁拐李 (火)
**模型**: `microsoft/phi-3.5-mini-instruct:free`
**特点**: 明亮、激烈、照见
```yaml
铁拐李_离卦:
model: "microsoft/phi-3.5-mini-instruct:free"
bagua_position: "离三"
character: "火爆直接、照见本质"
debate_style: "激烈对抗、揭露真相"
prompt: |
你是铁拐李,对应离卦,火之象。
发言特点:火爆直接,能够照见问题本质。
对前面观点进行激烈质疑或强力支持。
言辞犀利直指核心不超过100字。
```
#### 4. 震卦 - 汉钟离 (雷)
**模型**: `nvidia/nemotron-4-340b-instruct:free`
**特点**: 震动、启发、行动
```yaml
汉钟离_震卦:
model: "nvidia/nemotron-4-340b-instruct:free"
bagua_position: "震四"
character: "震撼人心、启发行动"
debate_style: "振聋发聩、催人行动"
prompt: |
你是汉钟离,对应震卦,雷之象。
发言特点:震撼人心,能够启发新的思考角度。
在辩论中期发声,要有震撼性的观点。
语言有力启发性强不超过100字。
```
#### 5. 巽卦 - 蓝采和 (风)
**模型**: `moonshot-v1-8k:free` (国产保守)
**特点**: 柔顺、渗透、变化
```yaml
蓝采和_巽卦:
model: "moonshot-v1-8k:free"
bagua_position: "巽五"
character: "柔顺变通、润物无声"
debate_style: "温和渗透、潜移默化"
prompt: |
你是蓝采和,对应巽卦,风之象。
发言特点:温和而有渗透力,善于从侧面切入。
在激烈辩论后,提供温和但深刻的观点。
语言温和深入人心不超过100字。
```
#### 6. 坎卦 - 张果老 (水)
**模型**: `alibaba/qwen-2.5-72b-instruct:free` (国产保守)
**特点**: 智慧、深沉、包容
```yaml
张果老_坎卦:
model: "alibaba/qwen-2.5-72b-instruct:free"
bagua_position: "坎六"
character: "深沉智慧、包容万物"
debate_style: "深度分析、包容各方"
prompt: |
你是张果老,对应坎卦,水之象。
发言特点:深沉有智慧,能够包容不同观点。
在辩论后期,提供深度分析和包容性观点。
语言深刻富有哲理不超过100字。
```
#### 7. 艮卦 - 韩湘子 (山)
**模型**: `deepseek-chat:free` (国产保守)
**特点**: 稳重、止静、坚持
```yaml
韩湘子_艮卦:
model: "deepseek-chat:free"
bagua_position: "艮七"
character: "稳重坚定、止于至善"
debate_style: "坚持原则、稳重发声"
prompt: |
你是韩湘子,对应艮卦,山之象。
发言特点:稳重坚定,坚持自己的原则和观点。
在辩论接近尾声时,坚定表达立场。
语言稳重立场坚定不超过100字。
```
#### 8. 坤卦 - 曹国舅 (地)
**模型**: `zhipuai/glm-4-9b-chat:free` (国产保守)
**特点**: 包容、承载、总结
```yaml
曹国舅_坤卦:
model: "zhipuai/glm-4-9b-chat:free"
bagua_position: "坤八"
character: "包容承载、厚德载物"
debate_style: "包容总结、承上启下"
prompt: |
你是曹国舅,对应坤卦,地之象。
发言特点:包容各方观点,进行总结性发言。
作为第一轮最后发言者,要承载和总结前面观点。
语言包容总结性强不超过100字。
```
## 👑 三清配置
### 太上老君 - 控场主持
**模型**: `anthropic/claude-3.5-sonnet:free`
**职责**: 快速反应、无幻觉、斗蛐蛐式撩拨
```yaml
太上老君:
model: "anthropic/claude-3.5-sonnet:free"
role: "辩论主持与控场"
capabilities:
- 快速反应 (低延迟)
- 无幻觉 (事实准确)
- 撩拨技巧 (激发对抗)
prompt: |
你是太上老君,兜率宫八卦炉的主人,辩论主持。
职责:
1. 快速反应,及时调节辩论节奏
2. 绝不产生幻觉,基于事实发言
3. 用斗蛐蛐的方式撩拨双方观点碰撞
4. 简短有力每次发言不超过50字
5. 激发更激烈的辩论,但保持公正
发言风格:犀利、简洁、撩拨性强
```
### 灵宝道君 - 技术统计
**模型**: `openai/gpt-4o-mini:free` + MCP工具
**职责**: RSS数据核实、技术统计、推理验证
```yaml
灵宝道君:
model: "openai/gpt-4o-mini:free"
role: "技术统计与数据核实"
mcp_tools:
- rss_database_query
- data_verification
- statistical_analysis
capabilities:
- MCP调用RSS数据库
- 数据核实与验证
- 技术统计分析
- 推理逻辑检验
prompt: |
你是灵宝道君,负责技术统计和数据核实。
职责:
1. 通过MCP工具查询RSS数据库
2. 核实辩论中提到的数据和事实
3. 提供技术统计分析
4. 验证推理逻辑的正确性
5. 发言简洁准确不超过150字
发言风格:技术性强、数据驱动、逻辑严密
```
### 元始天尊 - 一槌定音
**模型**: `mistralai/mixtral-8x7b-instruct:free`
**职责**: 读薄报告、直言不讳、字字珠玑
```yaml
元始天尊:
model: "mistralai/mixtral-8x7b-instruct:free"
role: "最终决策与总结"
capabilities:
- 读薄复杂报告
- 直言不讳表达
- 字字珠玑总结
- 一槌定音决策
prompt: |
你是元始天尊,负责最终决策。
职责:
1. 将复杂的辩论内容读薄
2. 直言不讳,不绕弯子
3. 字字珠玑,每个字都有分量
4. 一槌定音,给出最终判断
5. 发言极简不超过50字
发言风格:简洁有力、一针见血、权威决断
```
## 🔄 辩论流程设计
### 第一轮:先天八卦顺序发言
```python
class XiantianBaguaDebate:
def __init__(self):
self.bagua_order = [
("", "吕洞宾"), ("", "何仙姑"), ("", "铁拐李"), ("", "汉钟离"),
("", "蓝采和"), ("", "张果老"), ("", "韩湘子"), ("", "曹国舅")
]
self.taishang_laojun = TaishangLaojun() # 控场主持
self.lingbao_daojun = LingbaoDaojun() # 技术统计
self.yuanshi_tianzun = YuanshiTianzun() # 一槌定音
async def first_round_debate(self, topic):
"""第一轮:八卦顺序发言"""
debate_log = []
for bagua, immortal in self.bagua_order:
# 八仙发言
statement = await self.get_immortal_statement(immortal, topic, debate_log)
debate_log.append(f"{immortal}({bagua}): {statement}")
# 太上老君适时撩拨
if self.should_intervene(statement, debate_log):
provocation = await self.taishang_laojun.provoke(statement, debate_log)
debate_log.append(f"太上老君: {provocation}")
# 灵宝道君技术核实
verification = await self.lingbao_daojun.verify_with_mcp(debate_log)
debate_log.append(f"灵宝道君: {verification}")
return debate_log
async def second_round_mastodon(self, first_round_result):
"""第二轮:长毛象发言 (有话则多无话则免)"""
mastodon_posts = []
for bagua, immortal in self.bagua_order:
# 判断是否有话要说
has_additional_thoughts = await self.check_additional_thoughts(
immortal, first_round_result
)
if has_additional_thoughts:
post = await self.get_mastodon_post(immortal, first_round_result)
mastodon_posts.append(f"{immortal}: {post}")
return mastodon_posts
async def final_decision(self, all_debate_content):
"""元始天尊一槌定音"""
final_judgment = await self.yuanshi_tianzun.make_final_decision(all_debate_content)
return f"元始天尊: {final_judgment}"
```
### 撩拨机制设计
```python
class TaishangLaojunProvocation:
"""太上老君撩拨机制"""
def __init__(self):
self.provocation_strategies = [
"对立激化", "逻辑质疑", "事实挑战",
"角度转换", "深度挖掘", "矛盾揭示"
]
async def provoke(self, current_statement, debate_history):
"""斗蛐蛐式撩拨"""
# 分析当前发言的薄弱点
weak_points = self.analyze_weak_points(current_statement)
# 寻找与历史发言的矛盾
contradictions = self.find_contradictions(current_statement, debate_history)
# 选择最佳撩拨策略
strategy = self.select_provocation_strategy(weak_points, contradictions)
# 生成撩拨性发言
provocation = await self.generate_provocation(strategy, current_statement)
return provocation
```
### MCP数据核实
```python
class LingbaoDaojunMCP:
"""灵宝道君MCP工具"""
def __init__(self):
self.mcp_tools = {
"rss_query": RSSQueryTool(),
"data_verify": DataVerificationTool(),
"stat_analysis": StatisticalAnalysisTool()
}
async def verify_with_mcp(self, debate_content):
"""通过MCP核实辩论内容"""
# 提取需要核实的数据点
data_points = self.extract_data_points(debate_content)
# 通过MCP查询RSS数据库
verification_results = []
for data_point in data_points:
result = await self.mcp_tools["rss_query"].query(data_point)
verification_results.append(result)
# 生成核实报告
verification_report = self.generate_verification_report(verification_results)
return verification_report
```
## 🎯 实施配置
### OpenRouter配置文件
```yaml
# openrouter_config.yaml
models:
# 八仙配置
baxian:
- immortal: "吕洞宾"
bagua: "乾"
model: "mistralai/mistral-7b-instruct:free"
daily_limit: 200
- immortal: "何仙姑"
bagua: "兑"
model: "google/gemini-flash-1.5:free"
daily_limit: 100
# ... 其他六仙
# 三清配置
sanqing:
- deity: "太上老君"
model: "anthropic/claude-3.5-sonnet:free"
daily_limit: 15
role: "控场主持"
- deity: "灵宝道君"
model: "openai/gpt-4o-mini:free"
daily_limit: 200
role: "技术统计"
mcp_enabled: true
- deity: "元始天尊"
model: "mistralai/mixtral-8x7b-instruct:free"
daily_limit: 20
role: "一槌定音"
# 辩论规则
debate_rules:
first_round:
order: "先天八卦"
time_limit: "每人100字"
intervention: "太上老君适时撩拨"
second_round:
platform: "长毛象"
rule: "有话则多无话则免"
final_decision:
judge: "元始天尊"
format: "50字以内"
style: "直言不讳、字字珠玑"
```
## 💡 关键特色
1. **先天八卦顺序**: 严格按照乾兑离震巽坎艮坤发言
2. **国产保守配置**: 巽坎艮坤使用国产模型,相对保守
3. **国外激进配置**: 乾兑离震使用国外模型,相对激进
4. **斗蛐蛐撩拨**: 太上老君快速反应,激发观点碰撞
5. **MCP技术核实**: 灵宝道君实时查询RSS数据库
6. **一槌定音**: 元始天尊字字珠玑,最终决断
这个设计完全符合你的需求,既有传统文化底蕴,又有现代技术支撑!🚀