feat(api): add OpenAI-compatible endpoint with x-session-key isolation

This commit is contained in:
Tink
2026-03-01 10:53:45 +08:00
parent e1832e75b5
commit 80219baf25
9 changed files with 1387 additions and 26 deletions
+7 -7
View File
@@ -509,7 +509,7 @@ class TestConsolidationDeduplicationGuard:
consolidation_calls = 0
async def _fake_consolidate(_session, archive_all: bool = False) -> None:
async def _fake_consolidate(_session, archive_all: bool = False, **kw) -> None:
nonlocal consolidation_calls
consolidation_calls += 1
await asyncio.sleep(0.05)
@@ -555,7 +555,7 @@ class TestConsolidationDeduplicationGuard:
active = 0
max_active = 0
async def _fake_consolidate(_session, archive_all: bool = False) -> None:
async def _fake_consolidate(_session, archive_all: bool = False, **kw) -> None:
nonlocal consolidation_calls, active, max_active
consolidation_calls += 1
active += 1
@@ -605,7 +605,7 @@ class TestConsolidationDeduplicationGuard:
started = asyncio.Event()
async def _slow_consolidate(_session, archive_all: bool = False) -> None:
async def _slow_consolidate(_session, archive_all: bool = False, **kw) -> None:
started.set()
await asyncio.sleep(0.1)
@@ -652,7 +652,7 @@ class TestConsolidationDeduplicationGuard:
release = asyncio.Event()
archived_count = 0
async def _fake_consolidate(sess, archive_all: bool = False) -> bool:
async def _fake_consolidate(sess, archive_all: bool = False, **kw) -> bool:
nonlocal archived_count
if archive_all:
archived_count = len(sess.messages)
@@ -707,7 +707,7 @@ class TestConsolidationDeduplicationGuard:
loop.sessions.save(session)
before_count = len(session.messages)
async def _failing_consolidate(sess, archive_all: bool = False) -> bool:
async def _failing_consolidate(sess, archive_all: bool = False, **kw) -> bool:
if archive_all:
return False
return True
@@ -754,7 +754,7 @@ class TestConsolidationDeduplicationGuard:
release = asyncio.Event()
archived_count = -1
async def _fake_consolidate(sess, archive_all: bool = False) -> bool:
async def _fake_consolidate(sess, archive_all: bool = False, **kw) -> bool:
nonlocal archived_count
if archive_all:
archived_count = len(sess.messages)
@@ -815,7 +815,7 @@ class TestConsolidationDeduplicationGuard:
loop._consolidation_locks.setdefault(session.key, asyncio.Lock())
assert session.key in loop._consolidation_locks
async def _ok_consolidate(sess, archive_all: bool = False) -> bool:
async def _ok_consolidate(sess, archive_all: bool = False, **kw) -> bool:
return True
loop._consolidate_memory = _ok_consolidate # type: ignore[method-assign]