mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-11 14:22:12 +02:00
update more languages
Signed-off-by: Alex Jenkins <kjenkins60@gatech.edu>
This commit is contained in:
parent
835acaa70e
commit
16c2f12a54
249 changed files with 117186 additions and 186 deletions
|
|
@ -4,11 +4,19 @@
|
|||
|
||||
本规范描述了 TrustGraph 中可配置参数在流程蓝图中的实现方式。参数允许用户在流程启动时自定义处理器参数,通过提供用于替换流程蓝图定义中参数占位符的值来实现。
|
||||
|
||||
<<<<<<< HEAD
|
||||
参数通过处理器参数中的模板变量替换来实现,类似于 `{id}` 和 `{class}` 变量的工作方式,但使用用户提供的值。
|
||||
|
||||
该集成支持四种主要用例:
|
||||
|
||||
1. **模型选择**: 允许用户选择不同的 LLM 模型(例如,`gemma3:8b`、`gpt-4`、`claude-3`)用于处理器。
|
||||
=======
|
||||
参数通过处理器参数中的模板变量替换来工作,类似于 `{id}` 和 `{class}` 变量的工作方式,但使用用户提供的值。
|
||||
|
||||
该集成支持四种主要用例:
|
||||
|
||||
1. **模型选择**: 允许用户选择不同的 LLM 模型 (例如,`gemma3:8b`, `gpt-4`, `claude-3`) 用于处理器。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
2. **资源配置**: 调整处理器参数,例如块大小、批处理大小和并发限制。
|
||||
3. **行为调整**: 通过参数修改处理器行为,例如温度、最大 token 数或检索阈值。
|
||||
4. **环境特定参数**: 配置每个部署的环境端点、API 密钥或区域特定 URL。
|
||||
|
|
@ -17,7 +25,11 @@
|
|||
|
||||
**动态处理器配置**: 通过参数替换启用处理器参数的运行时配置。
|
||||
**参数验证**: 在流程启动时提供参数的类型检查和验证。
|
||||
<<<<<<< HEAD
|
||||
**默认值**: 提供合理的默认值,同时允许高级用户进行覆盖。
|
||||
=======
|
||||
**默认值**: 支持合理的默认值,同时允许高级用户进行覆盖。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
**模板替换**: Seamlessly 替换处理器参数中的参数占位符。
|
||||
**UI 集成**: 通过 API 和 UI 接口提供参数输入。
|
||||
**类型安全**: 确保参数类型与预期的处理器参数类型匹配。
|
||||
|
|
@ -26,17 +38,28 @@
|
|||
|
||||
## 背景
|
||||
|
||||
<<<<<<< HEAD
|
||||
TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包含固定值或参数占位符。这为运行时自定义提供了机会。
|
||||
=======
|
||||
TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包含固定值或参数占位符。 这为运行时自定义提供了机会。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
当前处理器参数支持:
|
||||
固定值:`"model": "gemma3:12b"`
|
||||
参数占位符:`"model": "gemma3:{model-size}"`
|
||||
|
||||
本规范定义了参数的:
|
||||
<<<<<<< HEAD
|
||||
在流程蓝图定义中的声明方式
|
||||
流程启动时的验证方式
|
||||
在处理器参数中的替换方式
|
||||
通过 API 和 UI 的暴露方式
|
||||
=======
|
||||
在流程蓝图定义中的声明
|
||||
在流程启动时的验证
|
||||
在处理器参数中的替换
|
||||
通过 API 和 UI 的暴露
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
通过利用参数化的处理器参数,TrustGraph 可以:
|
||||
通过使用参数进行变体,减少流程蓝图的重复。
|
||||
|
|
@ -68,21 +91,34 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
3. **参数存储集成**
|
||||
从模式/配置存储中检索参数定义。
|
||||
缓存常用的参数定义。
|
||||
<<<<<<< HEAD
|
||||
对其进行验证,以确保其与中心存储的模式一致。
|
||||
=======
|
||||
对其进行集中存储的模式验证。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
模块:trustgraph-flow/trustgraph/flow/parameter_store.py
|
||||
|
||||
4. **流程启动器扩展**
|
||||
API 扩展,用于在流程启动期间接受参数值。
|
||||
<<<<<<< HEAD
|
||||
参数映射解析(将流程名称映射到定义名称)。
|
||||
=======
|
||||
参数映射解析 (将流程名称映射到定义名称)。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
处理无效参数组合的错误。
|
||||
|
||||
模块:trustgraph-flow/trustgraph/flow/launcher.py
|
||||
|
||||
5. **UI 参数表单**
|
||||
从流程参数元数据动态生成表单。
|
||||
<<<<<<< HEAD
|
||||
使用 `order` 字段显示参数的顺序。
|
||||
使用 `description` 字段提供参数的描述性标签。
|
||||
=======
|
||||
使用 `order` 字段显示参数顺序。
|
||||
使用 `description` 字段提供描述性参数标签。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
根据参数类型定义进行输入验证。
|
||||
参数预设和模板。
|
||||
|
||||
|
|
@ -90,9 +126,15 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
|
||||
### 数据模型
|
||||
|
||||
<<<<<<< HEAD
|
||||
#### 参数定义(存储在模式/配置中)
|
||||
|
||||
参数定义以类型为 "parameter-type" 的方式存储在模式和配置系统中。
|
||||
=======
|
||||
#### 参数定义 (存储在模式/配置中)
|
||||
|
||||
参数定义以类型 "parameter-type" 存储在模式和配置系统中。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
```json
|
||||
{
|
||||
|
|
@ -222,7 +264,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
`description`:用于UI显示的易于理解的描述
|
||||
`order`:参数表单的显示顺序(较小的数字首先显示)
|
||||
`advanced`(可选):布尔标志,指示是否为高级参数(默认:false)。如果设置为true,UI可能会默认隐藏此参数或将其放置在“高级”部分
|
||||
<<<<<<< HEAD
|
||||
`controlled-by`(可选):控制此参数在简单模式下值的另一个参数的名称。如果指定,此参数将从控制参数继承其值,除非显式覆盖
|
||||
=======
|
||||
`controlled-by`(可选):控制此参数在简单模式下值的另一个参数的名称。如果指定,此参数将继承其值来自控制参数,除非显式覆盖
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
这种方法允许:
|
||||
在多个流程蓝图之间重用参数类型定义
|
||||
|
|
@ -250,7 +296,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
}
|
||||
```
|
||||
|
||||
<<<<<<< HEAD
|
||||
注意:在这个例子中,`llm-rag-model` 没有明确提供,但会从 `llm-model` 继承值 "claude-3",这是因为 `llm-rag-model` 与 `llm-model` 之间存在 `controlled-by` 关系。 类似地,`chunk-overlap` 可能会继承一个基于 `chunk-size` 计算的值。
|
||||
=======
|
||||
注意:在这个例子中,`llm-rag-model` 没有显式提供,但会从 `llm-model` 继承 "claude-3" 的值,这是因为 `llm-rag-model` 与 `llm-model` 之间存在 `controlled-by` 关系。 类似地,`chunk-overlap` 可能会继承一个基于 `chunk-size` 计算的值。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
系统将执行以下操作:
|
||||
1. 从流程蓝图定义中提取参数元数据
|
||||
|
|
@ -268,9 +318,15 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
1. **流程蓝图加载**: 加载流程蓝图定义并提取参数元数据
|
||||
2. **元数据提取**: 提取每个参数的 `type`、`description`、`order`、`advanced` 和 `controlled-by`,这些信息位于流程蓝图的 `parameters` 部分
|
||||
3. **类型定义查找**: 对于流程蓝图中的每个参数:
|
||||
<<<<<<< HEAD
|
||||
使用 `type` 字段从 schema/config 存储中检索参数类型定义
|
||||
类型定义存储在配置系统中,类型为 "parameter-type"
|
||||
每个类型定义包含参数的 schema、默认值和验证规则
|
||||
=======
|
||||
使用 `type` 字段从模式/配置存储中检索参数类型定义
|
||||
类型定义存储在配置系统中,类型为 "parameter-type"
|
||||
每个类型定义包含参数的模式、默认值和验证规则
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
4. **默认值解析**:
|
||||
对于流程蓝图中定义的每个参数:
|
||||
检查用户是否为该参数提供了值
|
||||
|
|
@ -283,13 +339,21 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
验证 `controlled-by` 关系中是否存在循环依赖
|
||||
6. **验证**: 验证完整的参数集(用户提供的、默认值和继承的值)是否符合类型定义
|
||||
7. **存储**: 将完整的解析后的参数集与流程实例一起存储,以进行审计
|
||||
<<<<<<< HEAD
|
||||
8. **模板替换**: 使用解析后的值替换处理器参数中的参数占位符
|
||||
=======
|
||||
8. **模板替换**: 使用解析的值替换处理器参数中的参数占位符
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
9. **处理器实例化**: 使用替换后的参数创建处理器
|
||||
|
||||
**重要的实现说明:**
|
||||
流程服务必须将用户提供的参数与参数类型定义中的默认值合并
|
||||
完整的参数集(包括应用的默认值)必须与流程一起存储,以进行可追溯性
|
||||
<<<<<<< HEAD
|
||||
参数解析发生在流程启动时间,而不是处理器实例化时间
|
||||
=======
|
||||
参数解析发生在流程启动时,而不是在处理器实例化时
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
缺少没有默认值的必需参数会导致流程启动失败,并显示清晰的错误消息
|
||||
|
||||
#### 具有 controlled-by 的参数继承
|
||||
|
|
@ -317,7 +381,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
|
||||
1. **启动流程操作**
|
||||
Pulsar 启动流程操作需要接受一个 `parameters` 字段,该字段包含参数值的映射
|
||||
<<<<<<< HEAD
|
||||
Pulsar 启动流程请求的 schema 必须更新为包含可选的 `parameters` 字段
|
||||
=======
|
||||
Pulsar 用于启动流程的请求模式必须更新为包含可选的 `parameters` 字段
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
示例请求:
|
||||
```json
|
||||
{
|
||||
|
|
@ -333,7 +401,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
```
|
||||
|
||||
2. **获取流程操作**
|
||||
<<<<<<< HEAD
|
||||
必须更新 Pulsar 模式,以包含 `parameters` 字段,用于获取流程的响应。
|
||||
=======
|
||||
Pulsar 用于获取流程响应的 schema 必须更新,以包含 `parameters` 字段。
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
这允许客户端检索在启动流程时使用的参数值。
|
||||
示例响应:
|
||||
```json
|
||||
|
|
@ -391,7 +463,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
|
||||
3. **流程对象存储**
|
||||
当流程组件在配置管理器中向配置系统添加流程时,流程对象必须包含解析后的参数值
|
||||
<<<<<<< HEAD
|
||||
配置管理器需要同时存储原始的用户提供的参数和解析后的值(已应用默认值)
|
||||
=======
|
||||
配置管理器需要存储原始的用户提供的参数以及解析后的值(已应用默认值)
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
配置系统中的流程对象应包含:
|
||||
`parameters`: 用于流程的最终解析后的参数值
|
||||
|
||||
|
|
@ -423,7 +499,11 @@ TrustGraph 中的流程蓝图现在支持处理器参数,这些参数可以包
|
|||
#### 替换规则
|
||||
|
||||
参数使用格式 `{parameter-name}` 在处理器参数中
|
||||
<<<<<<< HEAD
|
||||
参数名称与流程的 `parameters` 部分中的键匹配
|
||||
=======
|
||||
参数名称在参数中与流程的 `parameters` 部分中的键匹配
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
替换操作与 `{id}` 和 `{class}` 替换同时进行
|
||||
无效的参数引用会导致启动时出错
|
||||
基于中心存储的参数定义进行类型验证
|
||||
|
|
@ -456,8 +536,13 @@ Substituted in processor: "0.7" (string)
|
|||
|
||||
## 迁移计划
|
||||
|
||||
<<<<<<< HEAD
|
||||
1. 系统应继续支持未声明参数的流程蓝图。
|
||||
2. 系统应继续支持未指定参数的流程:
|
||||
=======
|
||||
1. 系统应继续支持未声明任何参数的流程蓝图。
|
||||
2. 系统应继续支持未指定任何参数的流程:
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
这适用于没有参数的流程,以及具有参数的流程(它们具有默认值)。
|
||||
|
||||
(它们有默认值)。
|
||||
|
|
@ -468,7 +553,11 @@ Substituted in processor: "0.7" (string)
|
|||
答:参数值将被字符串编码,我们可能更倾向于
|
||||
使用字符串。
|
||||
|
||||
<<<<<<< HEAD
|
||||
问:是否允许在队列名称中使用参数占位符,还是仅在
|
||||
=======
|
||||
问:是否允许在队列名称中使用参数占位符,或者仅在
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
参数中使用?
|
||||
答:仅在参数中使用,以避免奇怪的注入和边缘情况。
|
||||
|
||||
|
|
@ -479,7 +568,11 @@ Substituted in processor: "0.7" (string)
|
|||
问:我们是否应该支持计算参数(从其他参数派生)?
|
||||
答:仅进行字符串替换,以避免奇怪的注入和边缘情况。
|
||||
|
||||
<<<<<<< HEAD
|
||||
## 引用
|
||||
=======
|
||||
## 参考文献
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
JSON Schema 规范:https://json-schema.org/
|
||||
流程蓝图定义规范:docs/tech-specs/flow-class-definition.md
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue