mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 17:06:22 +02:00
144 lines
5.8 KiB
Markdown
144 lines
5.8 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.
|
||
|
||
## Обзор
|
||
|
||
В настоящее время хранилище встраиваний документов хранит текст фрагментов непосредственно в полезной нагрузке векторного хранилища, дублируя данные, которые существуют в Garage. Данная спецификация заменяет хранение текста фрагментов ссылками на `chunk_id`.
|
||
|
||
## Текущее состояние
|
||
|
||
```python
|
||
@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)
|
||
```
|
||
|
||
Структура данных для хранения векторов:
|
||
```python
|
||
payload={"doc": chunk} # Duplicates Garage content
|
||
```
|
||
|
||
## Дизайн
|
||
|
||
### Изменения схемы
|
||
|
||
**ChunkEmbeddings** - заменить "chunk" на "chunk_id":
|
||
```python
|
||
@dataclass
|
||
class ChunkEmbeddings:
|
||
chunk_id: str = ""
|
||
vectors: list[list[float]] = field(default_factory=list)
|
||
```
|
||
|
||
**DocumentEmbeddingsResponse** - возвращать chunk_ids вместо фрагментов:
|
||
```python
|
||
@dataclass
|
||
class DocumentEmbeddingsResponse:
|
||
error: Error | None = None
|
||
chunk_ids: list[str] = field(default_factory=list)
|
||
```
|
||
|
||
### Структура данных для векторного хранилища
|
||
|
||
Все хранилища (Qdrant, Milvus, Pinecone):
|
||
```python
|
||
payload={"chunk_id": chunk_id}
|
||
```
|
||
|
||
### Изменения в системе извлечения информации (RAG)
|
||
|
||
Модуль обработки документов RAG извлекает содержимое фрагментов из системы Garage:
|
||
|
||
```python
|
||
# 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:
|
||
```python
|
||
return resp.chunk_ids # Changed from resp.chunks
|
||
```
|
||
|
||
**Формат данных** (DocumentEmbeddingsResponseTranslator):
|
||
```python
|
||
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`
|
||
|
||
## Преимущества
|
||
|
||
1. Единый источник истины - текст фрагментов только в Garage
|
||
2. Уменьшение объема хранимых векторных представлений
|
||
3. Обеспечивает отслеживание происхождения данных в момент запроса с помощью идентификатора фрагмента.
|