当前位置: 首页 > news >正文

思源接入本地 ollama 部署的 qwen3-embedding

前言

思源3.7后,官网已经接入Agent和语义搜索功能,语义搜索需要agent embedding,实现方式有两种:

  1. 调用商用的agent api,比如qwen-embedding3等模型
  2. 自己搭建。
    我这里选择的方式是第二种,通过ollama部署qwen3-embedding
    环境:Win10,ollama0.31.2,python,fastAPI。

安装ollam

官网链接:ollama,下载完后在cmd输入ollama server启动服务。

再另外打开一个cmd,输入下面的命令下载所需要的版本。
看自己的显卡显存来

# 下载最新版8Bollama pull qwen3-embedding# 系在4B,也可以是0.6Bollama pull qwen3-embedding:4b

下载qwen3-embedding

下载完成后,确保ollama已经启动。

python脚本

由于我的ollama版本是0.31.2,已经不支持open api格式,需要使用python脚本进行一层转换。创建ollama_openai_proxy.py脚本

fromfastapiimportFastAPI,HTTPExceptionfrompydanticimportBaseModelimporthttpximportasyncio app=FastAPI()classEmbeddingRequest(BaseModel):input:list[str]|strmodel:strdimensions:int=0@app.post("/v1/embeddings")asyncdefembeddings(req:EmbeddingRequest):"""Convert OpenAI embedding API to Ollama API"""# 标准化输入ifisinstance(req.input,str):texts=[req.input]else:texts=req.input# 调用 Ollama APIasyncwithhttpx.AsyncClient()asclient:try:response=awaitclient.post("http://localhost:11434/api/embed",json={"model":req.model,"input":texts},timeout=30.0)response.raise_for_status()ollama_resp=response.json()exceptExceptionase:raiseHTTPException(status_code=500,detail=str(e))# 转换为 OpenAI 格式embeddings=ollama_resp.get("embeddings",[])return{"object":"list","model":req.model,"data":[{"object":"embedding","index":i,"embedding":emb}fori,embinenumerate(embeddings)]}@app.get("/v1/models")asyncdeflist_models():"""Proxy models endpoint"""asyncwithhttpx.AsyncClient()asclient:response=awaitclient.get("http://localhost:11434/api/tags")response.raise_for_status()ollama_resp=response.json()models=[]formodelinollama_resp.get("models",[]):models.append({"id":model["name"],"object":"model","created":0,"owned_by":"ollama"})return{"object":"list","data":models}if__name__=="__main__":importuvicorn uvicorn.run(app,host="127.0.0.1",port=8000)

在脚本的当前路径打开cmd,安装fastAPI:pip install fastapi uvicon httpx
执行该脚本:python ollama_openai_proxy.py。

思源配置

API基础地址:http://127.0.0.1:8000/v1
模型名称,看自己部署的模型:qwen3-embedding
维度:8B最大维度是4096,4B是2560,0.6b是1024。我这里是2560。
api key:ollama能随便输入,但不能为空,因为siyuan需要。

维度为0也可能导致下方的嵌入索引进度无反应,最好手动输入。

向量化所耗费的时间很长,尤其是笔记和维度越大,其时间长。

http://www.jsqmd.com/news/1177852/

相关文章:

  • Fable 5+GPT 5.6+Codex组合:AI编程的Token优化与任务分解实战
  • 知识表示 3 大范式对比:框架 vs 产生式 vs 语义网络,结构化程度与推理效率分析
  • Git 提交历史 Author 信息修正:从单次修改到批量替换的 4 个脚本
  • Codex CLI与vibe coding:AI自动化热点内容制作实战
  • 2026 降AI率网站实测盘点:公认好用的,毕业党生存手册
  • Linux进程生命周期全解析:从创建到终止的完整管理与诊断
  • 如何轻松下载网络视频:免费Chrome插件VideoDownloadHelper完整指南
  • ECDICT技术架构解析:构建下一代英语学习应用的数据引擎
  • 2026年最新教程:照片像素大小怎么调整 亲测免费方法 - 图片处理研究员
  • 智慧园区数字孪生视频孪生招标技术参数汇总|北京益豪时代一屏管安防 / 能耗 / 生产
  • 基于深度学习的花卉识别系统31(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • Codex AI编程助手2026版:从安装配置到实战应用完整指南
  • PotPlayer字幕翻译完整指南:三步实现免费多语言实时翻译
  • 三步解锁暗影精灵隐藏性能:OmenSuperHub让你的笔记本真正“活“起来
  • Knowledge-based Systems 投稿 2023:从提交到接收的 3 个月全流程与 4 轮审稿关键节点
  • C++17 filesystem权限操作全解析:跨平台文件安全控制实战指南
  • 紧致抗皱精华液哪家好用:蜜妙诗弹润紧肤 - MXyuyu
  • 2026年图片格式转换小程序怎么选?亲测好用的免费方法分享 - 图片处理研究员
  • 3分钟解锁微信多设备登录:免Root实现手机平板同时在线
  • 如何用大气层系统解锁Switch的全部潜能?5个核心功能深度解析
  • 深蓝词库转换:终极跨平台输入法词库同步解决方案
  • 解锁B站缓存视频:3分钟将m4s文件转为通用MP4格式的免费解决方案
  • Windows系统清理工具实战指南:安全释放C盘空间与优化技巧
  • AI工程化语言选型:Python、Rust、Java、Go在真实场景中的不可替代性
  • 干纹细纹肌面膜哪家效果好:蜜妙诗专业臻品 - MXyuyu
  • 计算机软硬件发展史
  • STM32F446RE与ADS127L11高精度信号采集方案
  • 2026年7月可靠的环保无胶床垫品牌推荐,真皮沙发/客厅茶几/全屋定制家具/全屋全包装修,环保无胶床垫工厂推荐 - 品牌推荐师
  • 海康MVS V3.3.1 客户端安装与多相机配置:3步完成5台设备联调
  • 运行时垃圾回收机制、列式拓扑重组与确定性因果断言:基于 Python 内存引用计数、Pandas 块管理器与 Pytest 验证沙箱的全栈数据流转治理