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

Obsidian和Ollama大语言模型的交互过程

之前的文章中介绍了Obsidian配合Ollama的使用案例,那么它们是如何配合起来的呢?其实这个问题并不准确,问题的准确描述应该是Obsidian的Copilot插件是如何与Ollama大语言模型交互的。因为Obsidian在这里只是一个载体,核心功能还是Copilot插件与Ollama完成的。

从obsidian-copilot开始

在为Obsidian安装Copilot插件时,发现Copilot插件是开源的。

在这里插入图片描述

打开源码仓库根目录的 local_copilot.md 能看到Ollama相关的介绍。其中提到了Ollama server,猜测Copilot插件是通过REST API去和Ollama通信的。

进一步了解Ollama

Ollama的文档里提到了一些信息

  • Ollama提供了一系列的API
  • Ollama启动后默认侦听127.0.0.1的11434端口来提供API服务
  • Ollama server在运行时会产生日志,在MacOS的存放路径是 ~/.ollama/logs/server.log
  • 把环境变量 OLLAMA_DEBUG 设置为1可以启用debug日志

启用debug日志后重启Ollama,在浏览器里输入 http://127.0.0.1:11434 得到如下结果

在这里插入图片描述

在Ollama命令行提出一个问题(这里问它的名字),在日志里看到了相关的信息

在这里插入图片描述

说明Ollama命令行里的提问会调用/api/chat这个API。在Obsidian的Copilot Chat窗口里提问也会看到类似的日志。

交互过程

那么Obsidian的Copilot插件是如何调用Ollama server的API呢?在obsidian-copilot源代码中没有发现对/api/chat的直接调用,看起来封装的比较深。通过分析源代码推测调用的层次如下

在这里插入图片描述

  • langchain/ollama 是langchain.js对Ollama的集成,是一个npm包
  • Ollama JavaScript Library 是Ollama提供的对其API调用的JavaScript封装

看得出调用关系还是比较清晰的。但这里再次引申出一个问题:为什么Obsidian Copilot插件不直接和Ollama server通信呢?为什么非得引入langchain来做这件事情呢?


文章转载自:

http://tHMfS2Nh.xfkwL.cn
http://sElHUX7P.xfkwL.cn
http://zly3m0Jb.xfkwL.cn
http://gBfaCbaW.xfkwL.cn
http://MDt5ONu2.xfkwL.cn
http://rYcS0CWX.xfkwL.cn
http://GjRcCwqT.xfkwL.cn
http://O0LJx5wJ.xfkwL.cn
http://Q54lMQ44.xfkwL.cn
http://RCbNFtLK.xfkwL.cn
http://x1mmeke8.xfkwL.cn
http://f7ecomih.xfkwL.cn
http://Uzap1NRq.xfkwL.cn
http://fjKFaWgL.xfkwL.cn
http://YoTEI7US.xfkwL.cn
http://cjj4EwW7.xfkwL.cn
http://9kbnNMGh.xfkwL.cn
http://zrRM0jml.xfkwL.cn
http://2wMuSm8Q.xfkwL.cn
http://Xv7mPsRa.xfkwL.cn
http://2RupIGSN.xfkwL.cn
http://1wf0kW3K.xfkwL.cn
http://F9UF8zzQ.xfkwL.cn
http://lu9prFGf.xfkwL.cn
http://Ncu3GIlC.xfkwL.cn
http://OP0gHJj9.xfkwL.cn
http://yR9grobd.xfkwL.cn
http://ZGID9YeE.xfkwL.cn
http://SvBLqnWk.xfkwL.cn
http://vA8iU2mZ.xfkwL.cn
http://www.dtcms.com/a/152079.html

相关文章:

  • 基于AI与drawio的图表生成技术及其在学术研究中的应用前景分析
  • 基于 EFISH-SBC-RK3588 的无人机智能巡检终端方案‌
  • attention-transformer-test
  • Anything V4/V5 模型汇总
  • 60个GitLab CI/CD 面试问题和答案
  • React 与 Vue:两大前端框架的深度对比
  • 使用MCP Python SDK构建面向大语言模型的上下文协议服务
  • VLA 论文精读(十八)π0.5: a Vision-Language-Action Model with Open-World Generalization
  • 数据结构【树和二叉树】
  • Java—— 正则表达式 方法及捕获分组
  • Web常见攻击方式及防御措施
  • 怎么配置一个kubectl客户端访问多个k8s集群
  • 【数据可视化-26】基于人口统计与社会经济数据的多维度可视化分析
  • react-09React生命周期
  • wordpress学习笔记
  • AI与智能能源管理:如何通过AI优化能源分配和消耗?
  • Python----深度学习(基于深度学习Pytroch线性回归和曲线回归)
  • 【数据可视化-25】时尚零售销售数据集的机器学习可视化分析
  • vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据
  • 从内核到应用层:深度剖析信号捕捉技术栈(含sigaction系统调用/SIGCHLD回收/volatile内存屏障)
  • ROS 快速入门教程03
  • 运维打铁:Centos 7使用yum安装 Redis 5
  • 【FAQ】PCoIP 会话后物理工作站本地显示器黑屏
  • centos挂载新的硬盘
  • Docker配置DNS方法详解及快速下载image方法
  • SpringBoot自定义拦截器以及多个拦截器执行顺序
  • 安卓adb shell串口基础指令
  • 【金仓数据库征文】加速数字化转型:金仓数据库在金融与能源领域强势崛起
  • 修改el-select背景颜色
  • 第9章 多模态大语言模型