wip
This commit is contained in:
+24
-10
@@ -204,7 +204,7 @@ namespace AnotherReplayReader.Utils
|
||||
- `power|时间|技能名|单位UnitId` — 释放特殊能力,例如 `power|1:24.00|SpecialPower_PackReplaceSelf|246`
|
||||
- `protocol|时间|科技名` — 选择协议(全局生效,无单位),例如 `protocol|0:02.33|PlayerTech_Allied_AirPower`
|
||||
|
||||
如果没有可验证推测,可以输出空数组。不要在 JSON 里写注释。
|
||||
如果没有可验证推测,请输出空 JSON 对象(三个字段均为空数组)。不要在 JSON 里写注释。
|
||||
|
||||
# 推理指南
|
||||
推理需要分成多个阶段
|
||||
@@ -1040,20 +1040,27 @@ PlayerA: 开始出兵
|
||||
int totalSegments,
|
||||
ReplaySlice slice,
|
||||
int eventCount,
|
||||
string? title)
|
||||
string? title,
|
||||
string? description = null,
|
||||
IEnumerable<string>? backqueryHints = null)
|
||||
{
|
||||
var beginText = segmentIndex <= 0 ? "游戏开始" : MatchDigestBuilder.FormatTime(slice.Start);
|
||||
var endText = segmentIndex >= totalSegments - 1 ? "游戏结束" : MatchDigestBuilder.FormatTime(slice.End);
|
||||
var titleLine = string.IsNullOrWhiteSpace(title) ? "" : $"\n段落标题:{title}";
|
||||
var descriptionLine = string.IsNullOrWhiteSpace(description) ? "" : $"\n段落概述:{description}";
|
||||
var hintLine = backqueryHints is { } hints && hints.Any()
|
||||
? "\n总览建议可回查区间:" + string.Join("、", hints)
|
||||
: "";
|
||||
var instruction = @$"
|
||||
请重点分析第{segmentIndex + 1}/{totalSegments}段({beginText}至{endText})的数据。
|
||||
本段共有{eventCount}条操作信息,数量很大,因此**不要**在思考推理时直接列出所有操作信息,也不要把每一条操作信息都视作一个单独事件。{titleLine}
|
||||
本段共有{eventCount}条操作信息,数量很大,因此**不要**在思考推理时直接列出所有操作信息,也不要把每一条操作信息都视作一个单独事件。{titleLine}{descriptionLine}
|
||||
{hintLine}
|
||||
你可以参考输入中的对局摘要、整局总览与之前各段的已发现事实。
|
||||
如果某个远距离事件与当前分析相关,可以输出`[回查] mm:ss~mm:ss`(每段最多 3 次)请求对应原始区间。
|
||||
请按照[观察]、[分析]、[推理]、[进一步思考(可选)]的步骤,对各个事件进行分析和推理。
|
||||
|
||||
假如当前阶段存在一些较为重要的单位、而且能够推测出它们可能是什么单位,则可以列出单位的UnitId以及你对单位的推测。UnitId 推测最多 10 个,事件推测最多 5 个,时间线推测最多 3 个。
|
||||
如果你列出了 UnitId 推测、关键事件推测或时间线推测,请在回答末尾附加`[机器可读声明]` JSON 代码块;如果没有相关推测,则输出空数组。
|
||||
如果你列出了 UnitId 推测、关键事件推测或时间线推测,请在回答末尾附加`[机器可读声明]` JSON 代码块;如果没有相关推测,则输出空 JSON 对象。
|
||||
最后用一行 `[小结]` 输出 2~3 句该段最重要的结论。
|
||||
";
|
||||
return instruction.Trim().Replace("\r", "");
|
||||
@@ -1383,15 +1390,22 @@ PlayerA: 开始出兵
|
||||
ImmutableList<ChatMessage> messages,
|
||||
Dictionary<string, object> inputRequestParams)
|
||||
{
|
||||
return new Dictionary<string, object>(inputRequestParams)
|
||||
var parameters = new Dictionary<string, object>(inputRequestParams)
|
||||
{
|
||||
["messages"] = messages.ToArray(),
|
||||
["stream"] = true,
|
||||
["stream_options"] = new
|
||||
["messages"] = messages.ToArray()
|
||||
};
|
||||
// 尊重模型配置里的 IsStream;只有流式请求才附加 stream_options,
|
||||
// 避免非 SSE 端点收到 stream=true 后失败。
|
||||
if (inputRequestParams.TryGetValue("stream", out var streamValue)
|
||||
&& streamValue is bool isStream
|
||||
&& isStream)
|
||||
{
|
||||
parameters["stream_options"] = new
|
||||
{
|
||||
include_usage = true
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
return parameters;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user