@@ -188,7 +188,21 @@ func (o *OpenAi) NewSummaryStockNewsStreamWithTools(userQuestion string, sysProm
188188 "content" : "当前本地时间是:" + time .Now ().Format ("2006-01-02 15:04:05" ),
189189 })
190190 wg := & sync.WaitGroup {}
191- wg .Add (5 )
191+ wg .Add (6 )
192+
193+ go func () {
194+ defer wg .Done ()
195+ datas := NewMarketNewsApi ().InteractiveAnswer (1 , 100 , "" )
196+ content := util .MarkdownTableWithTitle ("当前最新投资者互动数据" , datas .Results )
197+ msg = append (msg , map [string ]interface {}{
198+ "role" : "user" ,
199+ "content" : "投资者互动数据" ,
200+ })
201+ msg = append (msg , map [string ]interface {}{
202+ "role" : "assistant" ,
203+ "content" : content ,
204+ })
205+ }()
192206
193207 go func () {
194208 defer wg .Done ()
@@ -381,7 +395,7 @@ func (o *OpenAi) NewSummaryStockNewsStream(userQuestion string, sysPromptId *int
381395 "content" : "当前本地时间是:" + time .Now ().Format ("2006-01-02 15:04:05" ),
382396 })
383397 wg := & sync.WaitGroup {}
384- wg .Add (3 )
398+ wg .Add (4 )
385399 go func () {
386400 defer wg .Done ()
387401 var market strings.Builder
@@ -442,6 +456,20 @@ func (o *OpenAi) NewSummaryStockNewsStream(userQuestion string, sysPromptId *int
442456 })
443457 }()
444458
459+ go func () {
460+ defer wg .Done ()
461+ datas := NewMarketNewsApi ().InteractiveAnswer (1 , 100 , "" )
462+ content := util .MarkdownTableWithTitle ("当前最新投资者互动数据" , datas .Results )
463+ msg = append (msg , map [string ]interface {}{
464+ "role" : "user" ,
465+ "content" : "投资者互动数据" ,
466+ })
467+ msg = append (msg , map [string ]interface {}{
468+ "role" : "assistant" ,
469+ "content" : content ,
470+ })
471+ }()
472+
445473 wg .Wait ()
446474
447475 news := NewMarketNewsApi ().GetNewsList ("" , 100 )
@@ -1292,6 +1320,52 @@ func AskAiWithTools(o *OpenAi, err error, messages []map[string]interface{}, ch
12921320 }
12931321 }
12941322
1323+ if funcName == "InteractiveAnswer" {
1324+ page := gjson .Get (funcArguments , "page" ).String ()
1325+ pageSize := gjson .Get (funcArguments , "pageSize" ).String ()
1326+ keyWord := gjson .Get (funcArguments , "keyWord" ).String ()
1327+ ch <- map [string ]any {
1328+ "code" : 1 ,
1329+ "question" : question ,
1330+ "chatId" : streamResponse .Id ,
1331+ "model" : streamResponse .Model ,
1332+ "content" : "\r \n ```\r \n 开始调用工具:InteractiveAnswer,\n 参数:" + page + "," + pageSize + "," + keyWord + "\r \n ```\r \n " ,
1333+ "time" : time .Now ().Format (time .DateTime ),
1334+ }
1335+ pageNo , err := convertor .ToInt (page )
1336+ if err != nil {
1337+ pageNo = 1
1338+ }
1339+ pageSizeNum , err := convertor .ToInt (pageSize )
1340+ if err != nil {
1341+ pageSizeNum = 50
1342+ }
1343+ datas := NewMarketNewsApi ().InteractiveAnswer (int (pageNo ), int (pageSizeNum ), keyWord )
1344+ content := util .MarkdownTableWithTitle ("投资互动数据" , datas .Results )
1345+ logger .SugaredLogger .Infof ("InteractiveAnswer=\n %s" , content )
1346+ messages = append (messages , map [string ]interface {}{
1347+ "role" : "assistant" ,
1348+ "content" : currentAIContent .String (),
1349+ "tool_calls" : []map [string ]any {
1350+ {
1351+ "id" : currentCallId ,
1352+ "tool_call_id" : currentCallId ,
1353+ "type" : "function" ,
1354+ "function" : map [string ]string {
1355+ "name" : funcName ,
1356+ "arguments" : funcArguments ,
1357+ "parameters" : funcArguments ,
1358+ },
1359+ },
1360+ },
1361+ })
1362+ messages = append (messages , map [string ]interface {}{
1363+ "role" : "tool" ,
1364+ "content" : content ,
1365+ "tool_call_id" : currentCallId ,
1366+ })
1367+ }
1368+
12951369 }
12961370 AskAiWithTools (o , err , messages , ch , question , tools )
12971371 }
0 commit comments