(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))
相关推荐
一只小bit18 分钟前
LangGraph 记忆、人机交互、时间旅行和核心能力
机器学习·langchain·人机交互·langgraph
段一凡-华北理工大学40 分钟前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
Ljwuhe1 小时前
C++——多态
开发语言·c++
心平气和量大福大2 小时前
C#-WPF-Window主窗体
开发语言·c#·wpf
从零开始的代码生活_3 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸3 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
早点睡啊Y3 小时前
深入学 LangChain 官方文档(十六)Built-in 与 Custom Middleware
langchain
GIS阵地4 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis
yaoxin5211234 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
老刘说AI4 小时前
AI服务核心: 高并发原理与性能监控调优
人工智能·神经网络·langchain·llama·持续部署