trustgraph/docs/tech-specs/structured-diag-service.ru.md
Alex Jenkins 8954fa3ad7 Feat: TrustGraph i18n & Documentation Translation Updates (#781)
Native CLI i18n: The TrustGraph CLI has built-in translation support
that dynamically loads language strings. You can test and use
different languages by simply passing the --lang flag (e.g., --lang
es for Spanish, --lang ru for Russian) or by configuring your
environment's LANG variable.

Automated Docs Translations: This PR introduces autonomously
translated Markdown documentation into several target languages,
including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew,
Arabic, Simplified Chinese, and Russian.
2026-04-14 12:08:32 +01:00

18 KiB
Raw Blame History

layout title parent
default Техническая спецификация сервиса диагностики структурированных данных Russian (Beta)

Техническая спецификация сервиса диагностики структурированных данных

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.

Обзор

Эта спецификация описывает новый сервис, который можно вызывать для диагностики и анализа структурированных данных в TrustGraph. Сервис извлекает функциональность из существующего инструмента командной строки tg-load-structured-data и предоставляет ее в виде сервиса запросов/ответов, обеспечивая программный доступ к возможностям определения типа данных и генерации описаний.

Сервис поддерживает три основные операции:

  1. Определение типа данных: Анализ образца данных для определения его формата (CSV, JSON или XML).
  2. Генерация описания: Генерация структурированного описания данных TrustGraph для заданного образца данных и типа.
  3. Комплексная диагностика: Выполнение как определения типа данных, так и генерации описания последовательно.

Цели

Модулизация анализа данных: Извлечение логики диагностики данных из интерфейса командной строки в многократно используемые компоненты сервиса. Обеспечение программного доступа: Предоставление API для доступа к возможностям анализа данных. Поддержка нескольких форматов данных: Обработка форматов данных CSV, JSON и XML согласованным образом. Генерация точных описаний: Создание структурированных описаний данных, которые точно сопоставляют исходные данные со схемами TrustGraph. Сохранение обратной совместимости: Обеспечение продолжения работы существующей функциональности интерфейса командной строки. Обеспечение возможности объединения сервисов: Предоставление другим сервисам возможности использования возможностей диагностики данных. Улучшение тестируемости: Разделение бизнес-логики от интерфейса командной строки для улучшения тестирования. Поддержка потоковой обработки: Обеспечение возможности анализа образцов данных без загрузки целых файлов.

Обзор

В настоящее время команда tg-load-structured-data предоставляет комплексную функциональность для анализа структурированных данных и генерации описаний. Однако эта функциональность тесно связана с интерфейсом командной строки, что ограничивает ее повторное использование.

Существующие ограничения включают: Логика диагностики данных, встроенная в код интерфейса командной строки. Отсутствие программного доступа к определению типа данных и генерации описаний. Сложность интеграции возможностей диагностики в другие сервисы. Ограниченная возможность создания рабочих процессов анализа данных.

Эта спецификация решает эти проблемы, создавая специальный сервис для диагностики структурированных данных. Предоставляя эти возможности в виде сервиса, TrustGraph может: Обеспечить возможность другим сервисам программного анализа данных. Поддерживать более сложные конвейеры обработки данных. Облегчить интеграцию с внешними системами. Улучшить поддерживаемость за счет разделения ответственности.

Технический дизайн

Архитектура

Сервису диагностики структурированных данных требуются следующие технические компоненты:

  1. Процессор сервиса диагностики Обрабатывает входящие запросы на диагностику. Координирует определение типа данных и генерацию описаний. Возвращает структурированные ответы с результатами диагностики.

    Модуль: trustgraph-flow/trustgraph/diagnosis/structured_data/service.py

  2. Детектор типа данных Использует алгоритмическое определение для идентификации формата данных (CSV, JSON, XML). Анализирует структуру данных, разделители и шаблоны синтаксиса. Возвращает определенный формат и коэффициенты достоверности.

    Модуль: trustgraph-flow/trustgraph/diagnosis/structured_data/type_detector.py

  3. Генератор описаний Использует сервис запросов для генерации описаний. Вызывает специфичные для формата запросы (diagnose-csv, diagnose-json, diagnose-xml). Отображает поля данных на поля схемы TrustGraph с помощью ответов запросов.

    Модуль: trustgraph-flow/trustgraph/diagnosis/structured_data/descriptor_generator.py

Модели данных

StructuredDataDiagnosisRequest

Сообщение запроса для операций диагностики структурированных данных:

class StructuredDataDiagnosisRequest:
    operation: str  # "detect-type", "generate-descriptor", or "diagnose"
    sample: str     # Data sample to analyze (text content)
    type: Optional[str]  # Data type (csv, json, xml) - required for generate-descriptor
    schema_name: Optional[str]  # Target schema name for descriptor generation
    options: Dict[str, Any]  # Additional options (e.g., delimiter for CSV)

StructuredDataDiagnosisResponse

Сообщение ответа, содержащее результаты диагностики:

class StructuredDataDiagnosisResponse:
    operation: str  # The operation that was performed
    detected_type: Optional[str]  # Detected data type (for detect-type/diagnose)
    confidence: Optional[float]  # Confidence score for type detection
    descriptor: Optional[Dict]  # Generated descriptor (for generate-descriptor/diagnose)
    error: Optional[str]  # Error message if operation failed
    metadata: Dict[str, Any]  # Additional metadata (e.g., field count, sample records)

Структура дескриптора

Сгенерированный дескриптор соответствует существующему формату структурированного дескриптора данных:

{
  "format": {
    "type": "csv",
    "encoding": "utf-8",
    "options": {
      "delimiter": ",",
      "has_header": true
    }
  },
  "mappings": [
    {
      "source_field": "customer_id",
      "target_field": "id",
      "transforms": [
        {"type": "trim"}
      ]
    }
  ],
  "output": {
    "schema_name": "customer",
    "options": {
      "batch_size": 1000,
      "confidence": 0.9
    }
  }
}

Интерфейс сервиса

Сервис будет предоставлять следующие операции с использованием шаблона запрос/ответ:

  1. Операция определения типа Входные данные: Образец данных Обработка: Анализ структуры данных с использованием алгоритмического определения Выходные данные: Определенный тип с уровнем достоверности

  2. Операция генерации дескриптора Входные данные: Образец данных, тип, имя целевой схемы Обработка: Вызов сервиса запросов с идентификатором запроса, специфичным для формата (diagnose-csv, diagnose-json или diagnose-xml) Передача образца данных и доступных схем в запрос Получение сгенерированного дескриптора из ответа запроса Выходные данные: Структурированный дескриптор данных

  3. Комплексная операция диагностики Входные данные: Образец данных, необязательное имя схемы Обработка: Использование алгоритмического определения для определения формата Выбор соответствующего запроса, специфичного для формата, на основе определенного типа Вызов сервиса запросов для генерации дескриптора Выходные данные: Определенный тип и дескриптор

Детали реализации

Сервис будет соответствовать соглашениям сервиса TrustGraph:

  1. Регистрация сервиса Регистрация как сервис типа structured-diag Использование стандартных тем запросов/ответов Реализация базового класса FlowProcessor Регистрация PromptClientSpec для взаимодействия с сервисом запросов

  2. Управление конфигурацией Доступ к конфигурациям схем через сервис конфигурации Кэширование схем для повышения производительности Динамическая обработка обновлений конфигурации

  3. Интеграция с сервисом запросов Использование существующей инфраструктуры сервиса запросов Вызов сервиса запросов с идентификаторами запросов, специфичными для формата: diagnose-csv: Для анализа данных CSV diagnose-json: Для анализа данных JSON diagnose-xml: Для анализа данных XML Запросы настроены в конфигурации запросов, а не жестко закодированы в сервисе Передача схем и образцов данных в качестве переменных запроса Разбор ответов запросов для извлечения дескрипторов

  4. Обработка ошибок Проверка входных образцов данных Предоставление описательных сообщений об ошибках Обработка некорректных данных Обработка сбоев сервиса запросов

  5. Выборка данных Обработка настраиваемых размеров выборки Правильная обработка неполных записей Поддержание согласованности выборки

Интеграция с API

Сервис будет интегрирован с существующими API TrustGraph:

Измененные компоненты: tg-load-structured-data CLI - Переработан для использования нового сервиса для операций диагностики Flow API - Расширен для поддержки запросов структурированной диагностики

Новые конечные точки сервиса: /api/v1/flow/{flow}/diagnose/structured-data - WebSocket конечная точка для запросов диагностики /api/v1/diagnose/structured-data - REST конечная точка для синхронной диагностики

Поток сообщений

Client → Gateway → Structured Diag Service → Config Service (for schemas)
                                           ↓
                                    Type Detector (algorithmic)
                                           ↓
                                    Prompt Service (diagnose-csv/json/xml)
                                           ↓
                                 Descriptor Generator (parses prompt response)
                                           ↓
Client ← Gateway ← Structured Diag Service (response)

Соображения безопасности

Проверка входных данных для предотвращения атак внедрения Ограничения на размер образцов данных для предотвращения DoS-атак Очистка сгенерированных описаний Контроль доступа через существующую аутентификацию TrustGraph

Соображения производительности

Кэширование определений схемы для уменьшения количества обращений к сервису конфигурации Ограничение размеров образцов для поддержания отзывчивой производительности Использование потоковой обработки для больших образцов данных Реализация механизмов тайм-аута для длительных анализов

Стратегия тестирования

  1. Модульные тесты Обнаружение типа для различных форматов данных Точность генерации описаний Сценарии обработки ошибок

  2. Интеграционные тесты Поток запросов/ответов сервиса Получение и кэширование схемы Интеграция с CLI

  3. Тесты производительности Обработка больших образцов Обработка одновременных запросов Использование памяти при высокой нагрузке

План миграции

  1. Этап 1: Реализация сервиса с основной функциональностью
  2. Этап 2: Рефакторинг CLI для использования сервиса (с сохранением обратной совместимости)
  3. Этап 3: Добавление REST API
  4. Этап 4: Отказ от встроенной логики CLI (с предварительным уведомлением)

График

Неделя 1-2: Реализация основного сервиса и обнаружения типа Неделя 3-4: Добавление генерации описаний и интеграции Неделя 5: Тестирование и документация Неделя 6: Рефакторинг CLI и миграция

Открытые вопросы

Должен ли сервис поддерживать дополнительные форматы данных (например, Parquet, Avro)? Каков должен быть максимальный размер образца для анализа? Следует ли кэшировать результаты диагностики для повторяющихся запросов? Как сервис должен обрабатывать сценарии с несколькими схемами? Должны ли идентификаторы запросов быть настраиваемыми параметрами для сервиса?

Ссылки

Спецификация структурированного описания данных Документация по загрузке структурированных данных tg-load-structured-data реализация: trustgraph-cli/trustgraph/cli/load_structured_data.py