MarcP
(MarcP)
1
API를 통해 의미론적 검색(semantic search)에 접근하는 방법은 무엇인가요?
search.json에는 의미론적 검색 기능이 없는 것 같습니다(어느 시점에 있었다고 기억하는데?).
discourse-ai/embeddings/semantic-search?q=는 search.json 호출 후에 실행되며, 방금 수행한 쿼리가 포함된 URL을 직접 열면 결과가 정확합니다.
하지만 discourse-ai/embeddings/semantic-search?q=differentQuery를 직접 호출하면 결과가 전혀 말이 되지 않습니다.
무엇을 놓치고 있는 건가요?
sam
(Sam Saffron)
2
다음과 같이 순수 임베딩 검색을 수행할 수 있습니다:
https://DOMAIN/discourse-ai/embeddings/semantic-search.json?hyde=false&q=....
이렇게 하면 hyde 부분이 비활성화되어 속도 제한이 훨씬 덜 엄격하게 적용됩니다.
또한, 호출 시 API 키를 사용하면 많은 제한이 완화됩니다.
MarcP
(MarcP)
3
감사합니다, 작동합니다!
app.yml에서 IP를 화이트리스트에 등록하여 레이트 리미팅을 제외했습니다. 제 기억이 맞다면, 어딘가에서 이것이 레이트 리밋을 우회하는 해결책이라고 읽은 것 같습니다.
sam
(Sam Saffron)
4
아니요, 검색 제한은 일반적으로 앱에서 구현되며, hyde를 건너뛰는 것이 여기서 중요합니다:
1분에 hyde 쿼리를 4회(검색어를 대신 확장해 주는 기능)까지 사용할 수 있으며, hyde가 아닌 쿼리는 최대 100회까지 사용할 수 있습니다(다른 rate limit이 완화되는 경우).
MarcP
(MarcP)
5
저는 이 파라미터를 반드시 전달할 것입니다.
실제로 제가 하고 싶었던 질문은 이렇습니다. API 키를 전달하는 것이 IP를 레이트리밋에서 제외하는 것과 실질적으로 동일한가요? 아니면 hyde=false가 API 키가 전달될 때만 작동한다는 의미였나요?
sam
(Sam Saffron)
6
두 가지는 서로 관련이 없습니다. API에는 속도 제한에 대한 별도의 설정 옵션이 있으며, 전역 설정에서 앱의 다른 부분보다 이를 더 느슨하게 조정할 수 있습니다.
MarcP
(MarcP)
7
알겠습니다. 제가 말씀드린 app.yml 플래그가 nginx의 속도 제한(DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS)을 해제하는 것 같습니다.
아래 토픽 덕분에 조금 더 명확하게 이해할 수 있었습니다: