mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
refactor(data):重构OpenAi结构体并添加上下文对象
- 在 OpenAi 结构体中添加 ctx 字段,用于传递上下文对象 - 更新 NewDeepSeekOpenAi 函数签名,现在需要传入 context.Context 参数 - 在获取股票信息失败时,除了在控制台输出错误信息外,还通过 runtime.EventsEmit 发送警告消息到前端 - 优化错误信息的显示格式,添加警告图标
This commit is contained in:
parent
b459abb35d
commit
267f6f638f
6
app.go
6
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 {
|
||||
|
@ -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 <- "***获取股票价格失败,分析结果可能不准确***<hr>"
|
||||
ch <- "***❗获取股票价格失败,分析结果可能不准确***<hr>"
|
||||
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票价格失败,分析结果可能不准确")
|
||||
return
|
||||
}
|
||||
price := ""
|
||||
@ -126,7 +130,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
messages := GetFinancialReports(stockCode)
|
||||
if messages == nil || len(*messages) == 0 {
|
||||
logger.SugaredLogger.Error("获取股票财报失败")
|
||||
ch <- "***获取股票财报失败,分析结果可能不准确***<hr>"
|
||||
ch <- "***❗获取股票财报失败,分析结果可能不准确***<hr>"
|
||||
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票财报失败,分析结果可能不准确")
|
||||
return
|
||||
}
|
||||
for _, message := range *messages {
|
||||
@ -142,7 +147,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
messages := GetTelegraphList()
|
||||
if messages == nil || len(*messages) == 0 {
|
||||
logger.SugaredLogger.Error("获取市场资讯失败")
|
||||
ch <- "***获取市场资讯失败,分析结果可能不准确***<hr>"
|
||||
ch <- "***❗获取市场资讯失败,分析结果可能不准确***<hr>"
|
||||
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取市场资讯失败,分析结果可能不准确")
|
||||
return
|
||||
}
|
||||
for _, message := range *messages {
|
||||
@ -158,7 +164,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
messages := SearchStockInfo(stock, "depth")
|
||||
if messages == nil || len(*messages) == 0 {
|
||||
logger.SugaredLogger.Error("获取股票资讯失败")
|
||||
ch <- "***获取股票资讯失败,分析结果可能不准确***<hr>"
|
||||
ch <- "***❗获取股票资讯失败,分析结果可能不准确***<hr>"
|
||||
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票资讯失败,分析结果可能不准确")
|
||||
return
|
||||
}
|
||||
for _, message := range *messages {
|
||||
@ -173,8 +180,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
||||
messages := SearchStockInfo(stock, "telegram")
|
||||
if messages == nil || len(*messages) == 0 {
|
||||
logger.SugaredLogger.Error("获取股票电报资讯失败")
|
||||
ch <- "***获取股票电报资讯失败,分析结果可能不准确***<hr>"
|
||||
|
||||
ch <- "***❗获取股票电报资讯失败,分析结果可能不准确***<hr>"
|
||||
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票电报资讯失败,分析结果可能不准确")
|
||||
return
|
||||
}
|
||||
for _, message := range *messages {
|
||||
|
Loading…
x
Reference in New Issue
Block a user