import json from collections.abc import Mapping from models.model import AppMode default_app_templates: Mapping[AppMode, Mapping] = { # workflow default mode AppMode.WORKFLOW: { "app": { "mode": AppMode.WORKFLOW, "enable_site": True, "enable_api": True, } }, # completion default mode AppMode.COMPLETION: { "app": { "mode": AppMode.COMPLETION, "enable_site": True, "enable_api": True, }, "model_config": { "model": { "provider": "openai", "name": "gpt-4o", "mode": "chat", "completion_params": {}, }, "user_input_form": json.dumps( [ { "paragraph": { "label": "Query", "variable": "query", "required": True, "default": "", }, }, ] ), "pre_prompt": "{{query}}", }, }, # chat default mode AppMode.CHAT: { "app": { "mode": AppMode.CHAT, "enable_site": True, "enable_api": True, }, "model_config": { "model": { "provider": "openai", "name": "gpt-4o", "mode": "chat", "completion_params": {}, }, }, }, # advanced-chat default mode AppMode.ADVANCED_CHAT: { "app": { "mode": AppMode.ADVANCED_CHAT, "enable_site": True, "enable_api": True, }, }, # agent-chat default mode AppMode.AGENT_CHAT: { "app": { "mode": AppMode.AGENT_CHAT, "enable_site": True, "enable_api": True, }, "model_config": { "model": { "provider": "openai", "name": "gpt-4o", "mode": "chat", "completion_params": {}, }, }, }, # agent default mode (new Agent App type). The runtime model / prompt / tools # come from the bound Agent Soul snapshot, so no model_config is seeded in the # template; create_app still creates a model-less app_model_config row to hold # app-level presentation features (opener, follow-up, citations, ...). AppMode.AGENT: { "app": { "mode": AppMode.AGENT, "enable_site": True, "enable_api": True, }, }, }