LlamaIndex + NeuroAPI: OpenAILike и RAG
LlamaIndex поверх NeuroAPI: OpenAILike с api_base, эмбеддинги для индекса и минимальный скелет RAG-приложения.
Короткий ответ
Краткий ответ
LlamaIndex с NeuroAPI: OpenAILike с api_base и api_key, OpenAIEmbedding для индекса, скелет RAG и разбор ошибок. ID моделей и цены — в каталоге.
98
моделей в каталоге
Публичный каталог /price на 18.10.2026; список для кода — GET /v1/models.
/v1
базовый адрес
https://neuroapi.host/v1 — значение api_base у OpenAILike и OpenAIEmbedding.
3
тарифа доступа
Пилот, Смарт и Оптимальный выбираются при создании API-ключа.
/docs
документация
Ключ, форматы и ошибки — neuroapi.host/docs (проверено 19.10.2026).
OpenAILike
Класс из llama-index-llms-openai-like принимает model, api_base, api_key и параметры контекста.
Контекст вручную
По умолчанию context_window у OpenAILike небольшой, поэтому значение нужно задать по карточке модели.
Эмбеддинги для индекса
OpenAIEmbedding принимает api_base и api_key и подходит для индексации документов NeuroAPI.
Один base_url
LLM и эмбеддинги направляются на https://neuroapi.host/v1, поэтому ключ и тариф общие.
Как подключить LlamaIndex к NeuroAPI за 4 шага
- 1
Создайте ключ и выберите модели
В кабинете NeuroAPI создайте ключ и выберите тариф. В /price найдите ID чат-модели и embedding-модели для индекса.
- 2
Установите интеграционные пакеты
Установите llama-index-llms-openai-like и llama-index-embeddings-openai, зафиксируйте версии. Ключ храните в переменной окружения.
- 3
Настройте LLM и эмбеддинги
Создайте OpenAILike с model, api_base https://neuroapi.host/v1, api_key и context_window из карточки модели; затем OpenAIEmbedding с теми же адресом и ключом.
- 4
Соберите и проверьте RAG
Загрузите документы, постройте VectorStoreIndex и задайте вопрос. Проверьте релевантность поиска, коды 401, 404, 429 и расход в кабинете.
Шаги и их текст совпадают с HowTo-разметкой. Параметры OpenAILike и OpenAIEmbedding сверены с документацией LlamaIndex 19.10.2026; значения по умолчанию могут меняться по версиям.
Подготовка: пакеты, ключ и модели
LlamaIndex — фреймворк для приложений с данными: индексация, поиск, RAG и агенты. Для NeuroAPI используются интеграционные пакеты llama-index-llms-openai-like и llama-index-embeddings-openai. Сначала создайте ключ в кабинете NeuroAPI, затем выпишите из /price ID чат-модели и embedding-модели: в каталоге на 19.10.2026 доступны text-embedding-3-small и text-embedding-3-large.
Установите нужные пакеты и зафиксируйте версии в зависимостях. Обратите внимание: OpenAILike — тонкая обёртка вокруг OpenAI-клиента для сторонних OpenAI-совместимых API, поэтому стандартные параметры запросов работают, а нестандартные поля провайдера могут быть недоступны.
- pip install llama-index-llms-openai-like llama-index-embeddings-openai
- Ключ NeuroAPI — в переменной окружения.
- ID моделей — из /price или GET /v1/models.
- Версии пакетов фиксируйте в проекте.
OpenAILike: подключение LLM
Базовый пример: OpenAILike(model=<ID>, api_base="https://neuroapi.host/v1", api_key=<ключ>, context_window=<из карточки>, is_chat_model=True, is_function_calling_model=<по модели>). Параметры api_base и api_key описаны в документации LlamaIndex; is_chat_model и is_function_calling_model зависят от возможностей выбранной модели.
Отдельно задайте context_window: в документации значение по умолчанию небольшое, и на реальных задачах его нужно поднять до характеристики модели, иначе длинные документы будут обрезаться. Если модель поддерживает вызов инструментов, включите is_function_calling_model; если не уверены — оставьте False и не строите агентные сценарии на этой модели.
- model — точный ID модели.
- api_base — https://neuroapi.host/v1.
- api_key — ключ NeuroAPI.
- context_window — из карточки модели.
- is_chat_model=True для чат-моделей.
OpenAIEmbedding: индекс и поиск
Эмбеддинги настраиваются классом OpenAIEmbedding с параметрами model, api_base и api_key. Документы и запросы должны кодироваться одной моделью и с одной размерностью: если индекс собран одной моделью, а запрос кодируется другой, поиск теряет смысл. При смене embedding-модели переиндексируйте корпус.
Для больших наборов документов индексацию стоит запускать партиями и проверять размерность на небольшом примере. Стоимость эмбеддингов зависит от объёма текста, поэтому объём корпуса влияет на расход не меньше, чем запросы к чат-модели.
- OpenAIEmbedding(model=..., api_base=..., api_key=...).
- Одна модель для документов и запросов.
- Смена модели — переиндексация корпуса.
- Проверяйте размерность до полной загрузки.
Скелет RAG: от документов до ответа
Типовой сценарий: SimpleDirectoryReader загружает документы, VectorStoreIndex строит индекс на эмбеддингах, а query engine отвечает на вопросы, подмешивая найденные фрагменты в контекст. В LlamaIndex удобно задать общие настройки через Settings.llm и Settings.embed_model — тогда все компоненты используют один LLM и одну модель эмбеддингов.
Начните с небольшого корпуса и проверьте, что поиск действительно находит релевантные фрагменты до того, как добавлять сложные цепочки. Для production стоит ограничить размер передаваемого контекста и следить за usage: каждый вопрос с контекстом — это запрос к модели, а индексация — отдельный расход на эмбеддинги.
Для диалогов LlamaIndex предлагает chat engine с памятью: история удерживается в пределах заданного буфера. Помните, что каждый ход с историей увеличивает контекст и стоимость, поэтому ограничивайте глубину памяти и суммируйте старые сообщения, когда диалог становится длинным.
Если история не нужна, используйте query engine: он отвечает на отдельные вопросы без накопления контекста. Выбор между chat и query зависит от сценария, и его стоит зафиксировать до production-нагрузки, чтобы поведение и расход были предсказуемыми. Для тестовых прогонов держите отдельный ключ и небольшой корпус документов: так проверка не будет съедать рабочий баланс. Добавьте smoke-тест, который проверяет и ответ LLM, и размерность эмбеддингов. Так регрессия в интеграции обнаружится до того, как пользователи увидят пустые или нерелевантные ответы.
- SimpleDirectoryReader → VectorStoreIndex → query engine.
- Settings.llm и Settings.embed_model — единые настройки.
- Сначала проверьте качество поиска, потом усложняйте.
- Контролируйте размер контекста и объём индексации.
- Chat engine хранит историю — следите за глубиной.
- Query engine не накапливает контекст.
- Суммируйте старые сообщения в длинных диалогах.
- Зафиксируйте режим до production-нагрузки.
Ошибки и совместимость
Типовые коды: 401 — неверный ключ, 404 — опечатка в ID модели или api_base, 429 — превышение лимитов. Для 429 и 5xx допустимы повторы с задержкой, для 401 и 404 — нет. Если ответы обрываются по контексту, проверьте context_window и размер передаваемых фрагментов.
Помните, что возможности tools и структурированного вывода зависят от модели: OpenAILike передаёт стандартные параметры OpenAI-совместимого API, но не добавляет функций, которых нет у модели. Ориентируйтесь на карточку модели и документацию пакета, а не на ожидания от «любой OpenAI-совместимой» модели.
- 401 — ключ, 404 — модель и api_base, 429 — лимиты.
- Обрывы — проверьте context_window и размер фрагментов.
- tools доступны только при поддержке моделью.
- Сверяйте поведение с карточкой модели.
Что проверить перед production
Перед запуском проверьте три вещи: размер контекста, качество поиска и обработку ошибок. Если ответы на реальных документах нерелевантны, дело чаще в разбиении или в embedding-модели, а не в LLM. Ошибки 429 и 5xx стоит обрабатывать повторами с задержкой и ограничением числа попыток.
Отдельно настройте наблюдаемость: логируйте модель, число найденных фрагментов и usage, но не полный текст приватных документов. Это помогает разбирать инциденты и считать стоимость на реальном трафике, не нарушая требования к данным.
- Проверьте context_window и размер фрагментов.
- Оцените релевантность поиска на реальных вопросах.
- Обрабатывайте 429 и 5xx повторами с задержкой.
- Логи без приватного текста, но с usage.
Python: LLM, эмбеддинги и индекс
pythonimport os
from llama_index.core import Settings, SimpleDirectoryReader, VectorStoreIndex
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.llms.openai_like import OpenAILike
llm = OpenAILike(
model="<MODEL_ID_ИЗ_PRICE>",
api_base="https://neuroapi.host/v1",
api_key=os.environ["NEUROAPI_API_KEY"],
context_window=32000,
is_chat_model=True,
is_function_calling_model=False,
)
embed_model = OpenAIEmbedding(
model="text-embedding-3-small",
api_base="https://neuroapi.host/v1",
api_key=os.environ["NEUROAPI_API_KEY"],
)
Settings.llm = llm
Settings.embed_model = embed_model
documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)
print(index.as_query_engine().query("О чём эти документы?"))Проверка ключа и моделей
bashcurl -s https://neuroapi.host/v1/models \
-H "Authorization: Bearer $NEUROAPI_API_KEY" \
| head -c 1200Соберите RAG на NeuroAPI
Один ключ для чат-моделей и эмбеддингов, OpenAI-совместимый base_url и каталог с ценами в рублях. Начните с небольшого корпуса, затем расширяйте индекс.
Каталог проверен 18.10.2026; параметры интеграции — по документации LlamaIndex на 19.10.2026.