(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))
相关推荐
xcLeigh2 小时前
IoTDB Java 原生 API 实战:SessionPool 从入门到精通
java·开发语言·数据库·api·iotdb·sessionpool
杜子不疼.2 小时前
Java 智能体学习避坑指南:3 个常见误区,新手千万别踩,高效少走弯路
java·开发语言·人工智能·学习
冬天vs不冷2 小时前
为什么 Java 不让 Lambda 和匿名内部类修改外部变量?final 与等效 final 的真正意义
android·java·开发语言
星河耀银海2 小时前
JAVA 多线程编程:从基础原理到实战应用
java·开发语言·php
星河耀银海2 小时前
JAVA IO流:从基础原理到实战应用
java·服务器·开发语言
摸鱼仙人~2 小时前
Math.js 使用教程
开发语言·javascript·ecmascript
HAPPY酷3 小时前
Python高阶开发:从底层原理到架构设计的进阶之路
开发语言·python
wuhen_n3 小时前
LangChain Agents 实战:构建智能文件管理助手
前端·javascript·人工智能·langchain·ai编程
疯狂打码的少年3 小时前
【Day 6 Java转Python】字符串处理的“降维打击”
java·开发语言·python
hogenlaw4 小时前
Stream流
android·java·开发语言