2026-04-10 23:20:41 -04:00
---
layout: default
title: "流程蓝图定义规范"
parent: "Chinese (Beta)"
---
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
# 流程蓝图定义规范
2026-04-10 23:20:41 -04:00
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
2026-04-10 12:22:20 -04:00
## 概述
流程蓝图在 TrustGraph 系统中定义了一个完整的数据流模式模板。当实例化时,它会创建一个相互连接的处理单元网络,该网络处理数据摄取、处理、存储和查询,作为一个统一的系统。
## 结构
流程蓝图定义由五个主要部分组成:
### 1. 类部分
定义共享服务处理器,这些处理器每个流程蓝图实例化一次。这些处理器处理来自此类的所有流程实例的请求。
2026-04-11 01:08:44 +00:00
=======
# 流工作蓝图定义规范
## 概述
一个流工作蓝图定义了 TrustGraph 系统中完整的数据流模式模板。当实例化时,它会创建一个相互连接的处理单元网络,该网络处理数据摄取、处理、存储和查询,作为一个统一的系统。
## 结构
一个流工作蓝图定义由五个主要部分组成:
### 1. 类部分
定义共享服务处理器,这些处理器每个流工作蓝图实例化一次。这些处理器处理来自此类的所有流实例的请求。
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```json
"class": {
"service-name:{class}": {
"request": "queue-pattern:{class}",
"response": "queue-pattern:{class}",
"settings": {
"setting-name": "fixed-value",
"parameterized-setting": "{parameter-name}"
}
}
}
```
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
**特性:**
2026-04-11 01:08:44 +00:00
=======
**特点:**
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
在同一类别的所有流程实例中共享。
通常是昂贵或无状态的服务(例如:大型语言模型、嵌入模型)。
使用 `{class}` 模板变量进行队列命名。
设置可以是固定值,也可以使用 `{parameter-name}` 语法进行参数化。
示例:`embeddings:{class}` , `text-completion:{class}` , `graph-rag:{class}`
### 2. 流程部分
定义与流程相关的处理器,这些处理器为每个独立的流程实例进行实例化。 每个流程都拥有自己的一组隔离的处理器。
```json
"flow": {
"processor-name:{id}": {
"input": "queue-pattern:{id}",
"output": "queue-pattern:{id}",
"settings": {
"setting-name": "fixed-value",
"parameterized-setting": "{parameter-name}"
}
}
}
```
**特性:**
每个流程只有一个实例。
处理流程特定的数据和状态。
使用 `{id}` 模板变量进行队列命名。
设置可以是固定值,也可以使用 `{parameter-name}` 语法进行参数化。
示例:`chunker:{id}` , `pdf-decoder:{id}` , `kg-extract-relationships:{id}`
### 3. 接口部分
定义流程的入口点和交互协议。 这些构成了外部系统和内部组件通信的 API 表面。
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
接口可以有两种形式:
**即发即弃模式**(单个队列):
2026-04-11 01:08:44 +00:00
=======
接口可以采用两种形式:
**发布-订阅模式**(单个队列):
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
```json
"interfaces": {
"document-load": "persistent://tg/flow/document-load:{id}",
"triples-store": "persistent://tg/flow/triples-store:{id}"
}
```
**请求/响应模式** (包含请求/响应字段的对象):
```json
"interfaces": {
"embeddings": {
"request": "non-persistent://tg/request/embeddings:{class}",
"response": "non-persistent://tg/response/embeddings:{class}"
}
}
```
**接口类型:**
**入口点:** 外部系统注入数据的入口点 (`document-load` , `agent` )
**服务接口:** 服务请求/响应模式 (`embeddings` , `text-completion` )
**数据接口:** 触发/完成式数据流连接点 (`triples-store` , `entity-contexts-load` )
### 4. 参数部分
将流程特定的参数名称映射到集中存储的参数定义:
```json
"parameters": {
"model": "llm-model",
"temp": "temperature",
"chunk": "chunk-size"
}
```
**特性:**
键是处理器设置中使用的参数名称(例如,`{model}` )
值引用存储在 schema/config 中的参数定义
允许在流程之间重用常见的参数定义
减少参数模式的重复
### 5. 元数据
关于流程蓝图的附加信息:
```json
"description": "Human-readable description",
"tags": ["capability-1", "capability-2"]
```
## 模板变量
### 系统变量
#### {id}
被替换为唯一的流程实例标识符
为每个流程创建隔离的资源
示例:`flow-123` , `customer-A-flow`
#### {class}
被替换为流程蓝图名称
为相同类别的流程创建共享资源
示例:`standard-rag` , `enterprise-rag`
### 参数变量
#### {parameter-name}
在流程启动时定义的自定义参数
参数名称与流程的 `parameters` 部分中的键匹配
用于在处理器设置中自定义行为
示例:`{model}` , `{temp}` , `{chunk}`
被替换为启动流程时提供的值
验证通过与集中存储的参数定义进行比较
## 处理器设置
设置在实例化时向处理器提供配置值。 它们可以是:
### 静态设置
直接值,不会改变:
```json
"settings": {
"model": "gemma3:12b",
"temperature": 0.7,
"max_retries": 3
}
```
### 参数化设置
使用在流程启动时提供的参数的值:
```json
"settings": {
"model": "{model}",
"temperature": "{temp}",
"endpoint": "https://{region}.api.example.com"
}
```
参数名称在设置中对应于流程的 `parameters` 部分中的键。
### 设置示例
**带有参数的 LLM 处理器:**
```json
// In parameters section:
"parameters": {
"model": "llm-model",
"temp": "temperature",
"tokens": "max-tokens",
"key": "openai-api-key"
}
// In processor definition:
"text-completion:{class}": {
"request": "non-persistent://tg/request/text-completion:{class}",
"response": "non-persistent://tg/response/text-completion:{class}",
"settings": {
"model": "{model}",
"temperature": "{temp}",
"max_tokens": "{tokens}",
"api_key": "{key}"
}
}
```
**具有固定和参数化设置的分块器:**
```json
// In parameters section:
"parameters": {
"chunk": "chunk-size"
}
// In processor definition:
"chunker:{id}": {
"input": "persistent://tg/flow/chunk:{id}",
"output": "persistent://tg/flow/chunk-load:{id}",
"settings": {
"chunk_size": "{chunk}",
"chunk_overlap": 100,
"encoding": "utf-8"
}
}
```
## 队列模式 (Pulsar)
流程蓝图使用 Apache Pulsar 进行消息传递。队列名称遵循 Pulsar 格式:
```
< persistence > ://< tenant > /< namespace > /< topic >
```
### 组件:
**持久性**: `persistent` 或 `non-persistent` (Pulsar 持久性模式)
**租户**: `tg` 用于 TrustGraph 提供的流程蓝图定义
**命名空间**: 表示消息模式
`flow` : 适用于“发送即忘”服务
`request` : 适用于请求/响应服务的请求部分
`response` : 适用于请求/响应服务的响应部分
**主题**: 具有模板变量的特定队列/主题名称
### 持久队列
模式: `persistent://tg/flow/<topic>:{id}`
用于“发送即忘”服务和持久数据流
数据在 Pulsar 存储中持久化,即使在重启后也保留
示例: `persistent://tg/flow/chunk-load:{id}`
### 非持久队列
模式: `non-persistent://tg/request/<topic>:{class}` 或 `non-persistent://tg/response/<topic>:{class}`
用于请求/响应消息模式
瞬态的,不由 Pulsar 持久化到磁盘
延迟较低,适用于 RPC 风格的通信
示例: `non-persistent://tg/request/embeddings:{class}`
## 数据流架构
流程蓝图创建统一的数据流,其中:
2026-04-11 01:08:44 +00:00
< < < < < < < HEAD
2026-04-10 12:22:20 -04:00
1. **文档处理管道** : 从摄取到转换再到存储的流程
2. **查询服务** : 集成的处理器,查询相同的存储和服务
3. **共享服务** : 所有流程都可以使用的集中式处理器
4. **存储写入器** : 将处理后的数据持久化到适当的存储中
2026-04-11 01:08:44 +00:00
=======
1. **文档处理管道** : 从摄取到转换再到存储
2. **查询服务** : 集成的处理器,查询相同的存储和服务
3. **共享服务** : 所有流程都可以使用的集中处理器
4. **存储写入器** : 将处理后的数据持久化到适当的存储
>>>>>>> 82edf2d (New md files from RunPod)
2026-04-10 12:22:20 -04:00
所有处理器(包括 `{id}` 和 `{class}` )协同工作,形成一个连贯的数据流图,而不是作为独立的系统。
## 流程实例化示例
假设:
流程实例 ID: `customer-A-flow`
流程蓝图: `standard-rag`
流程参数映射:
`"model": "llm-model"`
`"temp": "temperature"`
`"chunk": "chunk-size"`
用户提供的参数:
`model` : `gpt-4`
`temp` : `0.5`
`chunk` : `512`
模板扩展:
`persistent://tg/flow/chunk-load:{id}` → `persistent://tg/flow/chunk-load:customer-A-flow`
`non-persistent://tg/request/embeddings:{class}` → `non-persistent://tg/request/embeddings:standard-rag`
`"model": "{model}"` → `"model": "gpt-4"`
`"temperature": "{temp}"` → `"temperature": "0.5"`
`"chunk_size": "{chunk}"` → `"chunk_size": "512"`
这会创建:
用于 `customer-A-flow` 的隔离文档处理管道
用于所有 `standard-rag` 流程的共享嵌入服务
从文档摄取到查询的完整数据流
使用提供的参数值配置的处理器
## 优点
1. **资源效率** : 昂贵的服务在流程之间共享
2. **流程隔离** : 每个流程都有自己的数据处理管道
3. **可扩展性** : 可以从相同的模板实例化多个流程
4. **模块化** : 共享组件和流程特定组件之间有明确的分离
2026-04-10 23:20:41 -04:00
5. **统一架构** : 查询和处理是相同的数据流的一部分