feat: 完善提示词
This commit is contained in:
@@ -4,6 +4,7 @@ using Yi.Framework.Stock.Domain.Entities;
|
|||||||
using Yi.Framework.Stock.Domain.Managers.SemanticKernel;
|
using Yi.Framework.Stock.Domain.Managers.SemanticKernel;
|
||||||
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
|
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace Yi.Framework.Stock.Domain.Managers;
|
namespace Yi.Framework.Stock.Domain.Managers;
|
||||||
|
|
||||||
@@ -64,23 +65,9 @@ public class NewsManager:DomainService
|
|||||||
newsContext.AppendLine("目前没有最近的新闻记录。");
|
newsContext.AppendLine("目前没有最近的新闻记录。");
|
||||||
}
|
}
|
||||||
|
|
||||||
var question = $$"""
|
var promptPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot", "stock", "newsPrompt.txt");
|
||||||
基于以下最近的新闻背景,生成一条新的股市相关新闻。
|
var question = await File.ReadAllTextAsync(promptPath);
|
||||||
|
question = question.Replace("{{newsContext}}", newsContext.ToString());
|
||||||
{{newsContext}}
|
|
||||||
|
|
||||||
请生成一条有关联性的新闻,包含以下要素:
|
|
||||||
1. 新闻标题:吸引人且与股市、金融或经济相关
|
|
||||||
2. 新闻内容:详细且符合逻辑的报道,篇幅适中
|
|
||||||
3. 新闻简介:简明扼要的总结
|
|
||||||
4. 新闻来源:提供一个可信的媒体或机构名称
|
|
||||||
|
|
||||||
注意:
|
|
||||||
- 新闻内容应当与前面的新闻有一定关联性
|
|
||||||
- 内容应当暗示可能对股市产生某种影响(积极或消极)
|
|
||||||
- 行业焦点可以包括娱乐、科技、能源、金融等多个领域
|
|
||||||
- 只需生成一次即可
|
|
||||||
""";
|
|
||||||
|
|
||||||
await _skClient.ChatCompletionAsync(question, ("NewsPlugins","save_news"));
|
await _skClient.ChatCompletionAsync(question, ("NewsPlugins","save_news"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using Yi.Framework.Stock.Domain.Managers.SemanticKernel;
|
|||||||
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
|
using Yi.Framework.Stock.Domain.Managers.SemanticKernel.Plugins;
|
||||||
using Microsoft.Extensions.Hosting;
|
using Microsoft.Extensions.Hosting;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace Yi.Framework.Stock.Domain.Managers
|
namespace Yi.Framework.Stock.Domain.Managers
|
||||||
{
|
{
|
||||||
@@ -422,34 +423,17 @@ namespace Yi.Framework.Stock.Domain.Managers
|
|||||||
{
|
{
|
||||||
if (stockPrices.TryGetValue(stock.Id, out var price))
|
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小时的价格走势
|
string promptTemplate = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot", "stock", "marketPrompt.txt"));
|
||||||
|
|
||||||
{{newsContext}}
|
// 替换变量
|
||||||
|
string question = promptTemplate
|
||||||
{{stocksContext}}
|
.Replace("{{newsContext}}", newsContext.ToString())
|
||||||
|
.Replace("{{stocksContext}}", stocksContext.ToString());
|
||||||
请分析上述新闻对各个股票可能产生的影响,并预测每支股票未来24小时的价格变动:
|
|
||||||
1. 考虑新闻中提到的行业、公司或经济趋势
|
|
||||||
2. 分析这些因素对不同股票的积极或消极影响
|
|
||||||
3. 根据分析生成合理的价格波动
|
|
||||||
|
|
||||||
对每支股票,请返回:
|
|
||||||
- 股票id
|
|
||||||
- 一个长度为24的价格数组,表示未来24小时(每小时整点)的预测价格
|
|
||||||
|
|
||||||
价格变动应当符合以下规则:
|
|
||||||
- 相邻时间点的价格波动通常不超过前值的20%
|
|
||||||
- 考虑市场开盘和收盘时间可能带来的较大波动
|
|
||||||
- 不同股票之间的相关性(如同行业股票可能有类似走势)
|
|
||||||
- 部分股票可能对某些新闻更敏感
|
|
||||||
|
|
||||||
请确保数据格式正确,以便系统能够自动处理。
|
|
||||||
""";
|
|
||||||
|
|
||||||
await _skClient.ChatCompletionAsync(question, ("StockPlugins", "save_stocks"));
|
await _skClient.ChatCompletionAsync(question, ("StockPlugins", "save_stocks"));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,6 +53,9 @@
|
|||||||
<Content Update="wwwroot\plugins\news\skprompt.txt">
|
<Content Update="wwwroot\plugins\news\skprompt.txt">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Update="wwwroot\stock\**">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
23
Yi.Abp.Net8/src/Yi.Abp.Web/wwwroot/stock/marketPrompt.txt
Normal file
23
Yi.Abp.Net8/src/Yi.Abp.Web/wwwroot/stock/marketPrompt.txt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
根据最近的新闻和当前股票价格,预测多家股票未来24小时的价格走势
|
||||||
|
|
||||||
|
{{newsContext}}
|
||||||
|
|
||||||
|
{{stocksContext}}
|
||||||
|
|
||||||
|
请分析上述新闻对各个股票可能产生的影响,并预测每支股票未来24小时的价格变动:
|
||||||
|
1. 考虑新闻中提到的行业、公司或经济趋势
|
||||||
|
2. 分析这些因素对不同股票的积极或消极影响
|
||||||
|
3. 根据分析生成合理的价格波动
|
||||||
|
4. 股票的简介是该股票行业、类型等信息准确的定位
|
||||||
|
|
||||||
|
对每支股票,请返回:
|
||||||
|
- 股票id
|
||||||
|
- 一个长度为24的价格数组,表示未来24小时(每小时整点)的预测价格
|
||||||
|
|
||||||
|
价格变动应当符合以下规则:
|
||||||
|
- 相邻时间点的价格波动通常不超过前值的20%
|
||||||
|
- 考虑市场开盘和收盘时间可能带来的较大波动
|
||||||
|
- 不同股票之间的相关性(如同行业股票可能有类似走势)
|
||||||
|
- 部分股票可能对某些新闻更敏感
|
||||||
|
|
||||||
|
请确保数据格式正确,以便系统能够自动处理。
|
||||||
15
Yi.Abp.Net8/src/Yi.Abp.Web/wwwroot/stock/newsPrompt.txt
Normal file
15
Yi.Abp.Net8/src/Yi.Abp.Web/wwwroot/stock/newsPrompt.txt
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
基于以下最近的新闻背景,生成一条新的股市相关新闻。
|
||||||
|
|
||||||
|
{{newsContext}}
|
||||||
|
|
||||||
|
请生成一条有关联性的新闻,包含以下要素:
|
||||||
|
1. 新闻标题:吸引人且与股市、金融或经济相关
|
||||||
|
2. 新闻内容:详细且符合逻辑的报道,篇幅适中
|
||||||
|
3. 新闻简介:简明扼要的总结
|
||||||
|
4. 新闻来源:提供一个可信的媒体或机构名称
|
||||||
|
|
||||||
|
注意:
|
||||||
|
- 新闻内容应当与前面的新闻有一定关联性
|
||||||
|
- 内容应当暗示可能对股市产生某种影响(积极或消极)
|
||||||
|
- 行业焦点可以包括娱乐、科技、能源、金融等多个领域
|
||||||
|
- 只需生成一次即可
|
||||||
Reference in New Issue
Block a user