feat: implement automatic payload candidate retry mechanism in AIPlanner for improved LM Studio compatibility
This commit is contained in:
@@ -4,14 +4,28 @@ from ai_planner import AIPlanner
|
||||
|
||||
|
||||
class TestAIPlannerLMStudioCompat(unittest.TestCase):
|
||||
def test_build_chat_payload_includes_input_for_responses_compat(self):
|
||||
def test_build_chat_payload_has_legacy_chat_keys(self):
|
||||
payload = AIPlanner._build_chat_payload("hello")
|
||||
|
||||
self.assertIn("messages", payload)
|
||||
self.assertIn("input", payload)
|
||||
self.assertEqual(payload["input"], "hello")
|
||||
self.assertIn("options", payload)
|
||||
self.assertEqual(payload["messages"][1]["content"], "hello")
|
||||
|
||||
def test_build_input_only_payload_has_minimal_keys(self):
|
||||
payload = AIPlanner._build_input_only_payload("hello")
|
||||
|
||||
self.assertIn("input", payload)
|
||||
self.assertNotIn("messages", payload)
|
||||
self.assertEqual(payload["stream"], False)
|
||||
self.assertIn("hello", payload["input"])
|
||||
|
||||
def test_payload_candidates_order(self):
|
||||
payloads = AIPlanner._build_payload_candidates("hello")
|
||||
self.assertEqual(len(payloads), 2)
|
||||
self.assertIn("messages", payloads[0])
|
||||
self.assertIn("input", payloads[1])
|
||||
self.assertNotIn("messages", payloads[1])
|
||||
|
||||
def test_extract_response_content_supports_message_content(self):
|
||||
data = {
|
||||
"message": {
|
||||
|
||||
Reference in New Issue
Block a user