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,用于存储不同应用模式的默认配置。每个模式对应一个嵌套字典,包含应用的基本配置和模型配置。

具体包括:

  1. WORKFLOW模式:仅包含应用的基本配置
  2. COMPLETION模式:包含应用的基本配置和模型配置,模型配置中指定了OpenAI的GPT-4模型,并定义了用户输入表单和预提示。
  3. CHAT 模式:包含应用的基本配置和模型配置,模型配置中指定了OpenAI的GPT-4模型。
  4. ADVANCED_CHAT 模式:仅包含应用的基本配置。
  5. 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[结束]:程序结束。

posted @ 2024-10-25 15:32  澄小兮  阅读(79)  评论(0编辑  收藏  举报