3. langgraph中的react agent使用 (在react agent添加系统提示)

news/2024/11/18 13:53:48/

环境准备

确保你已经安装了以下库:

你可以使用以下命令进行安装:

pip install langchain langchain_openai langgraph

代码实现

1. 初始化模型

首先,我们需要初始化智谱AI的聊天模型。

from langchain_openai import ChatOpenAImodel = ChatOpenAI(temperature=0,model="glm-4-plus",openai_api_key="your_api_key",openai_api_base="https://open.bigmodel.cn/api/paas/v4/"
)

2. 定义自定义工具

我们将使用一个自定义工具来返回纽约和旧金山的天气信息。

from typing import Literal
from langchain_core.tools import tool@tool
def get_weather(city: Literal["nyc", "sf"]):"""使用此工具获取天气信息."""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")tools = [get_weather]

3. 添加系统提示

我们可以添加一个系统提示来指定响应的语言。

prompt = "Respond in Italian"

4. 定义执行图

使用langgraph库创建一个React代理。

from langgraph.prebuilt import create_react_agentgraph = create_react_agent(model, tools=tools, state_modifier=prompt)

5. 定义输出流处理函数

定义一个函数来处理输出流。

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

6. 运行并打印结果

输入一个用户消息并运行模型,打印输出结果。

inputs = {"messages": [("user", "What's the weather in NYC?")]}print_stream(graph.stream(inputs, stream_mode="values"))

输出结果如下:

================================[1m Human Message [0m=================================
What's the weather in NYC?
================================[1m Ai Message [0m==================================
Tool Calls:get_weather (call_9208187369440656653)Call ID: call_9208187369440656653Args:city: nyc
================================[1m Tool Message [0m=================================
Name: get_weatherIt might be cloudy in nyc
================================[1m Ai Message [0m==================================Il tempo a New York potrebbe essere nuvoloso.

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


http://www.ppmy.cn/news/1547999.html

相关文章

从零到一:利用 AI 开发 iOS App 《震感》的编程之旅

在网上看到一篇关于使用AI开发的编程经历,分享给大家 作者是如何在没有 iOS 开发经验的情况下,借助 AI(如 Claude 3 模型)成功开发并发布《震感》iOS 应用。 正文开始 2022 年 11 月,ChatGPT 诞生并迅速引发全球关注。…

8. 基于 Redis 实现限流

在高并发的分布式系统中,限流是保证服务稳定性的重要手段之一。通过限流机制,可以控制系统处理请求的频率,避免因瞬时流量过大导致系统崩溃。Redis 是一种高效的缓存数据库,具备丰富的数据结构和原子操作,适合用来实现…

智能网页内容截图工具:AI助力内容提取与可视化

我们每天都会接触到大量的网页内容。然而,如何从这些内容中快速提取关键信息,并有效地进行整理和分享,一直是困扰我们的问题。本文将介绍一款我近期完成的基于AI技术的智能网页内容截图工具,它能够自动分析网页内容,截…

【Cesium】自定义材质,添加带有方向的滚动路线

【Cesium】自定义材质,添加带有方向的滚动路线 🍖 前言🎶一、实现过程✨二、代码展示🏀三、运行结果🏆四、知识点提示 🍖 前言 【Cesium】自定义材质,添加带有方向的滚动路线 🎶一、…

时序预测:多头注意力+宽度学习

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

Java算法OJ(7)随机快速排序

目录 1.前言 2.正文 1. 快速排序的基本原理 2. 随机快速排序的改进 3. 随机快速排序的步骤 3.小结 1.前言 哈喽大家好吖,今儿给大家带来算法—随机快速排序相关知识点,废话不多说让我们开始。 2.正文 在了解随机快排之前,先了解一下…

【网络安全】XSS注入

一、什么是XSS注入 XSS(Cross-Site Scripting)注入是一种网络安全漏洞,它允许攻击者向网站注入恶意脚本代码,然后在用户的浏览器上执行。 二、XSS注入有哪些危害 盗取用户的敏感信息:攻击者可以通过注入恶意脚本代码…

Docker在微服务架构中的最佳实践

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Docker在微服务架构中的最佳实践 Docker在微服务架构中的最佳实践 Docker在微服务架构中的最佳实践 引言 Docker 概述 定义与原理…