mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
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.
99 lines
6.6 KiB
Markdown
99 lines
6.6 KiB
Markdown
---
|
||
layout: default
|
||
title: "Схема: Предложение по реорганизации каталога"
|
||
parent: "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.
|
||
|
||
## Текущие проблемы
|
||
|
||
1. **Плоская структура** - Все схемы в одном каталоге затрудняют понимание взаимосвязей
|
||
2. **Смешанные задачи** - Ядро типов, объекты домена и контракты API смешаны вместе
|
||
3. **Неясное наименование** - Файлы, такие как "object.py", "types.py", "topic.py", не указывают четко их назначение
|
||
4. **Отсутствие четкого уровня** - Трудно понять, на что зависит что
|
||
|
||
## Предлагаемая структура
|
||
|
||
```
|
||
trustgraph-base/trustgraph/schema/
|
||
├── __init__.py
|
||
├── core/ # Основные примитивные типы, используемые везде
|
||
│ ├── __init__.py
|
||
│ ├── primitives.py # Ошибка, Значение, Трипл, Поле, Схема строк
|
||
│ ├── metadata.py # Запись метаданных
|
||
│ └── topic.py # Утилиты для тем
|
||
│
|
||
├── knowledge/ # Модели домена знаний и извлечение
|
||
│ ├── __init__.py
|
||
│ ├── graph.py # EntityContext, EntityEmbeddings, Триплы
|
||
│ ├── document.py # Документ, TextDocument, Chunk
|
||
│ ├── knowledge.py # Типы извлечения знаний
|
||
│ ├── embeddings.py # Все типы, связанные с встраиванием (перенесены из нескольких файлов)
|
||
│ └── nlp.py # Типы Определение, Тема, Отношение, Факты
|
||
│
|
||
└── services/ # Контракты запросов/ответов сервисов
|
||
├── __init__.py
|
||
├── llm.py # TextCompletion, Embeddings, Запросы/ответы инструментов
|
||
├── retrieval.py # Запросы/ответы GraphRAG, DocumentRAG
|
||
├── query.py # Запросы/ответы GraphEmbeddingsRequest/Response, DocumentEmbeddingsRequest/Response
|
||
├── agent.py # Запросы/ответы агента
|
||
├── flow.py # Запросы/ответы потока
|
||
├── prompt.py # Запросы/ответы сервиса подсказок
|
||
├── config.py # Конфигурационный сервис
|
||
├── library.py # Сервис библиотека
|
||
└── lookup.py # Сервис поиска
|
||
```
|
||
|
||
## Ключевые изменения
|
||
|
||
1. **Иерархическая организация** - Четкое разделение между основными типами, моделями знаний и контрактами сервисов
|
||
2. **Улучшенное наименование:**
|
||
- `types.py` → `core/primitives.py` (более четкое назначение)
|
||
- `object.py` → Разделение на соответствующие файлы на основе фактического содержимого
|
||
- `documents.py` → `knowledge/document.py` (одинаковое, согласованное)
|
||
- `models.py` → `services/llm.py` (более четко, какие модели)
|
||
- `prompt.py` → Разделение: части сервиса в `services/prompt.py`, типы данных в `knowledge/nlp.py`
|
||
|
||
3. **Логическая группировка:**
|
||
- Все типы встраивания консолидированы в `knowledge/embeddings.py`
|
||
- Все контракты сервисов LLM в `services/llm.py`
|
||
- Четкое разделение пар запросов/ответов в каталоге сервисов
|
||
- Типы извлечения знаний сгруппированы с другими моделями домена знаний
|
||
|
||
4. **Ясность зависимостей:**
|
||
- Основные типы не имеют зависимостей
|
||
- Модели знаний зависят только от основных
|
||
- Контракты сервисов могут зависеть как от основных, так и от моделей знаний
|
||
|
||
## Преимущества миграции
|
||
|
||
1. **Легче навигация** - Разработчики могут быстро найти то, что им нужно
|
||
2. **Улучшенная модульность** - Четкие границы между разными задачами
|
||
3. **Проще импорт** - Более интуитивные пути импорта
|
||
4. **Готовность к будущему** - Легко добавлять новые типы знаний или сервисы, не загромождая
|
||
|
||
## Пример изменений импорта
|
||
|
||
```python
|
||
# Изначально
|
||
from trustgraph.schema import Error, Triple, GraphEmbeddings, TextCompletionRequest
|
||
|
||
# После
|
||
from trustgraph.schema.core import Error, Triple
|
||
from trustgraph.schema.knowledge import GraphEmbeddings
|
||
from trustgraph.schema.services import TextCompletionRequest
|
||
```
|
||
|
||
## Заметки по реализации
|
||
|
||
1. Сохраняйте обратную совместимость, поддерживая импорт в корневом файле `__init__.py`
|
||
2. Перемещайте файлы постепенно, обновляя импорты по мере необходимости
|
||
3. Рассмотрите возможность добавления файла `legacy.py`, который импортирует всё для переходного периода
|
||
4. Обновите документацию, чтобы отразить новую структуру
|
||
|
||
<function_calls>
|
||
<invoke name="TodoWrite">
|
||
<parameter name="todos">[{"id": "1", "content": "Оценить текущую структуру каталога схемы", "status": "completed", "priority": "high"}, {"id": "2", "content": "Проанализировать файлы схемы и их назначение", "status": "completed", "priority": "high"}, {"id": "3", "content": "Предложить улучшенное наименование и структуру", "status": "completed", "priority": "high"}]
|