LlamaIndex через AI Gateway — RAG по своим данным
Фреймворк для RAG на Python: индексация данных и вопросы к своим документам
LlamaIndex — фреймворк для RAG: он индексирует ваши документы и отвечает на вопросы по ним, подставляя релевантные фрагменты в запрос к модели. LLM-классы принимают кастомный адрес API, поэтому LlamaIndex работает через AI Gateway — задаёте api_base и ключ, а модель берёте из каталога.
Подключение
- Получите API-ключ
Зарегистрируйтесь и создайте ключ в кабинете — он начинается с
sk-aigate-. Для RAG-сервиса удобно завести отдельный ключ с собственной квотой. - Установите пакеты
Нужны ядро LlamaIndex и интеграция с OpenAI-совместимым API:
pip install llama-index llama-index-llms-openai-like - Настройте LLM на AI Gateway
Класс
OpenAILikeрассчитан на сторонние OpenAI-совместимые эндпоинты: передайтеapi_baseсо шлюзом, ключ и код модели из каталога:from llama_index.llms.openai_like import OpenAILike llm = OpenAILike( api_base="https://ai-gatewey.ru/v1", api_key="sk-aigate-...", model="anthropic/claude-sonnet-5", is_chat_model=True, ) - Соберите RAG-пайплайн
Загрузите документы, постройте индекс и задайте вопрос — LlamaIndex сам найдёт релевантные фрагменты и передаст их модели через AI Gateway:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings Settings.llm = llm docs = SimpleDirectoryReader("./data").load_data() index = VectorStoreIndex.from_documents(docs) engine = index.as_query_engine() print(engine.query("О чём эти документы?")) - Проверьте расход
После первого запроса расход по токенам появится в кабинете AI Gateway в реальном времени — по каждому ключу отдельно.
OpenAILike не проверяет модель по списку OpenAI, поэтому корректно работает с кодами каталога вида anthropic/… и deepseek/…. Для эмбеддингов при индексации можно использовать локальную модель или отдельный эмбеддинг-эндпоинт.Какие модели выбрать
В RAG модель работает с уже найденным контекстом, поэтому часто хватает быстрой модели среднего класса; для сложных выводов по документам берите флагман:
| Модель | Ввод, ₽/1М | Вывод, ₽/1М | Контекст |
|---|---|---|---|
| Anthropic: Claude Sonnet 5 | 314 | 1 568 | 1M |
| OpenAI: GPT-5.4 Mini | 118 | 705 | 400K |
| DeepSeek: DeepSeek V3 | 31 | 125 | 128K |
Частые вопросы
Чем OpenAILike отличается от класса OpenAI?
OpenAILike не сверяет имя модели со списком OpenAI и рассчитан на сторонние совместимые эндпоинты — с ним коды каталога вроде anthropic/claude-sonnet-5 работают без ошибок валидации.
Как быть с эмбеддингами для индекса?
Генерация ответа идёт через AI Gateway, а эмбеддинги для индексации можно считать локальной моделью (например, из HuggingFace) или отдельным эмбеддинг-эндпоинтом — LlamaIndex позволяет задать их независимо.
Можно ли менять модель, не переиндексируя данные?
Да. Индекс не зависит от LLM: смените код модели в OpenAILike, а построенный индекс остаётся прежним — переиндексация не нужна.
Ключ для LlamaIndex — сразу после регистрации
Получить ключ