下面浅谈一下自己通过对Marscode的使用,从而加深了对课程中讲述的Langchain的认知,Langchain由六部分组成,分别是Models,Chains,Prompts,Memorys,Indexs,Agents。下面根据对上述六部分做一个简要总结。
一.Models:由三部分组成,输入提示,调用模型,输出解析。
**(1)**输入提示:
让我们先看一下prompt的具体原则:
- 给予模型清晰明确的指示
- 让模型慢慢地思考
根据上述两个输入提示原则,你可能会疑惑,这跟我们今天讲的Langchain有什么关系吗?事实上,我们先创建原始模板,然后调用PromptTemplate的from_template方法,它会使一个原始的模板字符串转化为一个更丰富、更方便操作的PromptTemplate对象,这个对象就是LangChain中的提示模板。LangChain 提供了多个类和函数,也为各种应用场景设计了很多内置模板,使构建和使用提示变得容易。也就是符合了吴恩达老师的第一条,要想再实现第二条的原则,在原始的prompt上加入:慢慢思考,一步一步,不着急。莫不是一个很好的选择。
(2)调用模型:prompt的输入后,自然需要选择几个模型来进行处理,下面对常用的可选择的两种模型进行分析说明。
- 大语言模型(LLM) ,也叫Text Model,这些模型将文本字符串作为输入,并返回文本字符串作为输出。Open AI的text-davinci-003、Facebook的LLaMA、ANTHROPIC的Claude,都是典型的LLM。
- 聊天模型(Chat Model),主要代表Open AI的ChatGPT系列模型。
(3)输出解析:常规模型输出的是一段话,而我们需要的是标准化数据格式,供机器和自己使用。那么我们可以使用Langchain中的相关输出解析器来进行相关操作。
二.Chains:内部Chain,外部链接多个完整内部结构的Chain
常用Chain分类:LLMChain,Sequential Chain(链接多个LLMChain),RouterChain
(1)LLMChain:常规的表示
(2)Sequential Chain:将多个LLMChain链接在一起,形成一个完整的链条
(3)RouterChain:目标链,路由链,多提示链来进行你想要的模板选择,通常是几种特定的问答情况下选择一种。
总结:上面文章我们简要讲解了Langchain中的两个重要的基础组成部分,Langchain在每一个部分中都显示出自己独特的优势,结构简单,有结构框架,提示词清晰,多链条线路可以组合,提高问答效率等。