MCPcopy Create free account
hub / github.com/astercloud/aster / BuildTextEvalInputFromEvents

Function BuildTextEvalInputFromEvents

pkg/evals/session.go:17–43  ·  view source on GitHub ↗

BuildTextEvalInputFromEvents 根据一组 Session 事件构建 TextEvalInput。 约定: - 默认将最后一个 assistant 消息视为 Answer。 - 将之前的 user / assistant 消息串联为 Context,用于评估时参考。 - Reference 由调用方自行填充(例如从标注数据集中读取)。

(events []session.Event)

Source from the content-addressed store, hash-verified

15// - 将之前的 user / assistant 消息串联为 Context,用于评估时参考。
16// - Reference 由调用方自行填充(例如从标注数据集中读取)。
17func BuildTextEvalInputFromEvents(events []session.Event) *TextEvalInput {
18 if len(events) == 0 {
19 return &TextEvalInput{}
20 }
21
22 var answer string
23 var context []string
24
25 for idx, e := range events {
26 msg := e.Content
27 text := extractMessageText(&msg)
28
29 isLast := idx == len(events)-1
30 if isLast && msg.Role == types.MessageRoleAssistant {
31 answer = text
32 continue
33 }
34
35 // 其他消息作为上下文
36 context = append(context, fmt.Sprintf("%s: %s", msg.Role, text))
37 }
38
39 return &TextEvalInput{
40 Answer: answer,
41 Context: context,
42 }
43}
44
45// extractMessageText 将 types.Message 中的文本内容展开为单一字符串。
46func extractMessageText(msg *types.Message) string {

Callers 3

SessionEvalHandlerMethod · 0.92
mainFunction · 0.92

Calls 1

extractMessageTextFunction · 0.85

Tested by

no test coverage detected