LangChain解决问题的思路

LangChain解决问题的思路

可以把解决问题当做一个过程,我们可以从不同的角度去观察解决问题的方式,主要分成按数据源,按问题复杂度,按问题的解决方式划分,只是概念上的不同,其实最终解决问题的方式是灵活的,统一的。

按数据源:

非结构化数据–方式1(向量化)

Step1:源文档向量化

Step2: 问答时检索相似向量作为context

其它方式: KNN聚类,Time Weighted VectorStore,TFIDF

非结构化数据:各种文档,电子书,word,pdf, 代码等

结构化数据–方式1(数据库SQL,知识图谱CQL)

自然语言问题–>SQL–>(SQL语法检查)–>查询结果–>自然语言答案

按问题复杂度

普通问题

参考上述按数据源的方式

复杂问题

Chains的方式,问题解决步骤较多时,拆分多个子步骤

Chains的种类:SequentialChain,RouterChain,FLARE等

FLARE: 开始回答问题,如果您开始生成模型不确定的token,请查找相关文档,使用那些文档继续生成,重复直到完成,需要生成答案的 LLM 需要返回 logprobs,这样我们才能识别不确定的token。

按问题的解决方式, 不同的Agent

Agent: 根据用户输入,去调用其它的工具,把Chain,Prompt,model之类的都放在Agent里,Agent负责调用这些,用户只需和Agent对话。可以认为现实世界中的一个人。
Action Agents:最终的任务执行的人,例如工程师,操作者。
Plan-and-Execute Agents:只做计划的人,例如架构师,领导者。

Action Agents

执行流程和状态:

Agent决定使用哪个工具(如果有的话),以及该工具的输入应该是什么;然后使用该工具输入调用该工具,并记录观察结果(这只是使用该工具输入调用该工具的输出);工具、工具输入和观察的历史被传回Agent,并决定下一步采取什么步骤;重复此操作,直到代理决定不再需要使用工具,然后直接响应用户。

Plan-and-Execute Agents

收到一些用户输入;计划者列出了要采取的步骤;执行者遍历步骤列表,执行它们

有意思的思路1

Agent Simulations: 构建一个虚拟环境,多个Agent之间进行交互,类强化学习中的多Agent,互相学习。

有意思的思路2:

以协作方式运行 BLOOM-176B 等大型语言模型——您加载模型的一小部分,然后与服务其他部分的人员合作进行推理或微调。

Autonomous Agents,自治思想

Agent的自治思想是指Agent作为一个独立的个体,能够自主地执行任务并做出决策,而不需要外部干预或控制。这种思想源于人工智能领域中的Agent理论,强调Agent应该具备自主性、灵活性、适应性和自适应性等特点,能够在不断变化的环境中自主地学习、适应和优化自己的行为,以实现预设的目标。
在实际应用中,Agent的自治思想通常通过为其设计合适的目标和约束来实现。例如,为Agent设定明确的目标,使其能够自主地根据环境变化调整自己的行为,同时在行为上设定一些约束,以确保其在执行任务时不会对环境和其他Agent造成不良影响。同时,Agent的自治思想也需要考虑到其与其他Agent之间的协作和竞争关系,以实现整个系统的高效运行。
Agent的自治思想是为了让Agent能够更加独立、自主地执行任务,更好地适应不断变化的环境,并实现预设的目标。


LangChain解决问题的思路
https://johnson7788.github.io/2023/06/15/LangChain%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98%E7%9A%84%E6%80%9D%E8%B7%AF/
作者
Johnson
发布于
2023年6月15日
许可协议