Langchain是怎么样自动化任务的?

Auth:balconychy       Date:2023/04/16       Cat:技术分享       Word:共880字       Views:297

ChatGPT等大语言模型存在问题是:

1,复杂问题的分步解决

2,外部访问的能力

3,长期记忆(更进一步学习能力)

langchain提出了解决方案,以下对其进行梳理:

1,复杂问题分步

使用chain解决问题的拆解,一个chain可以保护多个指令,甚至另外的chain。chain的套娃规则,构造一个任务树,非常类似于项目管理中的大任务套小任务。

那如何生成任务,答案是,以chain of thoughs 为原则,给ChatGPT模版提问,然后对回答的文本进行解析。具体在Agents中实现。

AgentExecutor不断地调用agent.plan创建任务actions,并执行,直到任务完成。

Langchain是怎么样自动化任务的? - 第1张图片
Langchain是怎么样自动化任务的? - 第2张图片

2,外部调用

Actions可以调用tools来执行任务,比如搜索,计算。所有actions都是text in,text out。

Langchain是怎么样自动化任务的? - 第3张图片

3,记忆问题

记忆无非是记忆短期,例如历史对话,当前要处理的任务。还有长期,例如大量的问题。 短期直接利用历史文本即可,当然要控制文本的长度,这里涉及到处理当前问题如何调取历史相关记录问题。

Langchain是怎么样自动化任务的? - 第4张图片

长期记忆,例如书本知识。现在的处理方式貌似都是利用text embedding 来做,将文本转出数字向量,然后利用问题与历史问题的数字向量的相似性来查找目标文本,并作为prompt的一部分。

langchain将相关文本的查找都规整到Retriever,不管底层实现如何,最终就是以文本找文本。

Langchain是怎么样自动化任务的? - 第5张图片

但是从chatpdf之类的实现来看,单纯的列出相关文本似乎并不能很好的回答问题。线性文本信息背后本质是结构,单纯的一段一段的文字并没有体现结构。人类虽然在思考问题时也会快速翻阅书籍的一些页面,但并不是单纯的累积文本,而是构造背后的结构。

所以可能问题不是文本累积+问题一个prompt就能解决,关键还是思维链条。利用langchain的思维链条工具去阅读pdf可能会解决问题。

例如,对于阅读论文设计以下几个tool

1,get relate text in {paper}

2,get related text in {ref paper}

3,search web for explaining {concept}

除非注明,贝壳里奇 Blog文章均为原创,本文地址 https://tedcai.cc/article/how_does_langchain_automate_tasks,转载请以链接形式注明出处。

作者: 简介:积极的问题解决者和创新者

《Langchain是怎么样自动化任务的?》留言数:0

发表留言