update more languages

Signed-off-by: Alex Jenkins <kjenkins60@gatech.edu>
This commit is contained in:
Alex Jenkins 2026-04-11 01:08:44 +00:00
parent 835acaa70e
commit 16c2f12a54
249 changed files with 117186 additions and 186 deletions

View file

@ -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)