Иерархия индексов: векторный, древовидный, ключевой
Сравните VectorStoreIndex (по умолчанию), TreeIndex (суммаризация) и KeywordTableIndex (разреженный индекс).
«Иерархия индексов: векторный, древовидный, ключевой» — бесплатный урок AI Agents на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Agents, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Agents содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Индексы в LlamaIndex
LlamaIndex называет свои структуры данных для извлечения «индексами». Существует несколько типов, каждый из которых подходит для разных задач.
VectorStoreIndex (по умолчанию)
Стандартный индекс на основе эмбеддингов — Ваш основной инструмент на каждый день:
from llama_index.core import VectorStoreIndex
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
print(query_engine.query('What is in the handbook?'))TreeIndex
Строит иерархическое дерево сводок — полезно для запросов на суммирование:
from llama_index.core import TreeIndex
index = TreeIndex.from_documents(documents)
# Internal nodes are summaries of their children.
# Good for 'summarise the whole corpus' tasks.KeywordTableIndex
Классический индекс на основе ключевых слов — подходит, когда индекс на основе эмбеддингов не справляется с редкими терминами:
from llama_index.core import KeywordTableIndex
index = KeywordTableIndex.from_documents(documents)
# Falls back to exact-match for rare technical terms.SummaryIndex (ранее ListIndex)
Плоский список всех фрагментов — полезен, когда Вы хотите, чтобы LLM увидела ВСЕ данные:
from llama_index.core import SummaryIndex
index = SummaryIndex.from_documents(documents)
# Best for short corpora where you can stuff everything into context.KnowledgeGraphIndex
Извлекает из документов граф знаний (сущности и связи):
from llama_index.core import KnowledgeGraphIndex
index = KnowledgeGraphIndex.from_documents(
documents,
max_triplets_per_chunk=10
)Выбор индекса
| Задача | Индекс |
|---|---|
| Вопросы и ответы по сходству | VectorStoreIndex |
| Суммирование всего корпуса | TreeIndex / SummaryIndex |
| Редкие точные термины | KeywordTableIndex |
| Факты о связях | KnowledgeGraphIndex |
Комбинирование индексов
Можно объединять индексы — например, создать дерево сводок поверх векторных индексов отдельных документов:
from llama_index.core import ComposableGraph
graph = ComposableGraph.from_indices(
TreeIndex,
[vector_index_doc_1, vector_index_doc_2, ...],
index_summaries=['Doc 1 summary', 'Doc 2 summary']
)Persisting an Index
index.storage_context.persist(persist_dir='./store')
# Reload later:
from llama_index.core import StorageContext, load_index_from_storage
ctx = StorageContext.from_defaults(persist_dir='./store')
index = load_index_from_storage(ctx)Использование внешних векторных хранилищ
Объедините LlamaIndex с Pinecone, Qdrant, Weaviate и другими системами:
from llama_index.vector_stores.pinecone import PineconeVectorStore
from llama_index.core import StorageContext, VectorStoreIndex
vector_store = PineconeVectorStore(pinecone_index=pc_index)
storage = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(documents, storage_context=storage)Гибридное извлечение
Объединяйте векторный поиск и поиск по ключевым словам с помощью отдельных индексов и механизма запросов, объединяющего результаты.
Обновление индекса
Для обновления документов LlamaIndex поддерживает инкрементальное обновление:
index.refresh_ref_docs(updated_documents)Индекс для суммирования
Какой тип LlamaIndex лучше всего подходит для задачи «суммировать весь корпус»?
Повторение
Выбирайте индекс в соответствии с задачей. По умолчанию используйте VectorStoreIndex, а для специализированных задач выбирайте TreeIndex, KeywordTableIndex или KnowledgeGraphIndex.
Часто задаваемые вопросы
Урок «Иерархия индексов: векторный, древовидный, ключевой» бесплатный?
Да — полный текст урока «Иерархия индексов: векторный, древовидный, ключевой» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Agents, подпишись на CoddyKit PRO. Курс AI Agents содержит 4 уроков всего.
Чему я научусь в уроке «Иерархия индексов: векторный, древовидный, ключевой»?
Сравните VectorStoreIndex (по умолчанию), TreeIndex (суммаризация) и KeywordTableIndex (разреженный индекс). Ты практикуешь AI Agents с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Agents?
Предыдущий опыт не требуется. AI Agents на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Иерархия индексов: векторный, древовидный, ключевой»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Agents?
Да. Каждый урок AI Agents включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Загрузчики и разборщики документов
- Иерархия индексов: векторный, древовидный, ключевой
- Механизмы запросов и синтез ответов
- Стратегия декомпозиции на подвопросы