logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

[LangChain智能体本质论]结构化输出的两种实现方式

数据只有具有希望的结构才可能被有效地处理,我们在调用`create_agent`函数创建Agent的时候,可以利用`response_format`控制输出的格式。我们可以定义一个Pydantic模型类表表示期望输出的结构,如果将此类型表示成`ResponseT`,我们可以直接将此类型作为`response_format`参数的值,也可以将此参数赋值为`ResponseFormat[Respons

文章图片
#python
[LangChain智能体本质论]Agent的状态即通道(Channel)

我们不断在强调Agent本质上是一个Pregel对象,其状态完全利用通道来维护,所以作为状态的`AgentState`对象的数据成员会转换成对应的通道。当我们看到`AgentState`的三个字段定义的时候,是不是感到很熟悉:前面演示实例输出的通道就有三个与它们同名。

文章图片
#python
[LangChain语言模型组件的设计与实现]少样本提示词模板

少样本学习(Few-Shot Learning)是一种机器学习范式,旨在让模型在仅有极少量标注样本(通常为 1-5 个)的情况下,能够快速理解新任务并做出准确预测。少样本提示词就是少样本学习在大模型领域的具体落地手段。如果说“少样本学习”是让模型具备举一反三的能力,那么“少样本提示词”就是你实现这种能力的“说明书”。LangChain提供了一组针对性的少样本提示词模板。

文章图片
#python
[LangChain语言模型组件的设计与实现]基于Chat模型的提示词模板

我们知道提示词 是调用语言模型最为核心的输入,提示词的质量直接影响答案的质量,所以我们不论抬高提示词的重要性都不过分。提示词在LangChain中通过PromptValue类型表示,我们一般利用预定义的提示词模板来生成它。提示词模板也以一个Runnable对象的形式存在,由于提示词模板生成的PromptValue正好使模型的输入,所有两者正好组合成一个LCEL链。这一篇将会介绍Chat模型的提示词

文章图片
#python
[LangChain语言模型组件的设计与实现]基于Completion模型的提示词模板

我们知道提示词是调用语言模型最为核心的输入,提示词的质量直接影响答案的质量,所以我们不论抬高提示词的重要性都不过分。提示词在LangChain中通过`PromptValue`类型表示,我们一般利用预定义的提示词模板来生成它。提示词模板也以一个`Runnable`对象的形式存在,由于提示词模板生成的`PromptValue`正好使模型的输入,所有两者正好组合成一个LCEL链。

文章图片
#python
[LangChain语言模型组件的设计与实现]OpenAI Chat模型的设计与实现

LangChain中的语言模型是一个`Runnable`对象。所有的语言模型类型(包括基于文本补齐的Completion模型和基于多角色参与的Chat模型)都继承自抽象类`BaseLanguageModel`,`BaseChatModel`是所有Chat模型的基类。`ChatOpenAI`的基类`BaseChatOpenAI`就继承自`BaseChatModel`。上篇文`章着重介绍BaseLan

文章图片
#python
[LangChain语言模型组件的设计与实现]Completion模型和Chat模型

LangChain中的语言模型是一个`Runnable`对象,目前我们已经了解了作为输入的`LanguageModelInput`和作为输出`LanguageModelOutputVar`,现在我们关注它作为Runnable对象是如何执行的。所有的语言模型类型都继承自抽象类`BaseLanguageModel`,派生于它的`BaseChatModel`是所有Chat模型的基类。基于OpenAI的`

文章图片
#python
[LangChain语言模型组件的设计与实现]PromptValue——作为模型核心输入的提示词

在 LangChain 框架中,`PromptValue`是连接提示词模板与语言模型的中间数据层。提示词可以是单纯的字符串文本,还可以是一张图片,它们对应的类型分别为`StringPromptValue`和`ImagePromptValue`。Chat模型的提示词类型继承自`ChatPromptValue`,`ChatPromptValueConcrete`是它的一个子类。ImagePromptV

文章图片
#python
[LangChain语言模型组件的设计与实现]多形态的消息内容——多模态AI解决方案的基础

作为消息的基类,`BaseMessage`利用其`content`字段存储原始的内容,它可以是一个字符串或者字典列表。原始的内容会转换成一个`ContentBlock`列表通过`content_blocks`的属性返回。作为消息的主体内容,它们可以是一段单纯的字符串文本,也可以一段多媒体内容(比如图片、音频和视频)或者一个二进制文件,不同的内容形态对应着相应的ContentBlock类型

文章图片
#python
[LangChain语言模型组件的设计与实现]消息——Agent与模型交互的媒介

Agent开发语境下的模型大体分两种,即传统的文本补齐`Completions模型`和基于多方交谈的`Chat模型`,在LangChain中,它们都继承自如下这个`BaseLanguageModel`抽象类。它继承自`RunnableSerializable`,所以能成为LCEL链上的一环。

文章图片
#python
    共 24 条
  • 1
  • 2
  • 3
  • 请选择