(LangChain实战2):LangChain消息(message)的使用

1.消息的类型

*SystemMessage:设定Al行为规则或背景信息。比如设定AI的初始状态、行为模式或对话的总体目标。比如"作为一个代码专家",或者"返回json格式"。通常作为输入消息序列中的第一个传递。

*HumanMessage:表示来自用户输入。比如"实现一个快速排序方法"

*AIMessage:存储AI回复的内容。这可以是文本,也可以是调用工具的请求

ChatMessage:可以自定义角色的通用消息类型

FunctionMessage/ToolMessage:函数调用/工具消息,用于函数调用结果的消息类型

2.代码示例

python 复制代码
import os

from langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

# 加载env环境变量
load_dotenv()

# 1.获取对话模型
chat_model = ChatOpenAI(
    # 1.设置模型名称
    model="deepseek-chat",
    # 2.模型接口地址
    base_url= os.getenv('OPENAI_BASE_URL'),
    # 3.模型调用key
    api_key=os.getenv('OPENAI_API_KEY'),
)
# 2.设置Message信息

# SystemMessage 设定Al行为规则或背景信息,比如"作为一个代码专家",或者"返回json格式"。
system_message = SystemMessage(content="你是一个程序员专家")

# HumanMessage:表示来自用户输入。比如"实现一个快速排序方法"
human_message = HumanMessage(content="帮我写一份Python教学计划")

# 添加到message数组
messages = [system_message, human_message]

# 3.调用模型
res = chat_model.invoke(messages)

# 4.打印结果及类型(返回类型为:AIMessage这可以是文本,也可以是调用工具的请求)
print(res.content)
print(type(res))
相关推荐
ydd10010011 小时前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言
65岁退休Coder11 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
半亩码田12 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
Wzx19801213 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
牧羊人.33313 小时前
Python 办公自动化从入门到入土|09 数据容器之字典
开发语言·python
小僧景贤13 小时前
嵌入式C语言 第二篇:基础语法|嵌入式C与标准C的核心差异
c语言·开发语言·嵌入式c语言
阿pin13 小时前
Android随笔-AIDL
android·开发语言·aidl
LiLiYuan.14 小时前
【字符串常量池】
java·开发语言·面试
瑞码空间14 小时前
Python爬虫进阶实战笔记
开发语言·python·计算机·python爬虫
16月6日-晴14 小时前
Java面向对象进阶—static
java·开发语言