mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-17 09:24:36 +08:00
feat: Add SystemPromptTemplate edit support (PR #339)
- Allow users to modify SystemPromptTemplate when editing Trader - Enable dynamic strategy switching (default/aggressive/conservative) - Support A/B testing of different trading strategies - Maintain backward compatibility with existing data - Complete full data flow from database through UI to persistence
This commit is contained in:
@@ -453,17 +453,18 @@ func (s *Server) handleCreateTrader(c *gin.Context) {
|
|||||||
|
|
||||||
// UpdateTraderRequest 更新交易员请求
|
// UpdateTraderRequest 更新交易员请求
|
||||||
type UpdateTraderRequest struct {
|
type UpdateTraderRequest struct {
|
||||||
Name string `json:"name" binding:"required"`
|
Name string `json:"name" binding:"required"`
|
||||||
AIModelID string `json:"ai_model_id" binding:"required"`
|
AIModelID string `json:"ai_model_id" binding:"required"`
|
||||||
ExchangeID string `json:"exchange_id" binding:"required"`
|
ExchangeID string `json:"exchange_id" binding:"required"`
|
||||||
InitialBalance float64 `json:"initial_balance"`
|
InitialBalance float64 `json:"initial_balance"`
|
||||||
BTCETHLeverage int `json:"btc_eth_leverage"`
|
ScanIntervalMinutes int `json:"scan_interval_minutes"`
|
||||||
AltcoinLeverage int `json:"altcoin_leverage"`
|
BTCETHLeverage int `json:"btc_eth_leverage"`
|
||||||
TradingSymbols string `json:"trading_symbols"`
|
AltcoinLeverage int `json:"altcoin_leverage"`
|
||||||
CustomPrompt string `json:"custom_prompt"`
|
TradingSymbols string `json:"trading_symbols"`
|
||||||
OverrideBasePrompt bool `json:"override_base_prompt"`
|
CustomPrompt string `json:"custom_prompt"`
|
||||||
IsCrossMargin *bool `json:"is_cross_margin"`
|
OverrideBasePrompt bool `json:"override_base_prompt"`
|
||||||
ScanIntervalMinutes int `json:"scan_interval_minutes"`
|
SystemPromptTemplate string `json:"system_prompt_template"`
|
||||||
|
IsCrossMargin *bool `json:"is_cross_margin"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// handleUpdateTrader 更新交易员配置
|
// handleUpdateTrader 更新交易员配置
|
||||||
@@ -519,12 +520,18 @@ func (s *Server) handleUpdateTrader(c *gin.Context) {
|
|||||||
scanIntervalMinutes = existingTrader.ScanIntervalMinutes // 保持原值
|
scanIntervalMinutes = existingTrader.ScanIntervalMinutes // 保持原值
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置系统提示词模板,允许更新
|
||||||
|
systemPromptTemplate := req.SystemPromptTemplate
|
||||||
|
if systemPromptTemplate == "" {
|
||||||
|
systemPromptTemplate = existingTrader.SystemPromptTemplate // 保持原值
|
||||||
|
}
|
||||||
|
|
||||||
// 更新交易员配置
|
// 更新交易员配置
|
||||||
trader := &config.TraderRecord{
|
trader := &config.TraderRecord{
|
||||||
ID: traderID,
|
ID: traderID,
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
Name: req.Name,
|
Name: req.Name,
|
||||||
AIModelID: req.AIModelID,
|
AIModelID: req.AIModelID,
|
||||||
ExchangeID: req.ExchangeID,
|
ExchangeID: req.ExchangeID,
|
||||||
InitialBalance: req.InitialBalance,
|
InitialBalance: req.InitialBalance,
|
||||||
BTCETHLeverage: btcEthLeverage,
|
BTCETHLeverage: btcEthLeverage,
|
||||||
@@ -532,7 +539,7 @@ func (s *Server) handleUpdateTrader(c *gin.Context) {
|
|||||||
TradingSymbols: req.TradingSymbols,
|
TradingSymbols: req.TradingSymbols,
|
||||||
CustomPrompt: req.CustomPrompt,
|
CustomPrompt: req.CustomPrompt,
|
||||||
OverrideBasePrompt: req.OverrideBasePrompt,
|
OverrideBasePrompt: req.OverrideBasePrompt,
|
||||||
SystemPromptTemplate: existingTrader.SystemPromptTemplate, // 保持原值
|
SystemPromptTemplate: systemPromptTemplate,
|
||||||
IsCrossMargin: isCrossMargin,
|
IsCrossMargin: isCrossMargin,
|
||||||
ScanIntervalMinutes: scanIntervalMinutes,
|
ScanIntervalMinutes: scanIntervalMinutes,
|
||||||
IsRunning: existingTrader.IsRunning, // 保持原值
|
IsRunning: existingTrader.IsRunning, // 保持原值
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ export function AITradersPage({ onTraderSelect }: AITradersPageProps) {
|
|||||||
trading_symbols: data.trading_symbols,
|
trading_symbols: data.trading_symbols,
|
||||||
custom_prompt: data.custom_prompt,
|
custom_prompt: data.custom_prompt,
|
||||||
override_base_prompt: data.override_base_prompt,
|
override_base_prompt: data.override_base_prompt,
|
||||||
system_prompt_template: data.system_prompt_template, // 添加此字段
|
system_prompt_template: data.system_prompt_template,
|
||||||
is_cross_margin: data.is_cross_margin,
|
is_cross_margin: data.is_cross_margin,
|
||||||
use_coin_pool: data.use_coin_pool,
|
use_coin_pool: data.use_coin_pool,
|
||||||
use_oi_top: data.use_oi_top
|
use_oi_top: data.use_oi_top
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ export interface TraderConfigData {
|
|||||||
trading_symbols: string;
|
trading_symbols: string;
|
||||||
custom_prompt: string;
|
custom_prompt: string;
|
||||||
override_base_prompt: boolean;
|
override_base_prompt: boolean;
|
||||||
system_prompt_template: string; // 添加系统提示词模板字段
|
system_prompt_template: string;
|
||||||
is_cross_margin: boolean;
|
is_cross_margin: boolean;
|
||||||
use_coin_pool: boolean;
|
use_coin_pool: boolean;
|
||||||
use_oi_top: boolean;
|
use_oi_top: boolean;
|
||||||
|
|||||||
Reference in New Issue
Block a user