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的直接调用,看起来封装的比较深。通过分析源代码推测调用的层次如下

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

相关推荐
rocksun1 分钟前
MCP利用流式HTTP实现实时AI工具交互
人工智能·mcp
xiaok25 分钟前
docker network create langbot-network这条命令在dify输入还是在langbot中输入
人工智能
It_张27 分钟前
LLM(大语言模型)的工作原理 图文讲解
人工智能·语言模型·自然语言处理
Darach29 分钟前
坐姿检测Python实现
人工智能·python
xiaok29 分钟前
LangBot 和消息平台均运行在 Docker 容器中
人工智能
queeny38 分钟前
Datawhale AI夏令营 科大讯飞AI大赛(大模型技术) Task3 心得
人工智能
ToTensor38 分钟前
Paraformer实时语音识别中的碎碎念
人工智能·语音识别·xcode
陈佬昔没带相机44 分钟前
Mac Mini 玩大模型避坑指南
人工智能·mac
重启的码农1 小时前
llama.cpp 分布式推理介绍(4) RPC 服务器 (rpc_server)
c++·人工智能·神经网络
柠檬味拥抱1 小时前
不确定环境下AI Agent的贝叶斯信念更新策略研究
人工智能