Kopru: bos donen adim kabul edilmez, siradaki katman yapar
Ne yazi ne arac cagrisi iceren yanit (hata olayi dahil) cevap diye verilmiyor; secili modelde de katmanda da siradaki katmana geciliyor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
77504b9aa4
commit
ff53cafb5c
2 files changed
+20
-10
No files matched your search
@@ -876,7 +876,7 @@ class H(http.server.BaseHTTPRequestHandler):
|
|||||||
Gecerse oldugu gibi verilir; gecmezse atilir ve ayni adimi siradaki katman yapar (ac(ad): (resp, rewriter,
|
Gecerse oldugu gibi verilir; gecmezse atilir ve ayni adimi siradaki katman yapar (ac(ad): (resp, rewriter,
|
||||||
tag)). Son katmanin cevabi sorulmadan akar. Beklerken SSE yorum satiri gider ki Codex akisi kopmus saymasin."""
|
tag)). Son katmanin cevabi sorulmadan akar. Beklerken SSE yorum satiri gider ki Codex akisi kopmus saymasin."""
|
||||||
self._akis_basligi(resp, resp.status)
|
self._akis_basligi(resp, resp.status)
|
||||||
kalan, son_yazi, katmanda = list(sira), time.time(), False
|
kalan, son_yazi = list(sira), time.time()
|
||||||
|
|
||||||
def w(b):
|
def w(b):
|
||||||
if b:
|
if b:
|
||||||
@@ -908,14 +908,12 @@ class H(http.server.BaseHTTPRequestHandler):
|
|||||||
gecmedi = jev_denetim.karar(puan)
|
gecmedi = jev_denetim.karar(puan)
|
||||||
log(f"{tag} katman denetimi: ret={puan['ret']:.2f} sart={puan['sart']:.2f} -> "
|
log(f"{tag} katman denetimi: ret={puan['ret']:.2f} sart={puan['sart']:.2f} -> "
|
||||||
f"{'GECMEDI' if gecmedi else 'gecti'} ({time.time() - t0:.1f} sn, {len(metin)} karakter)")
|
f"{'GECMEDI' if gecmedi else 'gecti'} ({time.time() - t0:.1f} sn, {len(metin)} karakter)")
|
||||||
elif katmanda:
|
elif b'_call"' not in b"".join(parcalar):
|
||||||
# Katman cevap yerine hata dondurduyse (or. arac cagrisi desteklemeyen model "upstream 400")
|
# Bos adim: ne yazi var ne arac cagrisi (hata olayi da boyledir, or. "upstream 400"). Kabul
|
||||||
# acilamamis sayilir; hata cevap diye verilirse Codex ayni adimi bastan dener ve tur cevapsiz kalir.
|
# edilmez, siradaki katman yapar; bos yanit cevap diye verilirse Codex adimi bastan dener.
|
||||||
govde = b"".join(parcalar)
|
gecmedi = True
|
||||||
if (b"event: error" in govde or b'"type":"error"' in govde or b'"type": "error"' in govde
|
log(f"{tag} katman denetimi: bos adim (yazi da komut da yok), siradakine geciliyor: "
|
||||||
or b"response.failed" in govde):
|
f"{b''.join(parcalar)[-200:]!r}")
|
||||||
gecmedi = True
|
|
||||||
log(f"{tag} katman denetimi: katman hata dondurdu, siradakine geciliyor: {govde[-200:]!r}")
|
|
||||||
yeni = None
|
yeni = None
|
||||||
while gecmedi and kalan and yeni is None:
|
while gecmedi and kalan and yeni is None:
|
||||||
ad = kalan.pop(0)
|
ad = kalan.pop(0)
|
||||||
@@ -926,7 +924,6 @@ class H(http.server.BaseHTTPRequestHandler):
|
|||||||
if yeni is None:
|
if yeni is None:
|
||||||
break
|
break
|
||||||
resp, rewriter, tag = yeni
|
resp, rewriter, tag = yeni
|
||||||
katmanda = True
|
|
||||||
log(f"{tag} katman denetimi: adim bu katmana verildi")
|
log(f"{tag} katman denetimi: adim bu katmana verildi")
|
||||||
if not kalan:
|
if not kalan:
|
||||||
return self._stream(resp, resp.status, tag, rewriter, izle, basliksiz=True)
|
return self._stream(resp, resp.status, tag, rewriter, izle, basliksiz=True)
|
||||||
|
|||||||
@@ -218,6 +218,19 @@ class Akis(unittest.TestCase):
|
|||||||
self.assertEqual(self.sent(), body)
|
self.assertEqual(self.sent(), body)
|
||||||
self.assertEqual(self.asked, [])
|
self.assertEqual(self.asked, [])
|
||||||
|
|
||||||
|
def test_an_empty_step_of_the_selected_model_goes_to_the_next_layer(self):
|
||||||
|
self.calistir(sse()) # no text, no tool call
|
||||||
|
self.assertEqual(self.asked, ["iki"]) # nothing to ask about the empty step itself
|
||||||
|
self.assertEqual(self.opened, ["Katman-2"])
|
||||||
|
self.assertEqual(self.sent(), self.cevap["Katman-2"])
|
||||||
|
|
||||||
|
def test_an_empty_layer_goes_on_to_the_one_after_it(self):
|
||||||
|
self.puanlar = [{"ret": 0.9, "sart": 0.0}]
|
||||||
|
self.cevap["Katman-2"] = sse()
|
||||||
|
self.calistir(sse("hayir"))
|
||||||
|
self.assertEqual(self.opened, ["Katman-2", "Katman-3"])
|
||||||
|
self.assertEqual(self.sent(), self.cevap["Katman-3"])
|
||||||
|
|
||||||
def test_unreachable_jev_keeps_the_answer(self):
|
def test_unreachable_jev_keeps_the_answer(self):
|
||||||
self.puanlar = [None]
|
self.puanlar = [None]
|
||||||
body = sse("Bunu yapamam.")
|
body = sse("Bunu yapamam.")
|
||||||
|
|||||||
Reference in new issue
Block a user