Add the decisive probe case with two system messages, the shape the bought Gemini cells actually used
This commit is contained in:
parent
20783511e0
commit
2b665fd5c4
1 changed files with 13 additions and 2 deletions
|
|
@ -43,10 +43,21 @@ def main() -> int:
|
||||||
sysm = "\n\n".join(x["content"] for x in full if x["role"] == "system")
|
sysm = "\n\n".join(x["content"] for x in full if x["role"] == "system")
|
||||||
usr = next(x["content"] for x in full if x["role"] == "user")
|
usr = next(x["content"] for x in full if x["role"] == "user")
|
||||||
led = R.MONEY.Guarded("ФД-N", default_expect=0.01)
|
led = R.MONEY.Guarded("ФД-N", default_expect=0.01)
|
||||||
|
# ⚠ ТРЕТИЙ СЛУЧАЙ — РЕШАЮЩИЙ. Первые два показали, что счётчик исправен и полный промт доезжает,
|
||||||
|
# КОГДА системное сообщение ОДНО. Боевой арм шлёт ДВА системных (ядро роли + банк-закон) плюс
|
||||||
|
# user, и намерил 515 токенов — это примерно ровно размер ОДНОГО user-сообщения. Проверяем
|
||||||
|
# прямую гипотезу: слой OpenAI у Gemini теряет системные сообщения, когда их больше одного.
|
||||||
cases = [("короткий system", "short", "Ты — переводчик. " + MARK),
|
cases = [("короткий system", "short", "Ты — переводчик. " + MARK),
|
||||||
("ПОЛНЫЙ system роли", "full", sysm + "\n\n" + MARK)]
|
("ПОЛНЫЙ system роли", "full", sysm + "\n\n" + MARK),
|
||||||
|
("ДВА системных, как у боевого арма", "two", None)]
|
||||||
for name, slug, s in cases:
|
for name, slug, s in cases:
|
||||||
msgs = [{"role": "system", "content": s}, {"role": "user", "content": usr}]
|
if s is None:
|
||||||
|
msgs = [x for x in full if x["role"] == "system"]
|
||||||
|
msgs = [dict(x) for x in msgs] + [{"role": "user", "content": usr}]
|
||||||
|
msgs[0]["content"] = msgs[0]["content"] + "\n\n" + MARK
|
||||||
|
s = "\n\n".join(x["content"] for x in msgs if x["role"] == "system")
|
||||||
|
else:
|
||||||
|
msgs = [{"role": "system", "content": s}, {"role": "user", "content": usr}]
|
||||||
rec = R.MONEY.purchase(led, f"dv-n-probe-gemsys-{slug}", "gemini-3.1-flash-lite",
|
rec = R.MONEY.purchase(led, f"dv-n-probe-gemsys-{slug}", "gemini-3.1-flash-lite",
|
||||||
R.ED22.client("gemini-3.1-flash-lite"),
|
R.ED22.client("gemini-3.1-flash-lite"),
|
||||||
R.call_kwargs("gemini-3.1-flash-lite", msgs, "RE"),
|
R.call_kwargs("gemini-3.1-flash-lite", msgs, "RE"),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue