Add global research verification policy
This commit is contained in:
@@ -26,6 +26,7 @@ from router_support import ( # noqa: E402
|
||||
from ai_profile_router import ( # noqa: E402
|
||||
_cap_chat_generation,
|
||||
_context_matches,
|
||||
_inject_global_system_policy,
|
||||
_normalize_chat_image,
|
||||
_normalize_chat_images,
|
||||
_normalize_llamacpp_reasoning,
|
||||
@@ -201,6 +202,53 @@ class ChatGenerationLimitTests(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
class GlobalSystemPolicyTests(unittest.TestCase):
|
||||
def _inject(self, request: dict, path: str,
|
||||
policy: str = "Verify facts.") -> dict:
|
||||
with patch("ai_profile_router._load_global_system_policy",
|
||||
return_value=policy):
|
||||
return _inject_global_system_policy(request, path)
|
||||
|
||||
def test_chat_policy_precedes_existing_system_prompt(self) -> None:
|
||||
request = {"messages": [
|
||||
{"role": "system", "content": "Client policy."},
|
||||
{"role": "user", "content": "Hello"},
|
||||
]}
|
||||
normalized = self._inject(request, "/v1/chat/completions")
|
||||
self.assertEqual(
|
||||
normalized["messages"][0]["content"],
|
||||
"Verify facts.\n\nClient policy.",
|
||||
)
|
||||
|
||||
def test_chat_policy_is_inserted_without_system_prompt(self) -> None:
|
||||
request = {"messages": [{"role": "user", "content": "Hello"}]}
|
||||
normalized = self._inject(request, "/v1/chat/completions")
|
||||
self.assertEqual(normalized["messages"][0], {
|
||||
"role": "system", "content": "Verify facts.",
|
||||
})
|
||||
|
||||
def test_policy_is_not_duplicated(self) -> None:
|
||||
request = {"messages": [{
|
||||
"role": "system", "content": "Verify facts.\n\nClient policy.",
|
||||
}]}
|
||||
normalized = self._inject(request, "/v1/chat/completions")
|
||||
self.assertEqual(
|
||||
normalized["messages"][0]["content"].count("Verify facts."), 1)
|
||||
|
||||
def test_responses_policy_precedes_instructions(self) -> None:
|
||||
request = {"instructions": "Client policy.", "input": "Hello"}
|
||||
normalized = self._inject(request, "/v1/responses")
|
||||
self.assertEqual(
|
||||
normalized["instructions"],
|
||||
"Verify facts.\n\nClient policy.",
|
||||
)
|
||||
|
||||
def test_unrelated_endpoint_is_unchanged(self) -> None:
|
||||
request = {"prompt": "Draw a cat"}
|
||||
self.assertEqual(
|
||||
self._inject(request, "/v1/images/generations"), request)
|
||||
|
||||
|
||||
class RetentionTests(unittest.TestCase):
|
||||
def test_oldest_pairs_are_removed(self) -> None:
|
||||
with tempfile.TemporaryDirectory() as temp:
|
||||
|
||||
Reference in New Issue
Block a user