Merge pull request 'Bug Fixes. Workflow Engine' (#81) from develop into main
All checks were successful
Deploy Production / deploy (push) Successful in 1m0s
Build Test / pytest-backend (push) Successful in 8s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 16s

Reviewed-on: #81
This commit is contained in:
Lars 2026-04-12 14:08:43 +02:00
commit 46b703e5a2
4 changed files with 21 additions and 4 deletions

View File

@ -158,7 +158,8 @@ def parse_decision_questions(section_text: str) -> Dict[str, str]:
for pattern in patterns:
matches = re.finditer(pattern, section_text, re.MULTILINE | re.IGNORECASE)
for match in matches:
question_type = match.group(1).strip().lower()
# Preserve original case for question IDs (e.g., "qAnalyst" not "qanalyst")
question_type = match.group(1).strip()
answer = match.group(2).strip()
# Entferne Klammern und Whitespace

View File

@ -1488,6 +1488,14 @@ async def execute_unified_prompt(
'vitalwerte': 7
}
# 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 = None) -> str:
# Ignore model parameter (already set in OPENROUTER_MODEL env var)
# Use default max_tokens=4096 from call_openrouter
return await call_openrouter(prompt)
# Execute with prompt_executor
# Always enable debug when saving to collect metadata for value table
result = await execute_prompt_with_data(
@ -1495,7 +1503,7 @@ async def execute_unified_prompt(
profile_id=profile_id,
modules=modules,
timeframes=timeframes,
openrouter_call_func=call_openrouter,
openrouter_call_func=workflow_llm_call, # Use wrapper with correct signature
enable_debug=debug or save # Enable debug if saving for metadata collection
)

View File

@ -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

View File

@ -47,7 +47,7 @@ export function QuestionAugmentationPanel({ node, onChange }) {
{questions.map((q, idx) => (
<QuestionEditor
key={q.id}
key={idx}
question={q}
index={idx}
onChange={(field, value) => handleQuestionChange(idx, field, value)}