API семантического поиска

Как можно получить доступ к семантическому поиску через API?

Похоже, что search.json не поддерживает семантический поиск (хотя, кажется, раньше он поддерживался?).

discourse-ai/embeddings/semantic-search?q= вызывается после search.json, и при открытии URL с только что выполненным запросом результаты корректны.

Однако, если я вызову discourse-ai/embeddings/semantic-search?q=differentQuery напрямую, результаты вообще не имеют смысла.

Чего мне не хватает?

Вы можете выполнить чистый поиск по эмбеддингам, используя:

https://DOMAIN/discourse-ai/embeddings/semantic-search.json?hyde=false&q=....

Это отключает часть Hyde, благодаря чему лимиты применяются гораздо менее строго.

Кроме того, в идеале следует использовать API-ключ для этого вызова, что значительно смягчает многие ограничения.

Спасибо, это работает!

Я добавил свои IP-адреса в белый список в файле app.yml, чтобы избежать ограничений по количеству запросов. Кажется, я где-то читал, что это тоже решение для обхода таких ограничений, если я не ошибаюсь.

Не совсем. Ограничения на поиск обычно реализованы на уровне приложения, и критически важно, чтобы Hyde был исключён:

Вы можете сделать только 4 запроса Hyde в минуту (где мы расширяем для вас поисковый запрос), но до 100 запросов без Hyde (при условии, что другие ограничения частоты запросов ослаблены).

Я обязательно передам этот параметр.

Мой вопрос был на самом деле таким: передача API-ключа фактически равносильна исключению IP из ограничений скорости? Или вы имели в виду, что hyde=false работает только ЕСЛИ передан API-ключ?

Это две разные вещи. В API есть отдельные настройки для ограничения частоты запросов, и в глобальных настройках вы можете сделать эти ограничения более мягкими, чем для остальных частей приложения.

Понял, флаг app.yml, о котором я говорил, похоже, снимает ограничения скорости для nginx (DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS)

Тема ниже прояснила это для меня: