fix(codex-bridge): preserve tool model and stream preparation without Jev fallback
This commit is contained in:
1 parent
8fbbe226db
commit
3726d2a553
6 files changed
+118
-14
No files matched your search
@@ -93,6 +93,32 @@ def son_istek(req):
|
||||
return ""
|
||||
|
||||
|
||||
def hazirlik_mi(govde):
|
||||
"""Araç çağrısı veya commentary görüldüyse adım nihai cevap değildir.
|
||||
|
||||
Tam SSE satırları üzerinden bakılır; parçalı olay bir sonraki parçada tamamlanır.
|
||||
Araç argümanında geçen olay adı hazırlık sayılmaz.
|
||||
"""
|
||||
for satir in govde.splitlines():
|
||||
if not satir.startswith(b'data:'):
|
||||
continue
|
||||
try:
|
||||
olay = json.loads(satir[5:])
|
||||
except (ValueError, UnicodeDecodeError):
|
||||
continue
|
||||
if not isinstance(olay, dict):
|
||||
continue
|
||||
tip = str(olay.get('type') or '')
|
||||
oge = olay.get('item') or {}
|
||||
if tip in ('response.output_item.added', 'response.output_item.done') and isinstance(oge, dict):
|
||||
if str(oge.get('type') or '').endswith('_call') or oge.get('phase') == 'commentary':
|
||||
return True
|
||||
if tip in ('response.function_call_arguments.delta', 'response.function_call_arguments.done',
|
||||
'response.custom_tool_call_input.delta', 'response.custom_tool_call_input.done'):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def komutlar(govde):
|
||||
"""Yazisi olmayan adimda Jev'e giden metin: modelin bu adimda cagirdigi araclar (ad ve arguman).
|
||||
govde: ust kaynagin SSE yaniti (bayt). Arac cagrisi yoksa ""."""
|
||||
|
||||
Reference in new issue
Block a user