mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-07-09 05:12: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
|
|
@ -57,11 +57,19 @@
|
|||
|
||||
Модуль: trustgraph-flow/trustgraph/flow/definition.py
|
||||
|
||||
<<<<<<< HEAD
|
||||
2. **Механизм разрешения параметров**
|
||||
Проверка параметров на соответствие схеме во время выполнения.
|
||||
Применение значений по умолчанию для не указанных параметров.
|
||||
Внедрение параметров в контекст выполнения потока.
|
||||
Преобразование типов и приведение типов при необходимости.
|
||||
=======
|
||||
2. **Движок разрешения параметров**
|
||||
Проверка параметров на соответствие схеме во время выполнения.
|
||||
Применение значений по умолчанию для не указанных параметров.
|
||||
Внедрение параметров в контекст выполнения потока.
|
||||
Приведение типов и преобразование при необходимости.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Модуль: trustgraph-flow/trustgraph/flow/parameter_resolver.py
|
||||
|
||||
|
|
@ -74,14 +82,22 @@
|
|||
|
||||
4. **Расширения для запуска потоков**
|
||||
Расширения API для приема значений параметров при запуске потока.
|
||||
<<<<<<< HEAD
|
||||
Разрешение отображения (имена потоков на имена определений).
|
||||
=======
|
||||
Разрешение сопоставления параметров (имена потоков к именам определений).
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Обработка ошибок для недействительных комбинаций параметров.
|
||||
|
||||
Модуль: trustgraph-flow/trustgraph/flow/launcher.py
|
||||
|
||||
5. **Формы параметров пользовательского интерфейса**
|
||||
Динамическая генерация форм из метаданных параметров потока.
|
||||
<<<<<<< HEAD
|
||||
Отображение параметров в упорядоченном виде с использованием поля `order`.
|
||||
=======
|
||||
Отображение параметров в отсортированном порядке с использованием поля `order`.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Описательные метки параметров с использованием поля `description`.
|
||||
Проверка ввода в соответствии с определениями типов параметров.
|
||||
Предустановки и шаблоны параметров.
|
||||
|
|
@ -218,8 +234,13 @@
|
|||
```
|
||||
|
||||
Раздел `parameters` сопоставляет имена параметров, специфичные для потока (ключи), с объектами метаданных параметров, содержащими:
|
||||
<<<<<<< HEAD
|
||||
`type`: Ссылка на централизованно определенное определение параметра (например, "llm-model")
|
||||
`description`: Описание, понятное человеку, для отображения в пользовательском интерфейсе
|
||||
=======
|
||||
`type`: Ссылка на центрально определенное определение параметра (например, "llm-model")
|
||||
`description`: Описание, понятное для человека, для отображения в пользовательском интерфейсе
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
`order`: Порядок отображения параметров в формах (меньшие числа отображаются первыми)
|
||||
`advanced` (необязательно): Булевский флаг, указывающий, является ли этот параметр расширенным (по умолчанию: false). Если установлено значение true, пользовательский интерфейс может скрывать этот параметр по умолчанию или помещать его в раздел "Расширенные"
|
||||
`controlled-by` (необязательно): Имя другого параметра, который управляет значением этого параметра в простом режиме. Если указано, этот параметр наследует свое значение от управляющего параметра, если явно не переопределен
|
||||
|
|
@ -250,12 +271,21 @@ API запуска потока принимает параметры, испо
|
|||
}
|
||||
```
|
||||
|
||||
<<<<<<< HEAD
|
||||
Примечание: В этом примере, `llm-rag-model` явно не указан, но он унаследует значение "claude-3" из `llm-model` из-за его `controlled-by` связи. Аналогично, `chunk-overlap` может унаследовать вычисленное значение на основе `chunk-size`.
|
||||
|
||||
Система будет:
|
||||
1. Извлекать метаданные параметров из определения схемы потока
|
||||
2. Сопоставлять имена параметров потока с их определениями типов (например, `llm-model` → `llm-model` тип)
|
||||
3. Разрешать отношения "контролируется" (например, `llm-rag-model` наследуется от `llm-model`)
|
||||
=======
|
||||
Примечание: В этом примере `llm-rag-model` явно не указано, но оно наследует значение "claude-3" из `llm-model` из-за своей `controlled-by` связи. Аналогично, `chunk-overlap` может наследовать вычисленное значение на основе `chunk-size`.
|
||||
|
||||
Система будет:
|
||||
1. Извлекать метаданные параметров из определения шаблона потока
|
||||
2. Сопоставлять имена параметров потока с их определениями типов (например, `llm-model` → тип `llm-model`)
|
||||
3. Разрешать зависимости (например, `llm-rag-model` наследует от `llm-model`)
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
4. Проверять предоставленные пользователем и унаследованные значения на соответствие определениям типов параметров
|
||||
5. Подставлять разрешенные значения в параметры процессоров во время создания экземпляра потока
|
||||
|
||||
|
|
@ -265,6 +295,7 @@ API запуска потока принимает параметры, испо
|
|||
|
||||
При запуске потока система выполняет следующие шаги разрешения параметров:
|
||||
|
||||
<<<<<<< HEAD
|
||||
1. **Загрузка схемы потока**: Загрузить определение схемы потока и извлечь метаданные параметров
|
||||
2. **Извлечение метаданных**: Извлечь `type`, `description`, `order`, `advanced` и `controlled-by` для каждого параметра, определенного в разделе `parameters` схемы потока
|
||||
3. **Поиск определения типа**: Для каждого параметра в схеме потока:
|
||||
|
|
@ -285,6 +316,28 @@ API запуска потока принимает параметры, испо
|
|||
7. **Хранение**: Сохранить полный разрешенный набор параметров с экземпляром потока для обеспечения возможности аудита
|
||||
8. **Подстановка шаблонов**: Заменить заполнители параметров в параметрах процессоров разрешенными значениями
|
||||
9. **Создание экземпляров процессоров**: Создать процессоры с подставленными параметрами
|
||||
=======
|
||||
1. **Загрузка шаблона потока**: Загрузить определение шаблона потока и извлечь метаданные параметров
|
||||
2. **Извлечение метаданных**: Извлечь `type`, `description`, `order`, `advanced` и `controlled-by` для каждого параметра, определенного в разделе `parameters` шаблона потока
|
||||
3. **Поиск определения типа**: Для каждого параметра в шаблоне потока:
|
||||
Получить определение типа параметра из хранилища схемы/конфигурации, используя поле `type`
|
||||
Определения типов хранятся с типом "parameter-type" в системе конфигурации
|
||||
Каждое определение типа содержит схему параметра, значение по умолчанию и правила проверки
|
||||
4. **Разрешение значения по умолчанию**:
|
||||
Для каждого параметра, определенного в шаблоне потока:
|
||||
Проверить, предоставлено ли пользователем значение для этого параметра
|
||||
Если значение не предоставлено пользователем, использовать значение `default` из определения типа параметра
|
||||
Создать полную карту параметров, содержащую как предоставленные пользователем, так и значения по умолчанию
|
||||
5. **Разрешение наследования параметров** (зависимости):
|
||||
Для параметров с полем `controlled-by`, проверить, было ли предоставлено явное значение
|
||||
Если явное значение не предоставлено, унаследовать значение от управляющего параметра
|
||||
Если управляющий параметр также не имеет значения, использовать значение по умолчанию из определения типа
|
||||
Убедиться в отсутствии циклических зависимостей в отношениях `controlled-by`
|
||||
6. **Проверка**: Проверить полный набор параметров (предоставленные пользователем, значения по умолчанию и унаследованные) на соответствие определениям типов
|
||||
7. **Хранение**: Сохранить полный набор разрешенных параметров с экземпляром потока для обеспечения возможности аудита
|
||||
8. **Подстановка шаблонов**: Заменить заполнители параметров в параметрах процессоров разрешенными значениями
|
||||
9. **Создание процессоров**: Создать процессоры с подставленными параметрами
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
**Важные замечания по реализации**:
|
||||
Сервис потока ДОЛЖЕН объединять параметры, предоставленные пользователем, со значениями по умолчанию из определений типов параметров
|
||||
|
|
@ -292,11 +345,16 @@ API запуска потока принимает параметры, испо
|
|||
Разрешение параметров происходит при запуске потока, а не при создании экземпляра процессора
|
||||
Отсутствующие обязательные параметры без значений по умолчанию ДОЛЖНЫ приводить к сбою запуска потока с четким сообщением об ошибке
|
||||
|
||||
<<<<<<< HEAD
|
||||
#### Наследование параметров с помощью "контролируется"
|
||||
=======
|
||||
#### Наследование параметров с помощью controlled-by
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
Поле `controlled-by` обеспечивает наследование значений параметров, что особенно полезно для упрощения пользовательских интерфейсов, сохраняя при этом гибкость:
|
||||
|
||||
**Пример сценария**:
|
||||
<<<<<<< HEAD
|
||||
Параметр `llm-model` контролирует основную модель LLM
|
||||
Параметр `llm-rag-model` имеет значение `"controlled-by": "llm-model"`
|
||||
В простом режиме установка `llm-model` в "gpt-4" автоматически устанавливает `llm-rag-model` в "gpt-4"
|
||||
|
|
@ -312,12 +370,34 @@ API запуска потока принимает параметры, испо
|
|||
В базовом/простом режиме: Параметры с `controlled-by` могут быть скрыты или показаны как доступные только для чтения со значением, полученным по наследству
|
||||
В расширенном режиме: Все параметры отображаются и могут быть настроены индивидуально
|
||||
При изменении контролируемого параметра зависимые параметры автоматически обновляются, если они не были явно переопределены
|
||||
=======
|
||||
Параметр `llm-model` управляет основной моделью LLM
|
||||
Параметр `llm-rag-model` имеет значение `"controlled-by": "llm-model"`
|
||||
В простом режиме установка `llm-model` в "gpt-4" автоматически устанавливает `llm-rag-model` в "gpt-4"
|
||||
В расширенном режиме пользователи могут перезаписать `llm-rag-model` другим значением
|
||||
|
||||
**Правила разрешения**:
|
||||
1. Если параметр имеет явно предоставленное значение, используйте это значение
|
||||
2. Если нет явного значения и `controlled-by` установлено, используйте значение управляющего параметра
|
||||
3. Если управляющий параметр не имеет значения, используйте значение по умолчанию из определения типа
|
||||
4. Циклические зависимости в отношениях `controlled-by` приводят к ошибке проверки
|
||||
|
||||
**Поведение пользовательского интерфейса**:
|
||||
В режимах "базовый/простой": Параметры с `controlled-by` могут быть скрыты или показаны как доступные только для чтения со унаследованным значением
|
||||
В расширенном режиме: Все параметры отображаются и могут быть настроены индивидуально
|
||||
При изменении управляющего параметра зависимые параметры автоматически обновляются, если они не перезаписаны
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
#### Интеграция с Pulsar
|
||||
|
||||
1. **Операция Start-Flow**
|
||||
<<<<<<< HEAD
|
||||
Операция start-flow в Pulsar должна принимать поле `parameters`, содержащее карту значений параметров
|
||||
Схема запроса start-flow в Pulsar должна быть обновлена для включения необязательного поля `parameters`
|
||||
=======
|
||||
Операция Pulsar start-flow должна принимать поле `parameters`, содержащее карту значений параметров
|
||||
Схема Pulsar для запроса start-flow должна быть обновлена для включения необязательного поля `parameters`
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Пример запроса:
|
||||
```json
|
||||
{
|
||||
|
|
@ -372,7 +452,11 @@ API запуска потока принимает параметры, испо
|
|||
Эта функция должна:
|
||||
Извлекать метаданные параметров из раздела `parameters` схемы потока.
|
||||
Для каждого параметра получать определение его типа из хранилища конфигурации.
|
||||
<<<<<<< HEAD
|
||||
Применять значения по умолчанию для любых параметров, которые не предоставлены пользователем.
|
||||
=======
|
||||
Применять значения по умолчанию для любых параметров, не предоставленных пользователем.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Обрабатывать отношения наследования `controlled-by`.
|
||||
Возвращать полный набор параметров.
|
||||
|
||||
|
|
@ -393,7 +477,11 @@ API запуска потока принимает параметры, испо
|
|||
Когда поток добавляется в систему конфигурации компонентом потока в менеджере конфигурации, объект потока должен включать разрешенные значения параметров.
|
||||
Менеджер конфигурации должен хранить как исходные параметры, предоставленные пользователем, так и разрешенные значения (с применением значений по умолчанию).
|
||||
Объекты потока в системе конфигурации должны включать:
|
||||
<<<<<<< HEAD
|
||||
`parameters`: Конечные разрешенные значения параметров, используемые для потока.
|
||||
=======
|
||||
`parameters`: Окончательные разрешенные значения параметров, используемые для потока.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
#### Интеграция с CLI
|
||||
|
||||
|
|
@ -417,7 +505,11 @@ API запуска потока принимает параметры, испо
|
|||
Реализация ParametersSpec должна:
|
||||
Принимать конфигурации параметров, содержащие заполнители параметров (например, `{model}`, `{temperature}`).
|
||||
Поддерживать подстановку параметров во время выполнения при создании экземпляра процессора.
|
||||
<<<<<<< HEAD
|
||||
Проверять, соответствуют ли подставленные значения ожидаемым типам и ограничениям.
|
||||
=======
|
||||
Проверять, что подставленные значения соответствуют ожидаемым типам и ограничениям.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
Предоставлять обработку ошибок для отсутствующих или недействительных ссылок на параметры.
|
||||
|
||||
#### Правила подстановки
|
||||
|
|
@ -452,12 +544,17 @@ Substituted in processor: "0.7" (string)
|
|||
Комплексные тесты для запуска потоков с разными значениями параметров
|
||||
UI-тесты для генерации и проверки форм параметров
|
||||
Тесты производительности для потоков со многими параметрами
|
||||
<<<<<<< HEAD
|
||||
Пограничные случаи: отсутствующие параметры, неверные типы, неопределенные ссылки на параметры
|
||||
=======
|
||||
Краевые случаи: отсутствующие параметры, неверные типы, неопределенные ссылки на параметры
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## План миграции
|
||||
|
||||
1. Система должна продолжать поддерживать шаблоны потоков без объявленных параметров.
|
||||
2. Система должна продолжать поддерживать потоки без указанных параметров:
|
||||
<<<<<<< HEAD
|
||||
Это работает для потоков без параметров и для потоков с параметрами (у которых есть значения по умолчанию).
|
||||
|
||||
(имеют значения по умолчанию).
|
||||
|
|
@ -471,15 +568,38 @@ UI-тесты для генерации и проверки форм парам
|
|||
В: Должны ли быть разрешены заполнители параметров в именах очередей или только в
|
||||
параметрах?
|
||||
О: Только в параметрах, чтобы избежать странных инъекций и пограничных случаев.
|
||||
=======
|
||||
Это работает для потоков без параметров и для потоков с параметрами
|
||||
(у них есть значения по умолчанию).
|
||||
|
||||
## Открытые вопросы
|
||||
|
||||
|
||||
В: Должны ли параметры поддерживать сложные вложенные объекты или ограничиваться простыми типами?
|
||||
О: Значения параметров будут закодированы в виде строки, поэтому, вероятно, нам стоит
|
||||
придерживаться строк.
|
||||
|
||||
В: Должны ли быть разрешены заполнители параметров в именах очередей или только в
|
||||
параметрах?
|
||||
О: Только в параметрах, чтобы избежать странных внедрений и пограничных случаев.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
В: Как обрабатывать конфликты между именами параметров и системными переменными, такими как
|
||||
`id` и `class`?
|
||||
О: Недопустимо указывать id и class при запуске потока.
|
||||
|
||||
В: Должны ли мы поддерживать вычисляемые параметры (выводимые из других параметров)?
|
||||
<<<<<<< HEAD
|
||||
О: Только простая подстановка строк, чтобы избежать странных инъекций и пограничных случаев.
|
||||
=======
|
||||
О: Только простая замена строк, чтобы избежать странных внедрений и пограничных случаев.
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
||||
## Ссылки
|
||||
|
||||
Спецификация JSON Schema: https://json-schema.org/
|
||||
<<<<<<< HEAD
|
||||
Спецификация определения шаблона потока: docs/tech-specs/flow-class-definition.md
|
||||
=======
|
||||
Спецификация определения схемы потока: docs/tech-specs/flow-class-definition.md
|
||||
>>>>>>> 82edf2d (New md files from RunPod)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue