在Obsidian搭建通义千问AI助手
4 min read

在Obsidian搭建通义千问AI助手

面对OpenAI、Claude、Gemini等模型在国内使用的局限,作者亲历达摩院内部分享,揭示通义千问模型已比肩甚至超越国际竞品。于是一个基于Qwen集灵感助手、笔记总结、翻译能手等于一身的Obsidian AI伴侣Cogito应运而生。这不仅是构建个人智能助手的绝佳契机,也是深入学习langchain与RAG技术的完美实践
在Obsidian搭建通义千问AI助手
Photo generated by Gemini

因为各种原因国内使用 OpenAI,Gemini 等模型多少有一些困难,上周参加达摩院内部的关于通义千问的干货分享,内部版本的通义千问模型的测试数据已经可以对标甚至超越它们。感觉开发 Qwen 作为自己 Obsidian AI 助手的时机已经成熟,也是一个学习 langchain 和 RAG 的过程。

效果展示

0:00
/3:37

搭建步骤

1. 申请 Aliyun DashScope

通义千问 API 可以通过阿里云的灵积平台申请使用,你只需要注册号阿里云账号即可申请 DashScope 模型服务,在 API-KEY 管理 Tab 即可以创建 API key。

2. Obsidian 配置

2.1 terminal 插件

在 obsidian 中安装 terminal 插件用于运行 TUI App。

2.2 cogito 应用

  1. 先准备 python3.10 环境(电脑上一般默认都会有 python,注意一下最低版本要求)
  2. 拉取我开发的通义千问 App 代码 git clone https://github.com/edonyzpc/cogito.git (例如将 app 放在 obsidian vault 根目录下${vault_path}/cogito

2.3 启动 obsidian AI 助手

手动方式:

  • obsidian 命令面板启动 integrate terminal
  • 执行启动命令 source ~/code/cogito/.cogitorc

自动方式:

  • 通过 hotkey 为 terminal command 添加快捷键
  • 一键启动 cogito app

2.4 AI 助手

开始让通义千问AI助手帮助你在 obsidian 记录吧:

  • 提供灵感
  • 总结笔记
  • 翻译文档
  • 搜索增强
  • ......

代码原理

我自己开发 Obsidian AI 助手命名为 cogito,主要原理是使用 Textual 绘制 TUI 用于交互,使用 LangChain 开发大语言模型应用。

TUI

cogito 使用 Textual 绘制 UI 组件,Textual 框架主要是基于 Rich 开发的, Rich 是一个 Python 库用于终端中的富文本和漂亮的格式,丰富的API可以轻松地将颜色和样式添加到终端输出中。Rich还可以呈现漂亮的表格、进度条、标记、语法突出显示的源代码、回溯等。这样的 TUI 框架可以让 App 顺利的运行在 Obsidian 中。

LangChain

LangChain 是一个开源框架,全称为“Language Model Chains”,它专为促进基于语言模型的应用程序开发而设计。这个框架的核心目标是简化开发者构建复杂 NLP 应用程序的过程,特别是那些利用大型预训练语言模型(如OpenAI的GPT系列、Google的PaLM、阿里云的通义千问等)的项目。它提供了一系列工具和模块,帮助开发者更容易地集成不同的语言模型服务,管理对话历史、状态跟踪、数据源对接、以及安全性和可扩展性等方面的挑战。它通过抽象化底层细节,使开发者能够快速构建高级功能,比如多轮对话系统、文档查询、知识管理应用、代码生成、文本摘要等,而无需从零开始编写所有基础逻辑。

后续计划

提升 cogito 与 Obsidian 的集成度:

  • 建立 obsidian 笔记 prompt 库提升效率
  • function call 调用外部工具增加 cogito 精确度
  • RAG 为 LLM 提供了对外部知识的访问增加 obsidian 笔记的丰富度

References

  1. Introduction | 🦜️🔗 LangChain
  2. Textualize - Home
  3. What is RAG? What are tool calls? And why is this important? | Mergeflow

Public discussion

足迹