Kopru: her adim Jev'e gider, sure ve boyut siniri yok
Yazisiz adimda cagrilan komut sorulur; kullanici mesaji bulunamasa da sorulur; Jev'e giden istek ve cevap kesilmez, bekleme suresi siniri yok. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
ff53cafb5c
commit
7547de1852
3 files changed
+46
-25
No files matched your search
@@ -89,18 +89,18 @@ class Sor(unittest.TestCase):
|
||||
def test_request_shape_and_scores(self):
|
||||
seen = {}
|
||||
|
||||
def gonder(govde, key, sure):
|
||||
def gonder(govde, key):
|
||||
seen.update(govde=govde, key=key)
|
||||
return {"answers": {k: {"type": "noul", "noul": 0.25} for k in jev_denetim.SORU}}
|
||||
self.assertEqual(jev_denetim.sor("istek", "c" * 9000, "anahtar", gonder=gonder), {"ret": 0.25, "sart": 0.25})
|
||||
self.assertEqual(seen["key"], "anahtar")
|
||||
self.assertEqual(seen["govde"]["state"]["user_request"], "istek")
|
||||
self.assertLess(len(seen["govde"]["state"]["assistant_reply"]), 6100)
|
||||
self.assertEqual(seen["govde"]["state"]["assistant_reply"], "c" * 9000)
|
||||
|
||||
def test_failures_return_none_every_time(self):
|
||||
calls = []
|
||||
|
||||
def bozuk(govde, key, sure):
|
||||
def bozuk(govde, key):
|
||||
calls.append(1)
|
||||
raise OSError("ulasilamadi")
|
||||
for _ in range(5):
|
||||
@@ -126,6 +126,7 @@ class Akis(unittest.TestCase):
|
||||
sahte.anahtar = lambda: "k"
|
||||
sahte.sor = self.sor
|
||||
sahte.karar = jev_denetim.karar
|
||||
sahte.komutlar = jev_denetim.komutlar
|
||||
env = {"jev_denetim": sahte, "yarim": yarim, "time": time, "http": __import__("http.client"),
|
||||
"log": self.logs.append, "RESP_HOP": set(), "json": json}
|
||||
adlar = ("_akis_basligi", "_denetimli_akis", "_stream")
|
||||
@@ -212,11 +213,20 @@ class Akis(unittest.TestCase):
|
||||
self.assertEqual(self.sent(), self.cevap["Katman-3"])
|
||||
self.assertNotIn(b"upstream 400", self.h.wfile.getvalue())
|
||||
|
||||
def test_a_step_without_text_is_not_sent_to_jev(self):
|
||||
body = b'event: response.output_item.done\ndata: {"type": "response.output_item.done", "item": {"type": "function_call"}}\n\n' + sse()
|
||||
KOMUT = (b'event: response.output_item.done\ndata: {"type": "response.output_item.done", "item": '
|
||||
b'{"type": "function_call", "name": "shell", "arguments": "{\\"cmd\\": \\"dir\\"}"}}\n\n')
|
||||
|
||||
def test_a_step_without_text_is_asked_with_its_tool_calls(self):
|
||||
body = self.KOMUT + sse()
|
||||
self.calistir(body)
|
||||
self.assertEqual(self.sent(), body)
|
||||
self.assertEqual(self.asked, [])
|
||||
self.assertEqual(self.asked, ['[komut] shell: {"cmd": "dir"}'])
|
||||
|
||||
def test_a_blocked_step_without_text_goes_to_the_next_layer(self):
|
||||
self.puanlar = [{"ret": 0.9, "sart": 0.0}]
|
||||
self.calistir(self.KOMUT + sse())
|
||||
self.assertEqual(self.opened, ["Katman-2"])
|
||||
self.assertEqual(self.sent(), self.cevap["Katman-2"])
|
||||
|
||||
def test_an_empty_step_of_the_selected_model_goes_to_the_next_layer(self):
|
||||
self.calistir(sse()) # no text, no tool call
|
||||
|
||||
Reference in new issue
Block a user