按語義相似性搜索文件
具備批次處理能力的語義搜尋端點
範例請求
curl -X GET \
"https://api.rememberizer.ai/api/v1/documents/search/?q=如何%20將%20Rememberizer%20整合%20到%20自訂%20應用程式&n=5&from=2023-01-01T00:00:00Z&to=2023-12-31T23:59:59Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"const searchDocuments = async (query, numResults = 5, from = null, to = null) => {
const url = new URL('https://api.rememberizer.ai/api/v1/documents/search/');
url.searchParams.append('q', query);
url.searchParams.append('n', numResults);
if (from) {
url.searchParams.append('from', from);
}
if (to) {
url.searchParams.append('to', to);
}
const response = await fetch(url.toString(), {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_JWT_TOKEN'
}
});
const data = await response.json();
console.log(data);
};
searchDocuments('如何將 Rememberizer 整合到自訂應用程式', 5);查詢參數
q
字串
必填。 搜尋查詢文本(最多 400 字)。
n
整數
要返回的結果數量。預設:3。使用較高的值(例如,10)以獲得更全面的結果。
from
字串
要搜尋的文件的時間範圍開始,使用 ISO 8601 格式。
to
字串
要搜尋的文件的時間範圍結束,使用 ISO 8601 格式。
prev_chunks
整數
包含的前幾個片段數量以提供上下文。預設:2。
next_chunks
整數
包含的後幾個片段數量以提供上下文。預設:2。
回應格式
搜尋優化技巧
用於問題回答
在尋找問題的答案時,嘗試將查詢表述為理想答案。例如:
而不是: "什麼是向量嵌入?" 嘗試: "向量嵌入是一種將文本轉換為高維空間中的數值向量的技術。"
調整結果數量
從
n=3開始,以獲得快速且高相關性的結果增加到
n=10或更高,以獲取更全面的信息如果搜索返回的信息不足,請嘗試增加
n參數
基於時間的篩選
使用 from 和 to 參數來專注於特定時間範圍內的文件:
最近的文件:將
from設定為最近的日期歷史分析:指定特定的日期範圍
排除過時的信息:設置適當的
to日期
批次操作
為了有效處理大量的搜尋查詢,Rememberizer 支援批次操作以優化性能並減少 API 呼叫的開銷。
批次搜尋
性能考量
在實施批次操作時,考慮以下最佳實踐:
最佳批次大小:從 5-10 個查詢的批次大小開始,根據應用程式的性能特徵進行調整。
速率限制:在批次之間加入延遲,以防止 API 限流。一個好的起始點是在批次之間等待 1 秒。
錯誤處理:實施穩健的錯誤處理,以管理批次中的失敗請求。
資源管理:監控客戶端資源使用情況,特別是在大型批次大小的情況下,以防止過度的記憶體消耗。
回應處理:在可能的情況下,異步處理批次結果,以改善用戶體驗。
對於高流量應用程式,考慮實施佇列系統,以有效管理大量的搜尋請求。
此端點提供強大的語義搜尋功能,涵蓋整個知識庫。它使用向量嵌入根據意義而非精確關鍵字匹配來查找內容。
Last updated