2. langgraph中的react agent使用 (在react agent添加历史消息)

1. 导入必要的库

首先,我们需要导入所需的库。这里我们使用 langchain_openai 来与 智谱AI 模型进行交互,并使用 langchain_core.tools 来定义自定义工具。

python 复制代码
from langchain_openai import ChatOpenAI
from typing import Literal
from langchain_core.tools import tool

2. 初始化 智谱AI 模型

接下来,我们初始化 智谱AI 模型。这里需要指定模型的参数,包括温度、模型名称、API 密钥和 API 基地址。

python 复制代码
model = ChatOpenAI(
    temperature=0,
    model="glm-4-plus",
    openai_api_key="your_api_key",
    openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)

3. 定义自定义工具

我们定义一个获取天气信息的工具 get_weather,该工具接受一个城市名称作为参数,并返回相应的天气信息。

python 复制代码
@tool
def get_weather(city: Literal["nyc", "sf"]):
    """Use this to get weather information."""
    if city == "nyc":
        return "It might be cloudy in nyc"
    elif city == "sf":
        return "It's always sunny in sf"
    else:
        raise AssertionError("Unknown city")

4. 创建工具列表

将定义好的工具添加到工具列表中。

python 复制代码
tools = [get_weather]

5. 初始化记忆存储

使用 MemorySaver 来存储对话过程中的状态。

python 复制代码
from langgraph.checkpoint.memory import MemorySaver

memory = MemorySaver()

6. 创建反应式代理

使用 create_react_agent 函数创建一个反应式代理,该代理将模型和工具结合在一起。

python 复制代码
from langgraph.prebuilt import create_react_agent

graph = create_react_agent(model, tools=tools, checkpointer=memory)

7. 定义打印流函数

为了更好地展示对话过程,我们定义一个 print_stream 函数,用于打印流式输出的消息。

python 复制代码
def print_stream(stream):
    for s in stream:
        message = s["messages"][-1]
        if isinstance(message, tuple):
            print(message)
        else:
            message.pretty_print()

8. 发送查询并打印结果

配置输入参数,并发送查询请求,最后打印结果。

python 复制代码
config = {"configurable": {"thread_id": "1"}}
inputs = {"messages": [("user", "What's the weather in NYC?")]}

print_stream(graph.stream(inputs, config=config, stream_mode="values"))

输出结果如下:

复制代码
==============================[1m Human Message [0m=================================

What's the weather in NYC?
================================[1m Ai Message [0m==================================
Tool Calls:
  get_weather (call_9208192282885233822)
 Call ID: call_9208192282885233822
  Args:
    city: nyc
================================[1m Tool Message [0m=================================
Name: get_weather

It might be cloudy in nyc
================================[1m Ai Message [0m==================================

It might be cloudy in NYC.

9. 发送另一个查询并打印结果

再次配置输入参数,发送新的查询请求,并打印结果。

python 复制代码
inputs = {"messages": [("user", "What's it known for?")]}
print_stream(graph.stream(inputs, config=config, stream_mode="values"))

输出结果如下:

复制代码
==============================[1m Human Message [0m=================================

What's it known for?
================================[1m Ai Message [0m==================================

New York City is known for a multitude of things, making it one of the most iconic and influential cities in the world. Here are some highlights:

1. **Statue of Liberty**: A symbol of freedom and democracy, this iconic statue is located on Liberty Island.

2. **Central Park**: An expansive urban park in the heart of Manhattan, known for its lush landscapes, recreational activities, and cultural events.

3. **Broadway**: The pinnacle of American theater, Broadway is famous for its high-quality performances and historic theaters.

4. **Times Square**: A bustling commercial intersection known for its bright lights, massive digital billboards, and the annual New Year's Eve ball drop.

5. **Empire State Building**: An Art Deco skyscraper that once held the title of the world's tallest building and remains a symbol of New York's skyline.

6. **Museums and Art**: Home to world-renowned institutions like the Metropolitan Museum of Art, the Museum of Modern Art (MoMA), and the Guggenheim.

7. **Diverse Cuisine**: Reflecting its status as a melting pot, NYC offers an incredible variety of global cuisines.

8. **Financial Hub**: Wall Street and the New York Stock Exchange are central to the global economy.

9. **Fashion Capital**: Known for its influence on global fashion trends, hosting events like New York Fashion Week.

10. **Cultural Diversity**: A city of immigrants, NYC boasts a rich tapestry of cultures, languages, and traditions.

These are just a few aspects that contribute to NYC's global reputation and appeal.

参考链接:https://langchain-ai.github.io/langgraph/how-tos/create-react-agent-memory/

相关推荐
cxr8281 分钟前
Claude Code PM 深度实战指南:AI驱动的GitHub项目管理与并行协作
人工智能·驱动开发·github
freephp14 分钟前
企业级LLM已经到了next level:LangChain + DeepSeek = 王炸
langchain·deepseek
THMAIL36 分钟前
深度学习从入门到精通 - LSTM与GRU深度剖析:破解长序列记忆遗忘困境
人工智能·python·深度学习·算法·机器学习·逻辑回归·lstm
Gyoku Mint39 分钟前
NLP×第六卷:她给记忆加了筛子——LSTM与GRU的贴靠机制
人工智能·深度学习·神经网络·语言模型·自然语言处理·gru·lstm
YF云飞1 小时前
数据仓库进化:Agent驱动数智化新范式
数据仓库·人工智能·ai
ningmengjing_2 小时前
理解损失函数:机器学习的指南针与裁判
人工智能·深度学习·机器学习
程序猿炎义2 小时前
【NVIDIA AIQ】自定义函数实践
人工智能·python·学习
小陈phd2 小时前
高级RAG策略学习(四)——上下文窗口增强检索RAG
人工智能·学习·langchain
居然JuRan2 小时前
阿里云多模态大模型岗三面面经
人工智能
THMAIL2 小时前
深度学习从入门到精通 - BERT与预训练模型:NLP领域的核弹级技术详解
人工智能·python·深度学习·自然语言处理·性能优化·bert