From 0006501cc80fc1d73595b17a24a1d54f4701026d Mon Sep 17 00:00:00 2001 From: spark Date: Sun, 9 Feb 2025 20:58:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(data):=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=B5=81=E7=A8=8B=E5=B9=B6=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在获取股票价格、财报、市场资讯等数据时,增加了空值判断并记录错误日志 -优化了数据获取流程,提高了代码的健壮性和可维护性- 在 chromedp 上下文中添加了日志记录,便于调试和排查问题 --- backend/data/openai_api.go | 22 +++++++++++++++++++++- backend/data/stock_data_api.go | 3 +++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/backend/data/openai_api.go b/backend/data/openai_api.go index f058071..11583e5 100644 --- a/backend/data/openai_api.go +++ b/backend/data/openai_api.go @@ -93,6 +93,10 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { go func() { defer wg.Done() messages := SearchStockPriceInfo(stockCode) + if messages == nil || len(*messages) == 0 { + logger.SugaredLogger.Error("获取股票价格失败") + return + } price := "" for _, message := range *messages { price += message + ";" @@ -106,6 +110,10 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { go func() { defer wg.Done() messages := GetFinancialReports(stockCode) + if messages == nil || len(*messages) == 0 { + logger.SugaredLogger.Error("获取股票财报失败") + return + } for _, message := range *messages { msg = append(msg, map[string]interface{}{ "role": "assistant", @@ -117,6 +125,10 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { go func() { defer wg.Done() messages := GetTelegraphList() + if messages == nil || len(*messages) == 0 { + logger.SugaredLogger.Error("获取市场资讯失败") + return + } for _, message := range *messages { msg = append(msg, map[string]interface{}{ "role": "assistant", @@ -128,6 +140,10 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { go func() { defer wg.Done() messages := SearchStockInfo(stock, "depth") + if messages == nil || len(*messages) == 0 { + logger.SugaredLogger.Error("获取股票资讯失败") + return + } for _, message := range *messages { msg = append(msg, map[string]interface{}{ "role": "assistant", @@ -138,6 +154,10 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { go func() { defer wg.Done() messages := SearchStockInfo(stock, "telegram") + if messages == nil || len(*messages) == 0 { + logger.SugaredLogger.Error("获取股票电报资讯失败") + return + } for _, message := range *messages { msg = append(msg, map[string]interface{}{ "role": "assistant", @@ -146,7 +166,6 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string { } }() wg.Wait() - msg = append(msg, map[string]interface{}{ "role": "user", "content": stock + "分析和总结", @@ -233,6 +252,7 @@ func GetFinancialReports(stockCode string) *[]string { chromedp.WithErrorf(logger.SugaredLogger.Errorf), ) defer cancel() + defer func(ctx context.Context) { err := chromedp.Cancel(ctx) if err != nil { diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go index 846e544..539c4da 100644 --- a/backend/data/stock_data_api.go +++ b/backend/data/stock_data_api.go @@ -520,8 +520,11 @@ func SearchStockPriceInfo(stockCode string) *[]string { // 创建一个 chromedp 上下文 ctx, cancel := chromedp.NewContext( context.Background(), + chromedp.WithLogf(logger.SugaredLogger.Infof), + chromedp.WithErrorf(logger.SugaredLogger.Errorf), ) defer cancel() + defer func(ctx context.Context) { err := chromedp.Cancel(ctx) if err != nil {