按语义相似性搜索文档
具有批处理能力的语义搜索端点
示例请求
curl -X GET \
"https://api.rememberizer.ai/api/v1/documents/search/?q=如何将Rememberizer与自定义应用程序集成&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