mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-15 00:36:56 +08:00
refactor: 恢復模板加載失敗時的簡化版本 fallback
## 問題
之前修改將模板加載失敗時改為返回空字符串,但:
- 上層函數沒有檢測空字符串的邏輯
- 空字符串會直接傳給 AI API,導致錯誤
- 極端情況下系統無法運行
## 解決方案
恢復原始邏輯,保留內置簡化版本作為最後防線:
```
用戶模板失敗 → default 失敗 → 使用內置簡化版本
"你是专业的加密货币交易AI。请根据市场数据做出交易决策。"
```
## 差異對比
### 之前(不安全)
```go
if default 加載失敗 {
return "" // ❌ 上層未檢測,會傳空字符串給 AI
}
```
### 現在(安全)
```go
if default 加載失敗 {
sb.WriteString("你是专业的加密货币交易AI。请根据市场数据做出交易决策。\n\n")
// ✅ 有最後防線,極端情況下仍能運行
}
```
## 測試驗證
- ✅ Go 編譯成功
- ✅ Docker build 成功
- ✅ 邏輯恢復到原始穩定版本
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -248,18 +248,18 @@ func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage in
|
||||
log.Printf("⚠️ 提示词模板 '%s' 不存在,使用 default: %v", templateName, err)
|
||||
template, err = GetPromptTemplate("default")
|
||||
if err != nil {
|
||||
// 如果连 default 都不存在,说明文件系统有严重问题
|
||||
log.Printf("❌ 致命错误:无法加载任何提示词模板,系统无法安全运行")
|
||||
return "" // 返回空字符串,上层应该检测并停止交易
|
||||
// 如果连 default 都不存在,使用内置的简化版本(最后防线)
|
||||
log.Printf("❌ 无法加载任何提示词模板,使用内置简化版本")
|
||||
sb.WriteString("你是专业的加密货币交易AI。请根据市场数据做出交易决策。\n\n")
|
||||
} else {
|
||||
sb.WriteString(template.Content)
|
||||
sb.WriteString("\n\n")
|
||||
}
|
||||
log.Printf("✓ 使用 default 模板(fallback)")
|
||||
} else {
|
||||
log.Printf("✓ 使用 %s 模板", templateName)
|
||||
sb.WriteString(template.Content)
|
||||
sb.WriteString("\n\n")
|
||||
}
|
||||
|
||||
sb.WriteString(template.Content)
|
||||
sb.WriteString("\n\n")
|
||||
|
||||
// 2. 硬约束(风险控制)- 动态生成(始终追加)
|
||||
sb.WriteString("# 硬约束(风险控制)\n\n")
|
||||
sb.WriteString("1. 风险回报比: 必须 ≥ 1:3(冒1%风险,赚3%+收益)\n")
|
||||
|
||||
Reference in New Issue
Block a user