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) {
|
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 {
|
for msg := range msgs {
|
||||||
runtime.EventsEmit(a.ctx, "newChatStream", msg)
|
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) {
|
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 {
|
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 {
|
func (a *App) GetVersionInfo() *models.VersionInfo {
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
"github.com/chromedp/chromedp"
|
"github.com/chromedp/chromedp"
|
||||||
"github.com/duke-git/lancet/v2/strutil"
|
"github.com/duke-git/lancet/v2/strutil"
|
||||||
"github.com/go-resty/resty/v2"
|
"github.com/go-resty/resty/v2"
|
||||||
|
"github.com/wailsapp/wails/v2/pkg/runtime"
|
||||||
"go-stock/backend/db"
|
"go-stock/backend/db"
|
||||||
"go-stock/backend/logger"
|
"go-stock/backend/logger"
|
||||||
"go-stock/backend/models"
|
"go-stock/backend/models"
|
||||||
@ -22,6 +23,7 @@ import (
|
|||||||
// @Desc
|
// @Desc
|
||||||
// -----------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------
|
||||||
type OpenAi struct {
|
type OpenAi struct {
|
||||||
|
ctx context.Context
|
||||||
BaseUrl string `json:"base_url"`
|
BaseUrl string `json:"base_url"`
|
||||||
ApiKey string `json:"api_key"`
|
ApiKey string `json:"api_key"`
|
||||||
Model string `json:"model"`
|
Model string `json:"model"`
|
||||||
@ -31,9 +33,10 @@ type OpenAi struct {
|
|||||||
TimeOut int `json:"time_out"`
|
TimeOut int `json:"time_out"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDeepSeekOpenAi() *OpenAi {
|
func NewDeepSeekOpenAi(ctx context.Context) *OpenAi {
|
||||||
config := getConfig()
|
config := getConfig()
|
||||||
return &OpenAi{
|
return &OpenAi{
|
||||||
|
ctx: ctx,
|
||||||
BaseUrl: config.OpenAiBaseUrl,
|
BaseUrl: config.OpenAiBaseUrl,
|
||||||
ApiKey: config.OpenAiApiKey,
|
ApiKey: config.OpenAiApiKey,
|
||||||
Model: config.OpenAiModelName,
|
Model: config.OpenAiModelName,
|
||||||
@ -108,7 +111,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
|||||||
messages := SearchStockPriceInfo(stockCode)
|
messages := SearchStockPriceInfo(stockCode)
|
||||||
if messages == nil || len(*messages) == 0 {
|
if messages == nil || len(*messages) == 0 {
|
||||||
logger.SugaredLogger.Error("获取股票价格失败")
|
logger.SugaredLogger.Error("获取股票价格失败")
|
||||||
ch <- "***获取股票价格失败,分析结果可能不准确***<hr>"
|
ch <- "***❗获取股票价格失败,分析结果可能不准确***<hr>"
|
||||||
|
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票价格失败,分析结果可能不准确")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
price := ""
|
price := ""
|
||||||
@ -126,7 +130,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
|||||||
messages := GetFinancialReports(stockCode)
|
messages := GetFinancialReports(stockCode)
|
||||||
if messages == nil || len(*messages) == 0 {
|
if messages == nil || len(*messages) == 0 {
|
||||||
logger.SugaredLogger.Error("获取股票财报失败")
|
logger.SugaredLogger.Error("获取股票财报失败")
|
||||||
ch <- "***获取股票财报失败,分析结果可能不准确***<hr>"
|
ch <- "***❗获取股票财报失败,分析结果可能不准确***<hr>"
|
||||||
|
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票财报失败,分析结果可能不准确")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, message := range *messages {
|
for _, message := range *messages {
|
||||||
@ -142,7 +147,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
|||||||
messages := GetTelegraphList()
|
messages := GetTelegraphList()
|
||||||
if messages == nil || len(*messages) == 0 {
|
if messages == nil || len(*messages) == 0 {
|
||||||
logger.SugaredLogger.Error("获取市场资讯失败")
|
logger.SugaredLogger.Error("获取市场资讯失败")
|
||||||
ch <- "***获取市场资讯失败,分析结果可能不准确***<hr>"
|
ch <- "***❗获取市场资讯失败,分析结果可能不准确***<hr>"
|
||||||
|
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取市场资讯失败,分析结果可能不准确")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, message := range *messages {
|
for _, message := range *messages {
|
||||||
@ -158,7 +164,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
|||||||
messages := SearchStockInfo(stock, "depth")
|
messages := SearchStockInfo(stock, "depth")
|
||||||
if messages == nil || len(*messages) == 0 {
|
if messages == nil || len(*messages) == 0 {
|
||||||
logger.SugaredLogger.Error("获取股票资讯失败")
|
logger.SugaredLogger.Error("获取股票资讯失败")
|
||||||
ch <- "***获取股票资讯失败,分析结果可能不准确***<hr>"
|
ch <- "***❗获取股票资讯失败,分析结果可能不准确***<hr>"
|
||||||
|
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票资讯失败,分析结果可能不准确")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, message := range *messages {
|
for _, message := range *messages {
|
||||||
@ -173,8 +180,8 @@ func (o OpenAi) NewChatStream(stock, stockCode string) <-chan string {
|
|||||||
messages := SearchStockInfo(stock, "telegram")
|
messages := SearchStockInfo(stock, "telegram")
|
||||||
if messages == nil || len(*messages) == 0 {
|
if messages == nil || len(*messages) == 0 {
|
||||||
logger.SugaredLogger.Error("获取股票电报资讯失败")
|
logger.SugaredLogger.Error("获取股票电报资讯失败")
|
||||||
ch <- "***获取股票电报资讯失败,分析结果可能不准确***<hr>"
|
ch <- "***❗获取股票电报资讯失败,分析结果可能不准确***<hr>"
|
||||||
|
go runtime.EventsEmit(o.ctx, "warnMsg", "❗获取股票电报资讯失败,分析结果可能不准确")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, message := range *messages {
|
for _, message := range *messages {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user