Notion-to-Chatbot [1] 是上周才开源的项目。项目允许你使用 OpenAI 的 GPT 模型来对话自己的 Notion Database,可以提问、检索和总结等。整个项目也就一个 Jupyter 脚本文件,但却很好的演示了如何基于 OpenAI API 去开发一个最精简的应用。
项目全部代码如下,核心代码也就十几行:
我们从引入的两个核心模块看起:
- langchain:LangChain 是一个开源的 Python 库,可以将大模型与外部数据源进行连接和交互。本项目也是大量使用 LangChain 的 API ,直接完成了很多高维操作。
- chromadb:Chroma 是一个开源的嵌入式向量数据库。
代码的逻辑很简单:
- NotionDBLoader 提供了对 Notion Database 结构的封装,并在之后加载数据文档。
- 文档被切分成一系列的小块(每块最多 1000 字符),这样做可以使得大文本更易于处理。
- 同时创建一个适用于 OpenAI 模型的 Embedding 对象,这个对象描述了如何将文档转化为数值向量的方法。
- 核心的步骤就是将数据向量化并存入 Chroma DB 中并提供检索。
我的实测中,使用 GPT-3.5 API 做的提问、检索和摘要等结果都差强人意,有很多”幻觉“存在,因此想要实际应用还需要有很多工程化的工作要做。但是在十几行代码之间就让你拥有了和自己数据库对话的能力,编码之快速、功能之强大,说不震撼是骗人的。
如果你也想尝试下,需要注意以下几项:
- 你需要拥有 OpenAI 的 API Key 。
- 数据存放在 Notion Database(不是 page,page 可以参考这个更强大的项目,可以参考附录引用部分)。
- 创建一个 Notion 集成并且在 Database 页面给这个集成赋予访问权限。
最后,我有些简单的思考:
- 国外大模型目前处于做工具阶段,出新率几乎仍然是按天来计算的。这块对很多从业人员效率的提升已经显而易见了。工具之后,会有哪些杀手级的应用呢?
- 因为 SaaS 服务的盛行,大量开放 API 也为本次大模型的集成赋能提供了助力。对于很多数据孤岛的应用可能跟不上时代发展了(参考 Evernote 近况)。
- 基于大模型的编程已经是一种新的编程思维和范式了,而且生态无比繁华。我们有机会都应该去拥抱这样的变化,从中发现更多的可能性。
[1] Notion-to-Chatbot: https://github.com/Anil-matcha/Notion-to-Chatbot/tree/main
[2] ChatGPT to Notion: https://chrome.google.com/webstore/detail/chatgpt-to-notion/oojndninaelbpllebamcojkdecjjhcle
[3] Create a ChatGpt Chatbot for Your Website: [https://github.com/mayooear/langchain-supabase-website-chatbot](https://github.com/mayooear/langchain-supabase-website-chatbot
[4] writely 一个替代 Notion AI 的浏览器插件: https://github.com/anc95/writely
