Files
life-echo/api/tests/test_transcript_for_judge.py

53 lines
1.5 KiB
Python
Raw Permalink Normal View History

"""评测 transcript 格式化。"""
from types import SimpleNamespace
from app.features.evaluation.transcript_for_judge import (
format_eval_turn_block,
format_export_turns_with_labels,
format_session_messages_with_turn_labels,
pair_session_messages_to_turns,
)
def test_format_eval_turn_block_numbering() -> None:
s = format_eval_turn_block(0, "你好", "我在呢")
assert "[Turn 1]" in s
assert "用户: 你好" in s
assert "AI: 我在呢" in s
def test_split_token_normalized_in_ai() -> None:
s = format_eval_turn_block(1, "u", "a[SPLIT]b")
assert "AI: a\nb" in s
def test_export_turns_labels() -> None:
t = format_export_turns_with_labels([("u1", "a1"), ("u2", "a2")])
assert "[Turn 1]" in t
assert "[Turn 2]" in t
def test_pair_session_messages_to_turns() -> None:
msgs = [
SimpleNamespace(role="system", content="x"),
SimpleNamespace(role="human", content="hi"),
SimpleNamespace(role="assistant", content="yo"),
]
assert pair_session_messages_to_turns(msgs) == [("hi", "yo")]
def test_pair_session_messages_trailing_human() -> None:
msgs = [SimpleNamespace(role="human", content="only")]
assert pair_session_messages_to_turns(msgs) == [("only", "")]
def test_session_messages_with_turn_labels() -> None:
msgs = [
SimpleNamespace(role="human", content="你好"),
SimpleNamespace(role="assistant", content="我在"),
]
t = format_session_messages_with_turn_labels(msgs)
assert "[Turn 1]" in t
assert "用户: 你好" in t