fix(codex-link): only reject degenerate summaries, not short correct ones
The size-proportional minimum (input/250, cap 4000) rejected a correct summary: a 646,955 byte thread (225k tokens, five labelled facts in a long log) was summarized by the subscription model in 1501-1701 characters, the bridge demanded 2587, and Codex could not continue the thread on the selected model. The floor now only catches broken output (input/2000, cap 300). Memory loss is prevented by who writes the summary, not by its length. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
94e4aa2a74
commit
9739222919
2 files changed
+16
-10
No files matched your search
@@ -51,11 +51,13 @@ KISA_MESAJI = ("AstraBridge: Sohbet ozeti cok kisa cikti (%d karakter, en az %d
|
||||
|
||||
def en_az_karakter(girdi_bayt, ayar=None):
|
||||
"""Bu buyuklukteki bir konusmanin ozeti en az kac karakter olmali.
|
||||
Olcu: 10 Ekim 2026'da 1.018.151 baytlik sohbet 2201 karaktere indi ve hafiza kayboldu.
|
||||
Kucuk sohbetlerde esik kuculur ki kisa ama dogru ozetler reddedilmesin."""
|
||||
Yalniz bozuk/bos sayilacak kadar kisa ozeti yakalar; ozetin yeterliligini boyuttan cikarmaz.
|
||||
Olcum (10 Ekim 2026, 646.955 baytlik gunluk + bes olgu): guclu modelin dogru ozeti 1500-1700
|
||||
karakterdi; boyuta oranli yuksek esik (2587) bu dogru ozeti reddedip sohbeti kilitledi.
|
||||
Hafiza kaybinin asil onlemi ozeti guclu modele yazdirmaktir (bridge.py _ozet_openai)."""
|
||||
ayar = ayar or {}
|
||||
tavan = int(ayar.get("en_az_tavan", 4000))
|
||||
oran = max(1, int(ayar.get("en_az_oran", 250))) # her 250 bayt girdi icin 1 karakter
|
||||
tavan = int(ayar.get("en_az_tavan", 300))
|
||||
oran = max(1, int(ayar.get("en_az_oran", 2000))) # her 2000 bayt girdi icin 1 karakter
|
||||
return max(0, min(tavan, int(girdi_bayt) // oran))
|
||||
|
||||
|
||||
|
||||
@@ -110,13 +110,17 @@ class Akis(unittest.TestCase):
|
||||
self.assertEqual(o.ozet_metni(coz(a.feed(ham))[1]["item"]), "ozet metni")
|
||||
|
||||
def test_anormal_kisa_ozet_gecmisin_yerine_konmaz(self):
|
||||
# 10 Ekim 2026: 1.018.151 baytlik sohbet 2201 karaktere indi; bu ozet kabul edilmemeli.
|
||||
self.assertEqual(o.en_az_karakter(1018151), 4000)
|
||||
self.assertEqual(o.en_az_karakter(100000), 400)
|
||||
# Esik yalniz bozuk sayilacak kadar kisa ozeti yakalar. 10 Ekim 2026 olcumu: 646.955 baytlik
|
||||
# sohbetin dogru ozeti 1501-1701 karakterdi ve boyuta oranli eski esik onu reddedip sohbeti kilitledi.
|
||||
self.assertEqual(o.en_az_karakter(1018151), 300)
|
||||
self.assertEqual(o.en_az_karakter(646955), 300)
|
||||
self.assertEqual(o.en_az_karakter(100000), 50)
|
||||
self.assertEqual(o.en_az_karakter(0), 0)
|
||||
self.assertEqual(o.en_az_karakter(1018151, {"en_az_tavan": 1500}), 1500)
|
||||
self.assertEqual(o.en_az_karakter(1018151, {"en_az_tavan": 1500, "en_az_oran": 250}), 1500)
|
||||
for gercek_ozet in (1501, 1648, 1701):
|
||||
self.assertGreater(gercek_ozet, o.en_az_karakter(646955))
|
||||
ham = sse({"type": "response.created", "response": {"id": "r1"}},
|
||||
{"type": "response.output_item.done", "item": self._mesaj("k" * 2201)},
|
||||
{"type": "response.output_item.done", "item": self._mesaj("k" * 120)},
|
||||
{"type": "response.completed", "response": {"id": "r1", "status": "completed"}})
|
||||
a = o.OzetAkisi(tohum="7", en_az=o.en_az_karakter(1018151))
|
||||
olaylar = coz(a.feed(ham) + a.flush())
|
||||
@@ -126,7 +130,7 @@ class Akis(unittest.TestCase):
|
||||
self.assertTrue(a.kisa)
|
||||
self.assertIn("REDDEDILDI", a.sonuc_notu())
|
||||
# Yeterli uzunlukta ozet ayni esikle kabul edilir; kucuk sohbetin kisa ozeti de reddedilmez.
|
||||
for metin, esik in (("u" * 4000, o.en_az_karakter(1018151)), ("kisa ama dogru ozet", o.en_az_karakter(3000))):
|
||||
for metin, esik in (("u" * 1501, o.en_az_karakter(646955)), ("kisa ama dogru ozet", o.en_az_karakter(3000))):
|
||||
b = o.OzetAkisi(tohum="8", en_az=esik)
|
||||
ham2 = sse({"type": "response.output_item.done", "item": self._mesaj(metin)},
|
||||
{"type": "response.completed", "response": {"id": "r2"}})
|
||||
|
||||
Reference in new issue
Block a user