AACSearch / руководство
Поиск на естественном языке и модели диалога
Регистрация моделей для nl_query (разбор обычного языка в фильтры) и conversation (многоходовая память поверх поиска) — собственное понимание запроса движком, а не RAG ассистентов.
Двум параметрам поиска нужна настроенная модель, прежде чем их можно включить:
nl_query и conversation. Оба работают внутри обычного поискового
запроса — они меняют то, как searchCollection/multiSearch разбирают q
и продолжают диалог, а не открывают отдельный chat-эндпоинт. Для
retrieval-augmented ответов со ссылками на документы используйте
ассистентов; эти две функции — более низкоуровневое
понимание запроса на самом движке, и им нужны ваши собственные учётные данные
LLM.
Каждой операции на этой странице нужен полный ключ.
Модели поиска на естественном языке
nl_query: true в поиске отправляет текст запроса модели, которая переводит
«красные кроссовки дешевле 5000 ₽» в q/filter_by/sort_by для обычного
поиска — ответ несёт разбор в parsed_nl_query. nl_model_id в поиске
выбирает, какая зарегистрированная модель выполняет перевод.
| Операция | Эндпоинт |
|---|---|
createNLSearchModel | POST /nl_search_models |
retrieveAllNLSearchModels | GET /nl_search_models |
retrieveNLSearchModel | GET /nl_search_models/{modelId} |
updateNLSearchModel | PUT /nl_search_models/{modelId} |
deleteNLSearchModel | DELETE /nl_search_models/{modelId} |
const model = await client.nlSearchModels.createNLSearchModel({
id: "openai-nl",
model_name: "gpt-4o-mini",
api_key: process.env.NL_MODEL_API_KEY!,
system_prompt: "Переведи вопрос покупателя в query_by/filter_by для поиска товаров.",
max_bytes: 8192,
temperature: 0,
});api_key, api_url, а для Google/Vertex AI — ещё api_version,
project_id, access_token и refresh_token — это учётные данные самого
сервиса модели: платформа обращается к вашей модели, а не к своей.
top_p, top_k и stop_sequences — специфичные для Google параметры
сэмплирования.
curl -G https://api.aacsearch.com/v1/collections/products/documents/search \
-H "X-NOVA-API-KEY: $NOVA_SEARCH_KEY" \
--data-urlencode "q=красные кроссовки дешевле 5000" \
--data-urlencode "nl_query=true" --data-urlencode "nl_model_id=openai-nl"nl_query_debug=true возвращает сырой ответ модели в
parsed_nl_query.llm_response — полезно при настройке system_prompt.
nl_query_prompt_cache_ttl (по умолчанию 86400 секунд) кэширует промпт со
схемой, построенный для модели, чтобы повторные поиски не пересылали всю схему
коллекции заново.
Модели диалога
conversation: true в поиске накладывает многоходовую память поверх
собственного поиска движка, так что уточняющий запрос («покажи в синем») можно
трактовать в контексте предыдущего хода. conversation_model_id выбирает
зарегистрированную модель; conversation_id продолжает предыдущий обмен.
| Операция | Эндпоинт |
|---|---|
createConversationModel | POST /conversations/models |
retrieveAllConversationModels | GET /conversations/models |
retrieveConversationModel | GET /conversations/models/{modelId} |
updateConversationModel | PUT /conversations/models/{modelId} |
deleteConversationModel | DELETE /conversations/models/{modelId} |
await client.conversationModels.createConversationModel({
id: "openai-conversation",
model_name: "gpt-4o-mini",
max_bytes: 8192,
history_collection: "conversation_history",
});history_collection — коллекция, которую создаёте вы заранее: платформа
пишет туда историю каждого хода. Требование собственных учётных данных LLM
для модели (в отличие от ассистентов, которые работают на моделях платформы) —
плата за то, что диалоговую память ведёт сам движок:
curl -G https://api.aacsearch.com/v1/collections/products/documents/search \
-H "X-NOVA-API-KEY: $NOVA_SEARCH_KEY" \
--data-urlencode "q=покажи в синем" \
--data-urlencode "conversation=true" \
--data-urlencode "conversation_model_id=openai-conversation" \
--data-urlencode "conversation_id=$PREVIOUS_CONVERSATION_ID"conversation_stream=true передаёт ответ диалога как Server-Sent Events
(data: {"conversation": {"message": "...", "conversation_id": "..."}},
завершаясь data: [DONE]) после финального события с полным ответом поиска.
Что выбрать?
| Row label / название строки | Поиск на естественном языке | Модели диалога | Ассистенты |
|---|---|---|---|
| Отвечает | обычным результатом поиска | обычным результатом поиска | сгенерированным ответом со ссылками на документы |
| Многоходовость | нет | да, через conversation_id | да, через conversation_id |
| Модель | ваши учётные данные | ваши учётные данные | собственные модели платформы |
| Использовать для | «красные кроссовки дешевле 5000» как запроса, а не чата | цикла уточнений поверх результатов поиска | Q&A / поддержки по каталогу |
Платформенную альтернативу см. в ассистентах.
Ассистенты (RAG)
Создайте ассистента, который отвечает по вашим коллекциям, задавайте ему вопросы с сервера или из браузера, получайте ответ потоком, продолжайте диалоги и контролируйте стоимость.
Медиа, поиск по изображению и эмбеддинги
Загрузите изображение товара, получите многоязычный эмбеддинг, записанный в документ, ищите по изображению или по смыслу и эмбеддите текст той же моделью.