feat: 完善提示词

This commit is contained in:
chenchun
2025-03-11 13:40:07 +08:00
parent 4afc1cc492
commit ccaebb8ec2
5 changed files with 55 additions and 43 deletions

View File

@@ -4,6 +4,7 @@ using Yi.Framework.Stock.Domain.Entities;
using Yi.Framework.Stock.Domain.Managers.SemanticKernel;
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
using System.Text;
using System.IO;
namespace Yi.Framework.Stock.Domain.Managers;
@@ -64,23 +65,9 @@ public class NewsManager:DomainService
newsContext.AppendLine("目前没有最近的新闻记录。");
}
var question = $$"""
基于以下最近的新闻背景,生成一条新的股市相关新闻。
{{newsContext}}
请生成一条有关联性的新闻,包含以下要素:
1. 新闻标题:吸引人且与股市、金融或经济相关
2. 新闻内容:详细且符合逻辑的报道,篇幅适中
3. 新闻简介:简明扼要的总结
4. 新闻来源:提供一个可信的媒体或机构名称
注意:
- 新闻内容应当与前面的新闻有一定关联性
- 内容应当暗示可能对股市产生某种影响(积极或消极)
- 行业焦点可以包括娱乐、科技、能源、金融等多个领域
- 只需生成一次即可
""";
var promptPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot", "stock", "newsPrompt.txt");
var question = await File.ReadAllTextAsync(promptPath);
question = question.Replace("{{newsContext}}", newsContext.ToString());
await _skClient.ChatCompletionAsync(question, ("NewsPlugins","save_news"));
}

View File

@@ -12,6 +12,7 @@ using Yi.Framework.Stock.Domain.Managers.SemanticKernel;
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
using Microsoft.Extensions.Hosting;
using System.Text;
using System.IO;
namespace Yi.Framework.Stock.Domain.Managers
{
@@ -422,35 +423,18 @@ namespace Yi.Framework.Stock.Domain.Managers
{
if (stockPrices.TryGetValue(stock.Id, out var price))
{
stocksContext.AppendLine($"{stock.MarketName}id:{stock.Id} 最后一次价格:{price:F2}");
stocksContext.AppendLine($"{stock.MarketName}id:{stock.Id},简介:{stock.Description} 最后一次价格:{price:F2}");
}
}
var question = $$"""
根据最近的新闻和当前股票价格预测多家股票未来24小时的价格走势
{{newsContext}}
{{stocksContext}}
请分析上述新闻对各个股票可能产生的影响并预测每支股票未来24小时的价格变动
1. 考虑新闻中提到的行业、公司或经济趋势
2. 分析这些因素对不同股票的积极或消极影响
3. 根据分析生成合理的价格波动
对每支股票,请返回:
- 股票id
- 一个长度为24的价格数组表示未来24小时每小时整点的预测价格
价格变动应当符合以下规则:
- 相邻时间点的价格波动通常不超过前值的20%
- 考虑市场开盘和收盘时间可能带来的较大波动
- 不同股票之间的相关性(如同行业股票可能有类似走势)
- 部分股票可能对某些新闻更敏感
请确保数据格式正确,以便系统能够自动处理。
""";
// 从文件读取问题模板
string promptTemplate = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot", "stock", "marketPrompt.txt"));
// 替换变量
string question = promptTemplate
.Replace("{{newsContext}}", newsContext.ToString())
.Replace("{{stocksContext}}", stocksContext.ToString());
await _skClient.ChatCompletionAsync(question, ("StockPlugins", "save_stocks"));
}
}