利用n8n集成Langchain不写一行代码完成对线上论文的总结

2.3k 词

利用n8n集成Langchain不写一行代码完成对线上论文的总结

n8n是开源的工作流软件,国内用得比较少,之前知乎也有文章介绍过这个软件。如果你会大量使用国外的线上应用胡总和,比如出海,这个软件就它集成了国外很多线上应用,根据官网介绍,超过387个集成应用,比如Slack、Discord、Twitter、Facebook、Instagram、GMail、Outlook、Salesforce、Hubspot、Amazon S3,Dropbox等,只要你能想到国外的知名线上应用,基本上它都支持不用任何编写任何代码的集成,简单来说它是一个开源的低代码工作流集成平台,从它网站介绍,可以提升工作流开发效率10倍。感兴趣的同学可以去官方网站学习和下载。

当然我们今天介绍的是它最近发布了一个新的集成API——LangChain,LangChain是目前AI Agents领域炙手可热的开源软件,由于内置大量可以快速使用的组件,在中国也广受欢迎,8但如果要使用LangChain,你还是得懂编程。有了n8n的langchain可视化组件,我们就不需要编码了。

接下来我们来演示一下不写任何一行代码,如何完成线上论文的论总结,具体场景描述:

假设你经常阅读http://ArXiv.org的论文,你希望利用ChatGPT来帮你总结论文的内容,并发送到你的邮箱

以终为始,结果如下:

基于上述场景和结果,我们来看看过程的实现思路:

  • 使用n8n创建工作流,“Add Workflow”

  • 添加第一组件,我们采用手动启动工作流,

在右侧选择Manually

  • 点击工作流画布的加号,通过搜索添加HTTP Request组件,把你要访问的论文pdf文档的网址贴过来,论文的网址为:2305.18290.pdf (arxiv.org),这是一篇关于“Direct Preference Optimization: Your Language Model is Secretly a Reward Model ”的论文。

设置方法为Get,如下所示:

点击右侧的“HTTP Request”

配置URL地址

你可以点击“Execute Code”查看输出,如下所示:

右侧显示生成了一个pdf文档,你可以浏览或者下载

返回工作流画布,可以看到我们添加的HTTP Request组件,如下所示:

  • 继续添加组件,通过URL组件获得pdf文档内容,接下来就是利用LangChain来切分文档,并对各部分文档进行总结,最终形成总结文档。通过搜索langchain,添加“Summarization Chain”,如下图所示

点击右侧的”Summarization Chain“

在Type中选择Refine,如下图所示:

返回画布,我们可以可到"Summarization Chain“组件,在下方Model有个加号,点击加号,选择OpenAI Model,如下所示:

右侧选择OpenAI Model

接下来配置OpenAI,Model选择”gpt-3.5-turbo-instruct“,如下图所示:

点击Credential to connect的下拉框,选择"Create new credential”,在如下图输入OpenAI的API Key:

返回画布,OpenAI Model创建成功,如下图所示:

接下来点击Document下的加号对文档进行切分,选择右侧的"Binary Input Loader“,如下图所示:

设置loader type为”PDF Loader",如下图所示:

返回工作流画布,我们可以看到已经添加了"Binary Input Loader“组件,如下图所示:

在text splitter下方点击加号,选择如下图右侧的”Token Splitter“,如下图所示:

选择之后设置Chunk Size为1000,如下图所示:

返回画布,我们可以看到Token Splitter组件已经产生,如下图所示:

好了,核心的工作流我们已经构建完了,我们可以跑一下工作流看一下结果,点击下方的"Execute Workflow“,

执行时间会有点时间(个人觉得n8n的langchain summarization chain组件是有必要优化,有点慢),你可以双击”openai model“组件查看进度,在output下方run显示跑完了几个节点,如下图所示:

跑完之后可以看到相应工作流完成提示,如下图:

我们可以双击”Summarization Chain“组件查看内容,返回了总结的内容,具体如下:

  • 最后一步,发送邮件到你的邮箱。点击右侧的加号,把总结的内容发送到你的邮箱,我们使用Gmail组件来发邮箱,要在google cloud网站设置credential(由于国内较少使用google的gmail,所以不做详细展开,如果碰到问题,可以随时找我沟通),通过搜索查找Gmail组件,如下图所示:

为了使用Google GMail服务,在Google Cloud配置OAuth2.0(配置过程略过),如下图所示:

并且要允许调用Gmail的API,点击下图的”Gmail API“之后Enable即可:

回到邮箱设置,选择"send a message”,如下图所示:

配置gmail,配置gmail credential、收件邮箱、主题,如下图所示:

配置发送邮件内容,选择表达式,并选择"Summarization Chain”的“response”的”output text“

返回工作流,至此,工作流配置完成,如下图所示:

运行工作流,邮箱就会收到如下邮件,具体如下:

终于大功告成,没有编写过一行代码,利用n8n的langchain组件实现对论文总结,并发送邮件。