02- Dify部分代码分析
api/constants/model_template.py
import json
from models.model import AppMode
default_app_templates = {
# workflow default mode
AppMode.WORKFLOW: {
"app": {
"mode": AppMode.WORKFLOW.value,
"enable_site": True,
"enable_api": True,
}
},
# completion default mode
AppMode.COMPLETION: {
"app": {
"mode": AppMode.COMPLETION.value,
"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.value,
"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.value,
"enable_site": True,
"enable_api": True,
},
},
# agent-chat default mode
AppMode.AGENT_CHAT: {
"app": {
"mode": AppMode.AGENT_CHAT.value,
"enable_site": True,
"enable_api": True,
},
"model_config": {
"model": {
"provider": "openai",
"name": "gpt-4o",
"mode": "chat",
"completion_params": {},
},
},
},
}
这里的代码定义了一个字典default_app_templates
,用于存储不同应用模式的默认配置。每个模式对应一个嵌套字典,包含应用的基本配置和模型配置。
具体包括:
- WORKFLOW模式:仅包含应用的基本配置
- COMPLETION模式:包含应用的基本配置和模型配置,模型配置中指定了OpenAI的GPT-4模型,并定义了用户输入表单和预提示。
- CHAT 模式:包含应用的基本配置和模型配置,模型配置中指定了OpenAI的GPT-4模型。
- ADVANCED_CHAT 模式:仅包含应用的基本配置。
- AGENT_CHAT 模式:包含应用的基本配置和模型配置,模型配置中指定了OpenAI的GPT-4模型。
控制流图
说明
A[开始]:程序开始。
B{选择应用模式}:根据不同的应用模式选择相应的配置。
C[配置WORKFLOW模式]:配置WORKFLOW模式的默认设置。
D[配置COMPLETION模式]:配置COMPLETION模式的默认设置。
E[配置CHAT模式]:配置CHAT模式的默认设置。
F[配置ADVANCED_CHAT模式]:配置ADVANCED_CHAT模式的默认设置。
G[配置AGENT_CHAT模式]:配置AGENT_CHAT模式的默认设置。
H[结束]:程序结束。