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.
5.8 KiB
| 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.
Обзор
В настоящее время хранилище встраиваний документов хранит текст фрагментов непосредственно в полезной нагрузке векторного хранилища, дублируя данные, которые существуют в Garage. Данная спецификация заменяет хранение текста фрагментов ссылками на chunk_id.
Текущее состояние
@dataclass
class ChunkEmbeddings:
chunk: bytes = b""
vectors: list[list[float]] = field(default_factory=list)
@dataclass
class DocumentEmbeddingsResponse:
error: Error | None = None
chunks: list[str] = field(default_factory=list)
Структура данных для хранения векторов:
payload={"doc": chunk} # Duplicates Garage content
Дизайн
Изменения схемы
ChunkEmbeddings - заменить "chunk" на "chunk_id":
@dataclass
class ChunkEmbeddings:
chunk_id: str = ""
vectors: list[list[float]] = field(default_factory=list)
DocumentEmbeddingsResponse - возвращать chunk_ids вместо фрагментов:
@dataclass
class DocumentEmbeddingsResponse:
error: Error | None = None
chunk_ids: list[str] = field(default_factory=list)
Структура данных для векторного хранилища
Все хранилища (Qdrant, Milvus, Pinecone):
payload={"chunk_id": chunk_id}
Изменения в системе извлечения информации (RAG)
Модуль обработки документов RAG извлекает содержимое фрагментов из системы Garage:
# Get chunk_ids from embeddings store
chunk_ids = await self.rag.doc_embeddings_client.query(...)
# Fetch chunk content from Garage
docs = []
for chunk_id in chunk_ids:
content = await self.rag.librarian_client.get_document_content(
chunk_id, self.user
)
docs.append(content)
Изменения API/SDK
DocumentEmbeddingsClient возвращает chunk_ids:
return resp.chunk_ids # Changed from resp.chunks
Формат данных (DocumentEmbeddingsResponseTranslator):
result["chunk_ids"] = obj.chunk_ids # Changed from chunks
Изменения в CLI
Инструмент CLI отображает идентификаторы фрагментов (пользователи могут извлекать контент отдельно, если это необходимо).
Файлы для изменения
Схема
trustgraph-base/trustgraph/schema/knowledge/embeddings.py - ChunkEmbeddings
trustgraph-base/trustgraph/schema/services/query.py - DocumentEmbeddingsResponse
Сообщения/Переводчики
trustgraph-base/trustgraph/messaging/translators/embeddings_query.py - DocumentEmbeddingsResponseTranslator
Клиент
trustgraph-base/trustgraph/base/document_embeddings_client.py - возвращать идентификаторы фрагментов
Python SDK/API
trustgraph-base/trustgraph/api/flow.py - document_embeddings_query
trustgraph-base/trustgraph/api/socket_client.py - document_embeddings_query
trustgraph-base/trustgraph/api/async_flow.py - если применимо
trustgraph-base/trustgraph/api/bulk_client.py - импорт/экспорт векторных представлений документов
trustgraph-base/trustgraph/api/async_bulk_client.py - импорт/экспорт векторных представлений документов
Сервис векторных представлений
trustgraph-flow/trustgraph/embeddings/document_embeddings/embeddings.py - передавать идентификатор фрагмента
Модули записи в хранилище
trustgraph-flow/trustgraph/storage/doc_embeddings/qdrant/write.py
trustgraph-flow/trustgraph/storage/doc_embeddings/milvus/write.py
trustgraph-flow/trustgraph/storage/doc_embeddings/pinecone/write.py
Сервисы запросов
trustgraph-flow/trustgraph/query/doc_embeddings/qdrant/service.py
trustgraph-flow/trustgraph/query/doc_embeddings/milvus/service.py
trustgraph-flow/trustgraph/query/doc_embeddings/pinecone/service.py
Шлюз
trustgraph-flow/trustgraph/gateway/dispatch/document_embeddings_query.py
trustgraph-flow/trustgraph/gateway/dispatch/document_embeddings_export.py
trustgraph-flow/trustgraph/gateway/dispatch/document_embeddings_import.py
Document RAG
trustgraph-flow/trustgraph/retrieval/document_rag/rag.py - добавить клиент librarian
trustgraph-flow/trustgraph/retrieval/document_rag/document_rag.py - извлекать из Garage
CLI
trustgraph-cli/trustgraph/cli/invoke_document_embeddings.py
trustgraph-cli/trustgraph/cli/save_doc_embeds.py
trustgraph-cli/trustgraph/cli/load_doc_embeds.py
Преимущества
- Единый источник истины - текст фрагментов только в Garage
- Уменьшение объема хранимых векторных представлений
- Обеспечивает отслеживание происхождения данных в момент запроса с помощью идентификатора фрагмента.