从算力调度到智能体编排:我们在DCU 上落地 DAP 工作流平台的实践
本文基于我们在 DAP(DCU AI Platform) 项目中的真实研发与部署经验,分享如何将DCU 算力与 AI 智能体、可视化工作流、知识库 RAG 整合为一套可落地的企业级平台。
一、背景:为什么需要「DCU 原生」的 AI 平台?
在大模型应用快速落地的今天,团队普遍面临三个痛点:
DAP(DCU AI Platform) 正是为解决这些问题而设计:它不是一个「套壳 ChatGPT」,而是面向 DCU 算力 的全栈 AI 平台,覆盖 智能体管理、可视化工作流编排、知识库 RAG、模型服务部署、DCU 资源监控 等能力。
二、平台整体架构:三前端 + 一后端,统一对外服务
DAP 采用 「三前端 + 一后端」 的单体部署架构,由 Go 进程统一承载 API 与静态资源:
| 模块 | 技术栈 | 访问入口 | 职责 |
|---|---|---|---|
| 对话主站 (chat) | Vue 3 + Vite + Element Plus | / | 面向最终用户的 AI 对话 |
| 管理后台 (admin) | Vue 3 + VueFlow + Monaco Editor | /admin | 智能体/工作流/知识库/模型/DCU 管理 |
| 分享页 (share) | Vue 3(chat 精简版) | /share | 智能体/对话分享 |
| 后端 (backend) | Go + Gin + GORM | /api/... | 业务逻辑、工作流引擎、模型中继 |
存储与中间件:
大模型接入:采用 OpenAI 兼容协议,可无缝对接部署在 DCU 上的 vLLM 推理服务,也支持外部 API。

架构图
三、核心能力一:DCU 算力统一管理与模型服务部署
这是 DAP 与 DCU 关联最深 的部分。
3.1 DCU 资源 Agent:实时采集卡级指标
DAP 在每台 DCU 宿主机上部署 Resource Client,周期性上报:
平台后端通过 WebSocket / HTTP 接收数据,写入 tb_resource_dcu 表,管理后台 「设备管理 → 智能卡」 页面实时展示。
核心数据结构(节选):
type DCUCard struct { CardSeries string // DCU 型号 PCI string // PCI 地址 DCUId string // 卡编号 GraphicsMemorySize string // 显存容量 GraphicsMemoryUsage string // 显存占用 DCUUsage string // 利用率 DCUPower string // 功耗 Temperature string // 温度 }


3.2 一键在 DCU 上部署 vLLM 模型服务
DAP 支持通过管理后台,选择 镜像 + 模型 + DCU 卡号,自动下发任务到 Resource Client,完成:
服务创建时会绑定具体 DCU:
serviceConent = ServiceContent{ ModelName: model.ModelName, Dcus: "0,1", // 指定 DCU 卡号 DcuPcis: "xxx,yyy", // 对应 PCI 地址 DType: "float16", // 推理精度 ServeName: "deepseek-7b", // 服务名 Port: "8000", }
服务类型包括:vllm、jupyter、vscode、common 等,其中 vllm 是 LLM 推理的主力。


3.3 DCU 上的文档解析与语音服务
知识库 Pipeline 中的 PDF 增强解析(MinerU) 和 语音转文本 也跑在 DCU 上。Docker 部署示例(来自官方部署文档):
pdf-parse: image: image.sourcefind.cn:5000/dcu/admin/base/custom:pdf-parse-v2-ichat devices: - "/dev/kfd" - "/dev/dri/" environment: - DCU_ID=1 # 指定使用的 DCU 设备编号 audio-parse: image: image.sourcefind.cn:5000/dcu/admin/base/custom:audio-parse-v1-ichat devices: - "/dev/kfd" - "/dev/dri/" environment: - CUDA_VISIBLE_DEVICES=0 # DCU 设备编号 volumes: - /opt/hyhal:/opt/hyhal # 海光 HAL 库
平台通过环境变量注册这些服务:
KNOWLEDGE_MINERU_URL=pdf-parse:9911/pdf_ocr KNOWLEDGE_AUDIO_URL=audio-parse:9912/api/tools/audio2text
这样,Embedding 模型、LLM 推理、PDF OCR、语音识别 均可统一调度到 DCU 集群,形成完整 AI 算力栈。

四、核心能力二:33 节点可视化工作流引擎
DAP 的工作流引擎是平台的技术亮点之一,基于 VueFlow 实现拖拽式编排,后端 Go 引擎负责执行。
4.1 节点类型一览
| 分类 | 代表节点 | 说明 |
|---|---|---|
| AI | AI 对话、问题分类、上下文提取、Query 扩展、MCP 客户端 | 调用 DCU 上的 LLM |
| 知识库 | 知识库检索、数据集拼接、文件库搜索、Embedding | RAG 核心链路 |
| 工具 | HTTP 请求、代码执行、数据库连接、文本编辑 | 与外部系统集成 |
| 流程控制 | 条件分支、用户选择、停止工具 | 复杂业务逻辑 |
| 插件/Agent | 运行子应用、插件输入输出 | 多智能体协作 |
共 33 种节点,覆盖从简单问答到复杂 Agent 的全场景。

工作流
4.2 工作流如何调用 DCU 上的模型?
以 AI 对话节点(ChatV2) 为例,执行流程:
引擎核心结构:
type Engine struct { Nodes []Node Edges []NodeEdge Variables map[string]interface{} Stream bool // ... 支持超时、循环检测、并行工具调用等 }
Embedding 节点同样走模型管理,调用 DCU 上的向量模型:
func (n *Embedding) Execute() (err error) { n.Result, err = openai.EmbeddingBatch(n.AiModel, n.Input) return }
五、核心能力三:知识库 RAG 全链路
DAP 知识库支持:
典型 RAG 工作流:
用户提问 → [Query 扩展节点] 优化检索词 → [知识库检索节点] 混合检索 Top-K → [数据集拼接节点] 组装 Context → [AI 对话节点] 调用 DCU LLM 生成回答(带引用) → [指定回复节点] 格式化输出
六、部署实践:Docker Compose 一键拉起
DAP 官方提供基于光源镜像的 Docker Compose 部署方案,核心组件:
services: dap-pg: # PostgreSQL + pgvector dap-es: # Elasticsearch dap-minio: # 对象存储 python-service: # 知识库辅助服务 dap-app: # DAP 主应用(ichat 镜像)
主应用环境变量示例:
environment: - LLM_DEFAULT_MODEL=deepseek-reasoner - LLM_DEFAULT_MODEL_URL=https://api.deepseek.com # 或指向 DCU vLLM 内网地址 - DB_DIR_TYPE=postgres - ELASTIC_URL=http://dap-es:9200 - S3_ENDPOINT=http://dap-minio:9000
生产建议:
七、典型应用场景
结合我们的实践,DAP + DCU 已在以下场景落地:
场景 1:企业知识问答(RAG)
场景 2:多步骤智能体(Agent)
场景 3:算力统一调度

对话
八、总结
DAP 将 DCU 算力 与 AI 应用工程化 深度结合:
对于希望在 国产 DCU 上构建企业级 AI 应用 的团队,DAP 提供了一条从算力到应用的完整路径,而不是简单的模型 API 封装。
暂无数据
暂无数据