Files
zhuangang/topics/ai/lowcode/scenarios/poc-to-production.md
T

81 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: ai.lowcode.scenario.poc-to-production
title: 从 Dify 原型到生产:哪些留在平台、哪些改成代码
type: scenario
domain: ai
stack: [lowcode, fastapi, rag]
tags: [PoC, 低代码, 私有化部署, 自定义工具, 迁移, 评测]
level: intermediate
prerequisites: [ai.lowcode.dify-coze]
est_hours: 2
related: [ai.lowcode.interview, ai.agent-ops.scenario.agent-quality-gate]
week: [13]
---
# 从 Dify 原型到生产:哪些留在平台、哪些改成代码
## 业务背景与问题
业务部门用私有化部署的 Dify 搭了一个“合同条款问答”原型,两周内在部门内部很受欢迎,准备推广到全公司。评估时发现:
1. 知识库是所有合同混在一起,没有按部门和密级做权限;
2. 回答效果没有量化,改提示词全凭感觉;
3. 某些问题需要查合同管理系统的实时状态,平台的 HTTP 节点直接写了系统的内部账号;
4. 用户量扩大 20 倍后,平台的响应变慢。
## 约束
- 业务部门希望继续能自己调整提示词和流程。
- 合同属于敏感数据,权限必须严格。
## 方案设计
1. **能力拆分**:
- 留在平台:对话流程编排、提示词、界面、通用知识(公开的制度);
- 改成代码服务:**带权限的合同检索**(按用户部门和密级过滤,见 [RAG 权限场景](../../rag/scenarios/permission-aware-kb.md))、合同系统查询(用户身份透传),以自定义工具接入平台。
2. **评测**:从原型的对话日志中整理 100 条问题和标准答案,形成评测集;每次修改提示词后通过 API 批量调用平台应用跑评测。
3. **配置版本化**:定期导出应用配置(DSL)存入 Git,修改前后对比。
4. **性能**:自定义工具服务独立扩容;平台按官方文档做多实例部署;高频问题加缓存(注意权限维度)。
5. **退出路径**:如果平台无法满足(例如需要复杂的多 Agent 和人工审批),核心服务已经是独立代码,迁移到 LangGraph 的成本可控。
## 关键代码
通过 API 批量调用平台应用做评测(Dify 应用 API 的路径和参数以官方文档为准,示意):
```python
async def ask(client: httpx.AsyncClient, question: str, user: str) -> str:
r = await client.post(
f"{DIFY_BASE}/v1/chat-messages",
headers={"Authorization": f"Bearer {APP_API_KEY}"},
json={"inputs": {}, "query": question, "user": user, "response_mode": "blocking"},
timeout=60,
)
r.raise_for_status()
return r.json()["answer"]
results = await asyncio.gather(*(ask(client, c["q"], "eval-bot") for c in CASES))
report = score(CASES, results) # 复用 Agent 评测专题中的打分和门禁逻辑
```
自定义工具接口示例:[examples/dify-tool-api](../examples/dify-tool-api/)。
## 取舍
| 选择 | 优点 | 缺点 |
| --- | --- | --- |
| **平台编排 + 代码服务(本方案)** | 业务可自助调整,关键逻辑可控 | 两套系统,要定义清楚边界 |
| 全部留在平台 | 最快 | 权限、评测、性能受平台能力限制 |
| 全部重写为代码 | 完全可控 | 失去业务自助能力,开发周期长 |
## 易错点
- 在平台的 HTTP 节点中写死系统账号和密钥。
- 原型的知识库直接用于全公司,没有权限。
- 评测时用的平台应用版本和线上不一致。
- 推广前没有压测。
## 面试怎么讲
> “Dify 原型验证了需求之后,我做的是拆分:流程、提示词和界面留在平台,让业务自己调;带权限的合同检索和合同系统查询写成代码服务,用用户身份调用,再作为自定义工具接入。用原型日志整理了评测集,通过平台的 API 批量跑;平台配置定期导出进 Git。这样既保留了低代码的效率,权限和质量又在我们控制之下。”