ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Khoj 自托管怎么更换多语言 bi-encoder 模型提升非英文笔记的搜索质量?

Khoj 自托管怎么更换多语言 bi-encoder 模型提升非英文笔记的搜索质量? Khoj 自托管怎么更换多语言 bi-encoder 模型提升非英文笔记的搜索质量【免费下载链接】khojYour AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous AI (gpt, claude, gemini, llama, qwen, mistral). Get started - free.项目地址: https://gitcode.com/GitHub_Trending/kh/khoj如果你的 Khoj 笔记以中文、日文等非英文语言为主默认搜索模型对非英文内容的检索和“chat with docs”效果往往不理想。Khoj 用 embedding 模型来理解文档文档明确指出换成多语言multilingualembedding 模型可以提升非英文文档的搜索质量且该改动会同时影响搜索和与文档对话两个体验。本文基于 多语言文档支持说明 和 Search 功能文档给出一条完整的操作路径在自托管 Khoj 的管理后台把 bi-encoder 换成多语言模型重启服务并从各客户端重新生成内容索引。前置条件Khoj 服务器已按 Self-Host 文档 自托管并正常运行默认访问地址为http://localhost:42110你的笔记已通过 Desktop、Obsidian、Emacs 等客户端同步到 Khoj或已在 Web 应用中上传能登录服务端管理后台见下节。登录管理后台并找到搜索模型配置页用浏览器打开http://localhost:42110/server/admin用安装时设置的账号密码登录。文档特别提醒访问管理后台请使用localhost 而不是 127.0.0.1否则会触发 CSRF 错误Safari 用户如遇登录问题可换用 Chrome 或 Firefox。进入搜索模型配置页文档给出的地址是http://localhost:42110/server/admin/database/searchmodelconfig/。页面上已有搜索模型配置就点击其id编辑没有则点击加号按钮新建一条。自托管时 Khoj 会设置一套默认本地搜索模型通用场景不需要改。文档列出的需要自行配置的典型情况就是需要更好的多语言搜索、想试验不同模型或默认模型不适配你的用例。配置多语言 bi-encoder 与 cross-encoder按 多语言文档支持说明 的配置示例使用sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2该模型支持 50 种语言文档评价其在消费级机器上有不错的搜索质量与速度将bi_encoder字段设置为sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2将cross_encoder字段设置为mixedbread-ai/mxbai-rerank-xsmall-v1说明Search 功能文档 中同一字段写作biencoder无下划线两处文档对字段名拼写不一致以你管理后台页面上实际显示的字段名为准。bi-encoder 模型可以是本地从 Huggingface 下载sentence-transformers 库支持的模型也可以通过 HuggingFace Inference API、OpenAI API、Azure OpenAI 或 Ollama、LiteLLM 等 OpenAI 兼容 API 提供服务。可选为需要前缀的现代 embedding 模型配置 query 前缀。文档指出mixedbread-ai/mxbai-embed-large-v1这类现代搜索/嵌入模型期望在 query或文档字符串前加前缀以提升编码效果。此时把bi_encoder_query_encode_config字段设为合法 JSON 对象SentenceTransformerencode函数可接受任何有效 JSON例如{prompt: Represent this query for searching documents}可选改用 API 提供的 embedding 服务。若不想本地跑模型按 Search 功能文档 的配置把Embeddings inference endpoint api key设为你的 OpenAI API key、Embeddings inference endpoint type设为OpenAI即可用 OpenAI embedding 模型改用 Azure OpenAI 或其他 OpenAI 兼容 API 时再把Embeddings inference endpoint设为对应的 API URL。必做保证default唯一。保存前确认你要使用的这条搜索模型配置是唯一一条name字段为default的配置。文档脚注说明Khoj 启动时会使用它找到的第一条名为default的搜索模型配置作为该会话的搜索配置。最后保存配置并重启 Khoj 服务器使新搜索配置生效。Pip 安装方式对应重新启动服务命令USE_EMBEDDED_DBtrue khoj --anonymous-modeDocker 安装方式则在docker-compose.yml所在目录重启容器。重新生成内容索引必做这一步文档明确标注“very important”换了 bi-encoder 后必须用新模型重新编码所有内容否则旧向量与新模型不匹配搜索质量不会提升。也就是说需要在所有同步过内容的客户端上重新生成索引而不是只重启服务器。各客户端的文档化操作Obsidian在 Khoj 插件设置中点击Force Sync立即同步 vault文档的 Troubleshooting 部分也说明若结果失败或过期点击Update按钮可以强制刷新索引。Emacs对Content内容执行Update动作并开启Force Update开关该开关仅用于Update动作。Web已上传过的文档可以重新拖拽到聊天窗口、或通过回形针图标重新选择上传。你的笔记是用哪个客户端同步的就在哪个客户端触发重同步多个客户端都有内容的逐个处理。验证与后续调整重新索引完成后从任一客户端发起一次针对非英文内容的自然语言搜索来检查效果Web打开http://localhost:42110使用搜索Obsidian点击 Ribbon 上的 Khoj search 图标或在 Command Palette 中执行Khoj: SearchEmacs运行M-x khoj user-query。文档没有给出固定的成功日志或数值判定实际以你对非英文笔记的查询能否检索到相关条目为准。如果“chat with docs”返回的文档数量不合适可以调整Bi encoder confidence threshold字段它是 query 与文档语义距离的归一化度量取值范围 0.0完全重叠到 1.0无语义重叠用于限制进入对话上下文的文档数量。文档建议每个 bi-encoder 模型都可能需要单独调这个阈值。限制提醒更换 bi-encoder 后不重新索引是无效的两个步骤缺一不可另外default配置重复时 Khoj 只取找到的第一条多条default并存时行为取决于启动时命中的顺序保存前应确保唯一。【免费下载链接】khojYour AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous AI (gpt, claude, gemini, llama, qwen, mistral). Get started - free.项目地址: https://gitcode.com/GitHub_Trending/kh/khoj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进