diff --git a/backend/data/openai_api.go b/backend/data/openai_api.go
index d6d3be8..36b8036 100644
--- a/backend/data/openai_api.go
+++ b/backend/data/openai_api.go
@@ -199,7 +199,7 @@ func (o OpenAi) NewChatStream(stock, stockCode, userQuestion string, sysPromptId
go func() {
defer wg.Done()
- messages := SearchStockPriceInfo(stockCode, o.CrawlTimeOut)
+ messages := SearchStockPriceInfo(stock, stockCode, o.CrawlTimeOut)
if messages == nil || len(*messages) == 0 {
logger.SugaredLogger.Error("获取股票价格失败")
//ch <- "***❗获取股票价格失败,分析结果可能不准确***
"
@@ -223,6 +223,8 @@ func (o OpenAi) NewChatStream(stock, stockCode, userQuestion string, sysPromptId
"role": "assistant",
"content": "\n## " + stock + "股价数据:\n" + price,
})
+ logger.SugaredLogger.Infof("SearchStockPriceInfo stock:%s stockCode:%s", stock, stockCode)
+ logger.SugaredLogger.Infof("SearchStockPriceInfo assistant:%s", "\n## "+stock+"股价数据:\n"+price)
}()
go func() {
diff --git a/backend/data/openai_api_test.go b/backend/data/openai_api_test.go
index 6707aa7..ab2806a 100644
--- a/backend/data/openai_api_test.go
+++ b/backend/data/openai_api_test.go
@@ -9,7 +9,7 @@ import (
func TestNewDeepSeekOpenAiConfig(t *testing.T) {
db.Init("../../data/stock.db")
ai := NewDeepSeekOpenAi(context.TODO())
- res := ai.NewChatStream("上海贝岭", "sh600171", "上海贝岭分析和总结", nil)
+ res := ai.NewChatStream("中信证券", "hk06030", "中信证券分析和总结", nil)
for {
select {
case msg := <-res:
diff --git a/backend/data/stock_data_api.go b/backend/data/stock_data_api.go
index f033fe9..c983061 100644
--- a/backend/data/stock_data_api.go
+++ b/backend/data/stock_data_api.go
@@ -768,7 +768,7 @@ func GetRealTimeStockPriceInfo(ctx context.Context, stockCode string) (price, pr
return price, priceTime
}
-func SearchStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
+func SearchStockPriceInfo(stockName, stockCode string, crawlTimeOut int64) *[]string {
if strutil.HasPrefixAny(stockCode, []string{"SZ", "SH", "sh", "sz", "bj"}) {
//if strutil.HasPrefixAny(stockCode, []string{"bj", "BJ"}) {
@@ -778,7 +778,7 @@ func SearchStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
// }) + ".BJ"
//}
- return getSHSZStockPriceInfo(stockCode, crawlTimeOut)
+ return getSHSZStockPriceInfo(stockName, stockCode, crawlTimeOut)
}
if strutil.HasPrefixAny(stockCode, []string{"HK", "hk"}) {
return getHKStockPriceInfo(stockCode, crawlTimeOut)
@@ -838,6 +838,7 @@ func getUSStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
messages = append(messages, text)
})
+ logger.SugaredLogger.Infof("messages: %s", messages)
return &messages
}
@@ -855,10 +856,12 @@ func getHKStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
crawlerAPI = crawlerAPI.NewCrawler(ctx, crawlerBaseInfo)
url := fmt.Sprintf("https://stock.finance.sina.com.cn/hkstock/quotes/%s.html", strings.ReplaceAll(stockCode, "hk", ""))
- htmlContent, ok := crawlerAPI.GetHtml(url, ".deta_hqContainer >.deta03 ", true)
+ logger.SugaredLogger.Infof("CrawlHKStockPriceInfo url:%s", url)
+ htmlContent, ok := crawlerAPI.GetHtml(url, "div.deta_hqContainer >.deta03>ul ", false)
if !ok {
return &[]string{}
}
+ //logger.SugaredLogger.Infof("CrawlHKStockPriceInfo htmlContent:%s", htmlContent)
document, err := goquery.NewDocumentFromReader(strings.NewReader(htmlContent))
if err != nil {
logger.SugaredLogger.Error(err.Error())
@@ -890,6 +893,7 @@ func getHKStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
messages = append(messages, text)
})
+ logger.SugaredLogger.Infof("messages: %s", messages)
return &messages
}
@@ -919,12 +923,12 @@ func getZSInfo(name, stockCode string, crawlTimeOut int64) string {
hqTime := strutil.RemoveWhiteSpace(document.Find("div#hqTime").First().Text(), false)
var markdown strings.Builder
- markdown.WriteString(fmt.Sprintf("### %s:%s 时间:%s\n", name, price, hqTime))
+ markdown.WriteString(fmt.Sprintf("### 时间:%s %s:%s \n", hqTime, name, price))
GetTableMarkdown(document, "div#hqDetails table", &markdown)
return markdown.String()
}
-func getSHSZStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
+func getSHSZStockPriceInfo(stockName, stockCode string, crawlTimeOut int64) *[]string {
url := "https://finance.sina.com.cn/realstock/company/" + stockCode + "/nc.shtml"
crawlerAPI := CrawlerApi{}
crawlerBaseInfo := CrawlerBaseInfo{
@@ -950,7 +954,7 @@ func getSHSZStockPriceInfo(stockCode string, crawlTimeOut int64) *[]string {
hqTime := strutil.RemoveWhiteSpace(document.Find("div#hqTime").First().Text(), false)
var markdown strings.Builder
- markdown.WriteString(fmt.Sprintf("### 当前股价:%s 时间:%s\n", price, hqTime))
+ markdown.WriteString(fmt.Sprintf("### %s现价:%s 现价时间:%s\n", stockName, price, hqTime))
GetTableMarkdown(document, "div#hqDetails table", &markdown)
return &[]string{markdown.String()}
}
diff --git a/backend/data/stock_data_api_test.go b/backend/data/stock_data_api_test.go
index 1c55f84..61bb01e 100644
--- a/backend/data/stock_data_api_test.go
+++ b/backend/data/stock_data_api_test.go
@@ -47,13 +47,13 @@ func TestSearchStockInfoByCode(t *testing.T) {
func TestSearchStockPriceInfo(t *testing.T) {
db.Init("../../data/stock.db")
- //SearchStockPriceInfo("hk06030", 30)
- //SearchStockPriceInfo("sh600171", 30)
- //SearchStockPriceInfo("gb_aapl", 30)
- //SearchStockPriceInfo("bj430198", 30)
+ //SearchStockPriceInfo("中信证券", "hk06030", 30)
+ //SearchStockPriceInfo("上海贝岭", "sh600171", 30)
+ SearchStockPriceInfo("苹果公司", "gb_aapl", 30)
+ //SearchStockPriceInfo("微创光电", "bj430198", 30)
getZSInfo("创业板指数", "sz399006", 30)
- getZSInfo("上证综合指数", "sh000001", 30)
- getZSInfo("沪深300指数", "sh000300", 30)
+ //getZSInfo("上证综合指数", "sh000001", 30)
+ //getZSInfo("沪深300指数", "sh000300", 30)
}