Add BACKGROUND_MODEL to split chat and background LLM calls

Dossier extraction and compaction now use a separate BACKGROUND_MODEL
(dolphin-mistral) to avoid Qwen3.5 timeout issues on background tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Suppai_NekoandClaude Sonnet 4.6 committed 2026-03-18 12:39:35 -07:00
1 parent ca02574719
commit c807492c80
1 file changed
+4 -3
+4 -3
View File
@@ -26,6 +26,7 @@ DISCORD_TOKEN = os.environ["DISCORD_TOKEN"]
LITELLM_BASE_URL = os.environ["LITELLM_BASE_URL"] LITELLM_BASE_URL = os.environ["LITELLM_BASE_URL"]
LITELLM_API_KEY = os.getenv("LITELLM_API_KEY", "anything") LITELLM_API_KEY = os.getenv("LITELLM_API_KEY", "anything")
MODEL = os.getenv("MODEL", "gpt-4") MODEL = os.getenv("MODEL", "gpt-4")
BACKGROUND_MODEL = os.getenv("BACKGROUND_MODEL", MODEL)
SYSTEM_PROMPT = os.getenv("SYSTEM_PROMPT", "You are a helpful assistant.") SYSTEM_PROMPT = os.getenv("SYSTEM_PROMPT", "You are a helpful assistant.")
MAX_CONTEXT = int(os.getenv("MAX_CONTEXT", "20")) MAX_CONTEXT = int(os.getenv("MAX_CONTEXT", "20"))
MCP_URL = os.getenv("MCP_URL", "http://mcp-searxng:4001/mcp") MCP_URL = os.getenv("MCP_URL", "http://mcp-searxng:4001/mcp")
@@ -147,7 +148,7 @@ async def maybe_compact_dossier(key: str, name: str):
try: try:
response = await asyncio.wait_for( response = await asyncio.wait_for(
llm.chat.completions.create( llm.chat.completions.create(
model=MODEL, model=BACKGROUND_MODEL,
messages=[ messages=[
{ {
"role": "system", "role": "system",
@@ -236,7 +237,7 @@ async def extract_and_update_dossier(user: discord.Member | discord.User, conver
t0 = time.monotonic() t0 = time.monotonic()
try: try:
response = await asyncio.wait_for( response = await asyncio.wait_for(
llm.chat.completions.create(model=MODEL, messages=extraction_messages), llm.chat.completions.create(model=BACKGROUND_MODEL, messages=extraction_messages),
timeout=BACKGROUND_LLM_TIMEOUT, timeout=BACKGROUND_LLM_TIMEOUT,
) )
elapsed = time.monotonic() - t0 elapsed = time.monotonic() - t0
@@ -301,7 +302,7 @@ async def extract_and_update_self_dossier(conversation: list[dict]):
t0 = time.monotonic() t0 = time.monotonic()
try: try:
response = await asyncio.wait_for( response = await asyncio.wait_for(
llm.chat.completions.create(model=MODEL, messages=extraction_messages), llm.chat.completions.create(model=BACKGROUND_MODEL, messages=extraction_messages),
timeout=BACKGROUND_LLM_TIMEOUT, timeout=BACKGROUND_LLM_TIMEOUT,
) )
elapsed = time.monotonic() - t0 elapsed = time.monotonic() - t0