当前位置: 首页 > 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来做这件事情呢?

相关文章:

  • 基于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内存屏障)
  • 胸外科专家查出肺多发结节,说了一个可怕的事实……
  • TCL科技一季度净利增超三倍,去年半导体显示业务营收创新高
  • 夜读丨跷脚牛肉乐翘脚
  • 临港迎来鸿蒙智行“尚界”整车及电池配套项目,首款车型今秋上市
  • 王毅:坚持金砖团结合作,改革完善全球治理
  • 历史新高!上海机场一季度营收增至31.72亿元,净利润增34%