feat: PromptRegistry 注册/版本/渲染(jinja2)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import pytest
|
||||
|
||||
from genesis.inference.prompt_registry import PromptRegistry
|
||||
from genesis.inference.types import Prompt
|
||||
|
||||
|
||||
def test_register_and_render():
|
||||
reg = PromptRegistry()
|
||||
reg.register("writer", "v1", "按规则撰写:{{ chapter }}")
|
||||
assert reg.get("writer", "v1") == "按规则撰写:{{ chapter }}"
|
||||
|
||||
|
||||
def test_get_with_variables_renders():
|
||||
reg = PromptRegistry()
|
||||
reg.register("writer", "v1", "按规则撰写:{{ chapter }}")
|
||||
assert reg.get("writer", "v1", {"chapter": "帳票設計"}) == "按规则撰写:帳票設計"
|
||||
|
||||
|
||||
def test_get_latest_version():
|
||||
reg = PromptRegistry()
|
||||
reg.register("writer", "v1", "t1")
|
||||
reg.register("writer", "v2", "t2")
|
||||
assert reg.get("writer") == "t2"
|
||||
assert reg.list_versions("writer") == ["v1", "v2"]
|
||||
|
||||
|
||||
def test_get_missing_raises_keyerror():
|
||||
reg = PromptRegistry()
|
||||
with pytest.raises(KeyError):
|
||||
reg.get("dne")
|
||||
|
||||
|
||||
def test_get_missing_version_raises_keyerror():
|
||||
reg = PromptRegistry()
|
||||
reg.register("writer", "v1", "t1")
|
||||
with pytest.raises(KeyError):
|
||||
reg.get("writer", "v9")
|
||||
|
||||
|
||||
def test_render_raw():
|
||||
reg = PromptRegistry()
|
||||
assert reg.render("{{ a }} と {{ b }}", {"a": "x", "b": 1}) == "x と 1"
|
||||
Reference in New Issue
Block a user