harnessed_reasoning/wwwroot/api/config_get.dspy

43 lines
1.5 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Get reasoning configuration for current user"""
import json
result = {'success': False, 'config': {}}
try:
dbname = get_module_dbname('harnessed_reasoning')
user_id = await get_user()
sql = """SELECT * FROM harnessed_reasoning_config
WHERE user_id = ${user_id}$
ORDER BY updated_at DESC
LIMIT 1"""
async with DBPools().sqlorContext(dbname) as sor:
rows = await sor.sqlExe(sql, {'user_id': user_id})
if rows and len(rows) > 0:
config = dict(rows[0])
# Convert string booleans to actual booleans for UI
config['enable_cross_session_search'] = config.get('enable_cross_session_search', '1') == '1'
config['enable_skill_auto_loading'] = config.get('enable_skill_auto_loading', '1') == '1'
config['enable_error_recovery'] = config.get('enable_error_recovery', '1') == '1'
result['config'] = config
else:
result['config'] = {
'max_reasoning_steps': 10,
'max_tool_calls_per_step': 5,
'enable_cross_session_search': True,
'enable_skill_auto_loading': True,
'safety_mode': 'strict',
'max_context_tokens': 4000,
'enable_error_recovery': True,
'max_recovery_attempts': 3
}
result['success'] = True
except Exception as e:
result['error'] = str(e)
return json.dumps(result, ensure_ascii=False, default=str)