diff --git a/backend/data/openai_api.go b/backend/data/openai_api.go
index f9a2a62..c77ea85 100644
--- a/backend/data/openai_api.go
+++ b/backend/data/openai_api.go
@@ -157,6 +157,19 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
"content": message,
})
}
+ messages = GetTopNewsList()
+ if messages == nil || len(*messages) == 0 {
+ logger.SugaredLogger.Error("获取新闻资讯失败")
+ ch <- "***❗获取新闻资讯失败,分析结果可能不准确***
"
+ go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取新闻资讯失败,分析结果可能不准确")
+ return
+ }
+ for _, message := range *messages {
+ msg = append(msg, map[string]interface{}{
+ "role": "assistant",
+ "content": message,
+ })
+ }
}()
go func() {
@@ -459,6 +472,28 @@ func GetTelegraphList() *[]string {
return &telegraph
}
+func GetTopNewsList() *[]string {
+ url := "https://www.cls.cn"
+ response, err := resty.New().R().
+ SetHeader("Referer", "https://www.cls.cn/").
+ SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.60").
+ Get(fmt.Sprintf(url))
+ if err != nil {
+ return &[]string{}
+ }
+ //logger.SugaredLogger.Info(string(response.Body()))
+ document, err := goquery.NewDocumentFromReader(strings.NewReader(string(response.Body())))
+ if err != nil {
+ return &[]string{}
+ }
+ var telegraph []string
+ document.Find("div.home-article-title a,div.home-article-rec a").Each(func(i int, selection *goquery.Selection) {
+ logger.SugaredLogger.Info(selection.Text())
+ telegraph = append(telegraph, selection.Text())
+ })
+ return &telegraph
+}
+
func (o OpenAi) SaveAIResponseResult(stockCode, stockName, result string) {
db.Dao.Create(&models.AIResponseResult{
StockCode: stockCode,
diff --git a/backend/data/openai_api_test.go b/backend/data/openai_api_test.go
index 363461d..19c7a85 100644
--- a/backend/data/openai_api_test.go
+++ b/backend/data/openai_api_test.go
@@ -1,13 +1,14 @@
package data
import (
+ "context"
"go-stock/backend/db"
"testing"
)
func TestNewDeepSeekOpenAiConfig(t *testing.T) {
db.Init("../../data/stock.db")
- ai := NewDeepSeekOpenAi()
+ ai := NewDeepSeekOpenAi(context.TODO())
res := ai.NewChatStream("北京文化", "sz000802")
for {
select {
@@ -19,3 +20,7 @@ func TestNewDeepSeekOpenAiConfig(t *testing.T) {
}
}
}
+
+func TestGetTopNewsList(t *testing.T) {
+ GetTopNewsList()
+}