diff --git a/app.go b/app.go index 50ce81b..b78f00c 100644 --- a/app.go +++ b/app.go @@ -427,7 +427,7 @@ func (a *App) SendDingDingMessageByType(message string, stockCode string, msgTyp } func (a *App) NewChatStream(stock, stockCode string) { - msgs := data.NewDeepSeekOpenAi().NewChatStream(stock, stockCode) + msgs := data.NewDeepSeekOpenAi(a.ctx).NewChatStream(stock, stockCode) for msg := range msgs { runtime.EventsEmit(a.ctx, "newChatStream", msg) } @@ -435,10 +435,10 @@ func (a *App) NewChatStream(stock, stockCode string) { } func (a *App) SaveAIResponseResult(stockCode, stockName, result string) { - data.NewDeepSeekOpenAi().SaveAIResponseResult(stockCode, stockName, result) + data.NewDeepSeekOpenAi(a.ctx).SaveAIResponseResult(stockCode, stockName, result) } func (a *App) GetAIResponseResult(stock string) *models.AIResponseResult { - return data.NewDeepSeekOpenAi().GetAIResponseResult(stock) + return data.NewDeepSeekOpenAi(a.ctx).GetAIResponseResult(stock) } func (a *App) GetVersionInfo() *models.VersionInfo { diff --git a/backend/data/openai_api.go b/backend/data/openai_api.go index 84a6f8f..f9a2a62 100644 --- a/backend/data/openai_api.go +++ b/backend/data/openai_api.go @@ -9,6 +9,7 @@ import ( "github.com/chromedp/chromedp" "github.com/duke-git/lancet/v2/strutil" "github.com/go-resty/resty/v2" + "github.com/wailsapp/wails/v2/pkg/runtime" "go-stock/backend/db" "go-stock/backend/logger" "go-stock/backend/models" @@ -22,6 +23,7 @@ import ( // @Desc // ----------------------------------------------------------------------------------- type OpenAi struct { + ctx context.Context BaseUrl string `json:"base_url"` ApiKey string `json:"api_key"` Model string `json:"model"` @@ -31,9 +33,10 @@ type OpenAi struct { TimeOut int `json:"time_out"` } -func NewDeepSeekOpenAi() *OpenAi { +func NewDeepSeekOpenAi(ctx context.Context) *OpenAi { config := getConfig() return &OpenAi{ + ctx: ctx, BaseUrl: config.OpenAiBaseUrl, ApiKey: config.OpenAiApiKey, Model: config.OpenAiModelName, @@ -108,7 +111,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { messages := SearchStockPriceInfo(stockCode) if messages == nil || len(*messages) == 0 { logger.SugaredLogger.Error("获取股票价格失败") - ch <- "***获取股票价格失败,分析结果可能不准确***