# 应用类型标准规范 本文档定义了政智通平台各类型应用的数据格式、UI模式和配置标准。新增应用时必须按照对应类型的标准配置。 --- ## 一、对话型 (chatbot) **UI 模式:** 左侧对话历史列表 + 中间对话区域 + 底部输入框 **适用场景:** 政策问答、法规咨询、通用问答类应用 ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `chatbot` | | `welcome_message` | ✅ | 首次进入时的欢迎语,如"您好!我是XXX助手。" | | `suggested_prompts` | ✅ | JSON数组,3-4条推荐提问,显示为可点击按钮 | | `app_config.system_prompt` | ✅ | 系统提示词,定义AI角色和回答风格 | | `app_config.model` | 可选 | 模型名称,默认 `qwen-plus` | | `app_config.temperature` | 可选 | 温度参数,问答类建议 0.2-0.4 | | `app_config.max_tokens` | 可选 | 最大输出token数 | ### 示例配置 ```json { "app_config": { "system_prompt": "你是一个政策法规智能问答助手,熟悉中国各级政府的法律法规和政策文件。请准确、严谨地回答用户的政策法规相关问题。", "model": "qwen-plus", "temperature": 0.3, "max_tokens": 4000 }, "welcome_message": "您好!我是政策法规智能问答助手。您可以向我咨询各类法律法规和政策条款。", "suggested_prompts": [ "最新的行政处罚法有哪些变化?", "营商环境优化相关政策有哪些?", "政府信息公开条例的适用范围?" ] } ``` ### UI 截图要素 - 顶部:应用图标 + 应用名称 + 描述 + 右侧类型标签"对话型" - 左侧:`+ 新对话` 按钮 + 对话历史列表 - 中间:欢迎消息气泡 + 推荐提问按钮 - 底部:输入框 + 发送按钮 --- ## 二、公文写作型 (chatbot + DOC_WRITER_SLUGS) **UI 模式:** 公文类型卡片网格 + 底部输入框 **适用场景:** 公文拟稿、公文写作助手 **触发条件:** `slug` 必须加入前端 `DOC_WRITER_SLUGS` 集合 ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `chatbot` | | `slug` | ✅ | 必须注册到前端 `DOC_WRITER_SLUGS`,如 `official-doc-writer`、`fagai-doc-writer` | | `app_config.system_prompt` | ✅ | 包含《党政机关公文格式》(GB/T 9704) 相关指引 | | `welcome_message` | ✅ | 如"您好!我是公文写作助手" | | `suggested_prompts` | ✅ | 公文写作相关的推荐提问 | ### 前端注册 在 `apps/web/src/app/(portal)/chat/[appId]/page.tsx` 中: ```typescript const DOC_WRITER_SLUGS = new Set(["official-doc-writer", "fagai-doc-writer"]); ``` ### 示例配置 ```json { "app_config": { "system_prompt": "你是一个专业的公文写作助手,精通《党政机关公文格式》国家标准(GB/T 9704)。请按照规范格式帮助用户拟稿各类公文。" }, "welcome_message": "您好!我是公文写作助手。我可以帮您拟稿各类公文,并确保格式符合标准。", "suggested_prompts": [ "帮我起草一份工作通知", "拟一份关于年度总结的报告" ] } ``` ### UI 截图要素 - 顶部:应用图标 + 名称 + 描述 + 右侧"公文写作"标签 - 左侧:`+ 新建公文` 按钮 + 历史记录 - 中间:**选择公文类型**标题 + 12种公文类型卡片网格(通知、请示、报告、批复、函、通报、意见、决定、会议纪要、公告、科技项目申报通知、科技奖励通报) - 底部:输入框 + 发送按钮 --- ## 三、工作流型 (workflow) **UI 模式:** 步骤进度条 + 分步表单 + 上一步/下一步按钮 **适用场景:** 按步骤收集信息后生成报告/方案的应用 ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `workflow` | | `app_config.app_type` | ✅ | 值为 `workflow` | | `app_config.steps` | ✅ | JSON数组,定义每个步骤的表单字段 | | `app_config.system_prompt` | ✅ | 系统提示词 | | `welcome_message` | 可选 | 步骤开始前的提示语 | ### steps 字段格式 每个step包含: ```json { "key": "字段标识", "label": "步骤标题", "type": "text | textarea | select", "description": "步骤描述(可选)", "placeholder": "输入提示", "required": true, "options": ["选项1", "选项2"] // type为select时必填 } ``` ### 示例配置 ```json { "app_config": { "system_prompt": "你是项目可行性研究专家。请根据用户提供的项目信息,生成专业规范的可行性分析内容。", "model": "qwen-plus", "temperature": 0.3, "max_tokens": 6000, "app_type": "workflow", "steps": [ { "key": "project_name", "label": "项目名称", "type": "text", "placeholder": "如:XX产业园基础设施建设项目", "required": true }, { "key": "project_type", "label": "项目类型", "type": "select", "options": ["基础设施", "产业发展", "社会事业", "生态环保", "科技创新"], "required": true }, { "key": "background", "label": "项目背景", "type": "textarea", "placeholder": "项目建设的背景、必要性、政策依据等", "required": true } ] } } ``` ### UI 截图要素 - 顶部:返回按钮 + 应用图标 + 名称 + 描述 + 右侧"工作流"标签 - 步骤条:圆形标记 + 步骤名称 + 箭头连接 - 表单区域:步骤标题 + 输入控件(文本框/选择器/多行文本) - 底部:上一步/下一步按钮 --- ## 四、补全型 (completion) **UI 模式:** 左侧输入区 + 右侧输出区 **适用场景:** 文本处理、摘要提取、翻译等单次输入输出型应用 ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `completion` | | `app_config.input_label` | ✅ | 输入区域标题,如"文件内容" | | `app_config.output_label` | ✅ | 输出区域标题,如"核心摘要" | | `app_config.input_placeholder` | ✅ | 输入框占位文本 | | `app_config.system_prompt` | ✅ | 系统提示词 | ### 示例配置 ```json { "app_config": { "input_label": "文件内容", "output_label": "核心摘要", "system_prompt": "你是一个政务文件分析专家。请对提供的文件进行分析,输出包含:一句话概要、核心要点、关键数据摘录、政策影响分析、行动建议。", "input_placeholder": "粘贴需要提取摘要的文件内容..." } } ``` ### UI 截图要素 - 顶部:应用名称 + 描述 + 右侧类型标签"补全型" - 左侧:输入标签 + 大文本输入框 - 右侧:输出标签 + 结果展示区域 - 底部:提交按钮 --- ## 五、智能体型 (agent) **UI 模式:** 类似chatbot,但带有工具调用能力展示 **适用场景:** 需要调用多个工具进行综合分析的应用 ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `agent` | | `app_config.tools` | ✅ | 可用工具列表,如 `["数据检索", "趋势分析", "报告生成"]` | | `app_config.system_prompt` | ✅ | 包含工具调用说明的系统提示词 | | `welcome_message` | ✅ | 说明具备的能力 | | `suggested_prompts` | ✅ | 推荐提问 | ### 示例配置 ```json { "app_config": { "tools": ["数据检索", "趋势分析", "对比分析", "报告生成"], "system_prompt": "你是一个综合研判智能体,服务于政府部门的数据分析和决策支持。你具备以下工具能力:1.数据检索 2.趋势分析 3.对比分析 4.报告生成。" }, "welcome_message": "您好!我是综合研判智能助手。我具备数据检索、趋势分析、对比分析和报告生成等能力。", "suggested_prompts": [ "分析本季度经济运行数据", "对比去年同期各项指标变化" ] } ``` ### UI 截图要素 - 顶部:应用图标 + 名称 + 描述 + 右侧"智能体"标签 - 左侧:`+ 新对话` 按钮 + 对话历史 - 中间:欢迎消息(含能力说明)+ 推荐提问 + 工具调用标记展示 - 底部:输入框 + 发送按钮 --- ## 六、PPT生成型 (ppt_generator) **UI 模式:** 文件上传/文本输入 + PPT预览 **适用场景:** 将文档/文本内容转换为PPT ### 数据库字段标准 | 字段 | 必填 | 说明 | |------|------|------| | `dify_app_type` | ✅ | 值为 `ppt_generator` | | `app_config.app_type` | ✅ | 值为 `ppt_generator` | | `app_config.default_config` | ✅ | PPT默认配置(风格、格式、页数等) | | `welcome_message` | ✅ | 说明支持的输入方式 | ### 示例配置 ```json { "app_config": { "app_type": "ppt_generator", "system_prompt": "你是一个专业的演示文稿设计专家。", "default_config": { "style": "general", "format": "ppt169", "page_count": 10, "with_images": true } }, "welcome_message": "您好!我是智能PPT生成助手。请上传源文件或粘贴文本内容,我将为您生成专业的PowerPoint演示文稿。" } ``` --- ## 通用规范 ### 分类图标与颜色 所有机构的相同类型分类应使用统一的图标和颜色,在 `apps/web/src/lib/category-config.ts` 中配置: | 分类类型 | 图标 | 颜色 | |---------|------|------| | 公文写作 | `FileSignature` | `bg-blue-100 text-blue-800` | | 政策解读 | `Scale` | `bg-indigo-100 text-indigo-800` | | 数据分析 | `BarChartBig` | `bg-emerald-100 text-emerald-700` | | 便民服务 | `HeadphonesIcon` | `bg-amber-100 text-amber-700` | | 组织人事 | `UserCog` | `bg-sky-100 text-sky-700` | | 招商引资 | `TrendingUp` | `bg-violet-100 text-violet-700` | | 翻译外事 | `Languages` | `bg-teal-100 text-teal-700` | | 综合应用 | `LayoutGrid` | `bg-gray-100 text-gray-700` | ### 命名规范 - 新机构分类slug格式:`{机构缩写}-{功能}`,如 `fagai-writing`、`gongan-policy` - 应用名统一使用"XX助手"或"XX生成"格式 - 同类应用跨机构使用相同名称(如所有公文写作应用都叫"公文写作助手") ### 详情页 long_description 格式 使用 Markdown 格式,推荐结构: ```markdown ## 功能介绍 简要描述功能: - 功能点1 - 功能点2 - 功能点3 ## 使用方法 使用说明文字。 ```