fix: Add wrapper function for workflow LLM calls to prevent max_tokens signature mismatch
Problem: workflow_executor calls openrouter_call_func(prompt, model) but call_openrouter expects (prompt, max_tokens=4096). This caused the model string 'anthropic/claude-sonnet-4' to be passed as max_tokens, resulting in OpenRouter requesting 64000 tokens and failing with 402 credit errors. Solution: Added workflow_llm_call() wrapper in workflows.py that matches the expected (prompt, model) -> str signature and calls call_openrouter correctly. Fixes: All workflows failing with 402 'insufficient credits' errors
This commit is contained in:
parent
77f1ed14c5
commit
cb3aa48999
|
|
@ -86,11 +86,19 @@ async def execute_workflow_endpoint(
|
|||
"type": "workflow"
|
||||
}
|
||||
|
||||
# Wrapper function to match workflow_executor's expected signature: (prompt, model) -> str
|
||||
# workflow_executor calls: openrouter_call_func(prompt, "anthropic/claude-sonnet-4")
|
||||
# but call_openrouter expects: call_openrouter(prompt, max_tokens=4096)
|
||||
async def workflow_llm_call(prompt: str, model: str) -> str:
|
||||
# Ignore model parameter (already set in OPENROUTER_MODEL env var)
|
||||
# Use default max_tokens=4096 from call_openrouter
|
||||
return await call_openrouter(prompt)
|
||||
|
||||
try:
|
||||
result = await execute_workflow_prompt(
|
||||
prompt=workflow_prompt,
|
||||
variables=variables,
|
||||
openrouter_call_func=call_openrouter,
|
||||
openrouter_call_func=workflow_llm_call, # Use wrapper with correct signature
|
||||
enable_debug=request.enable_debug
|
||||
)
|
||||
return result
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user