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来做这件事情呢?

相关推荐
用户5191495848456 分钟前
CVE-2024-10793 WordPress插件权限提升漏洞利用演示
人工智能·aigc
chaors17 分钟前
从零学RAG0x01之向量化
人工智能·aigc·ai编程
chaors20 分钟前
从零学RAG0x02向量数据库
人工智能·aigc·ai编程
陈少波AI应用笔记22 分钟前
硅谷龙虾大战技术拆解:当AI长出爪子
人工智能
冬奇Lab1 小时前
一天一个开源项目(第39篇):PandaWiki - AI 驱动的开源知识库搭建系统
人工智能·开源·资讯
大模型真好玩1 小时前
LangChain DeepAgents 速通指南(三)—— 让Agent告别混乱:Tool Selector与Todo List中间件解析
人工智能·langchain·trae
孟祥_成都2 小时前
【全网最通俗!新手到AI全栈开发必读】 AI 是如何进化到大模型的
前端·人工智能·全栈
牛奶2 小时前
AI辅助开发的基础概念
前端·人工智能·ai编程
东坡肘子2 小时前
OpenClaw 不错,但我好像没有那么需要 -- 肘子的 Swift 周报 #125
人工智能·swiftui·swift
风象南10 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端