官方文档

一、后端

1.安装基础依赖

pip install --upgrade "langgraph-cli[inmem]"

2.下载模版项目

在终端运行

langgraph new ./example --template new-langgraph-project-python

这里是在当前文件夹下新建文件夹example,里面是下载的langgraph模版项目文件

在这里插入图片描述
显示这样就是成功。如果失败,说明网络问题。

3.安装项目依赖

cd example
pip install -e .

4.配置项目环境变量

将.env.example文件修改为.env,这样就是环境变量文件了,重要的key都放在这里,和代码文件隔离

填写LANGSMITH_API_KEY,需要去langsmith注册账号,获取key

5.部署后端服务

langgraph dev

就会看到
在这里插入图片描述

6.核心代码

是src.agent.graph.py

"""LangGraph single-node graph template.Returns a predefined response. Replace logic and configuration as needed.
"""from __future__ import annotationsfrom dataclasses import dataclass
from typing import Any, Dict, TypedDictfrom langgraph.graph import StateGraph
from langgraph.runtime import Runtime# 上下文参数
class Context(TypedDict):"""Context parameters for the agent.Set these when creating assistants OR when invoking the graph.See: https://langchain-ai.github.io/langgraph/cloud/how-tos/configuration_cloud/"""my_configurable_param: str# 状态参数,定义输入参数
@dataclass
class State:"""Input state for the agent.Defines the initial structure of incoming data.See: https://langchain-ai.github.io/langgraph/concepts/low_level/#state"""changeme: str = "example"# 一个节点,接收state和runtime,返回output
async def call_model(state: State, runtime: Runtime[Context]) -> Dict[str, Any]:"""Process input and returns output.Can use runtime context to alter behavior."""return {"changeme": "output from call_model. "f"Configured with {runtime.context.get('my_configurable_param')}"}# 定义图
graph = (StateGraph(State, context_schema=Context).add_node(call_model).add_edge("__start__", "call_model").compile(name="New Graph")
)

图形化后是
在这里插入图片描述

二、前端

官方文档

前置条件,在本地或者云端已经部署了langgraph的服务

然后本地安装前端项目,并启动

git clone https://github.com/langchain-ai/agent-chat-ui.gitcd agent-chat-uipnpm install

启动前端

pnpm dev

这样本地就有两个项目了
在这里插入图片描述
如果没有pnpm,就安装

brew install pnpm

三、最终效果

因为前端的显示是消息,所以要修改示例代码,我的简易代码

from typing import Annotatedfrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, END
from langgraph.graph.message import add_messagesclass State(TypedDict):# Messages have the type "list". The `add_messages` function# in the annotation defines how this state key should be updated# (in this case, it appends messages to the list, rather than overwriting them)messages: Annotated[list, add_messages]def call_llm(state: State) -> State:return {"messages": [{"role": "assistant","content": "你好,我是小爱同学,请问你是谁?"}]}graph_builder = StateGraph(State)graph_builder.add_node("call_llm", call_llm)graph_builder.add_edge(START, "call_llm")
graph_builder.add_edge("call_llm", END)graph = graph_builder.compile()

在这里插入图片描述

四、本地客户端访问langgraph服务

官方文档
代码

from langgraph_sdk import get_client
import asyncioclient = get_client(url="http://localhost:2024")async def main():async for chunk in client.runs.stream(None,  # Threadless run"agent", # Name of assistant. Defined in langgraph.json.input={"messages": [{"role": "human","content": "hello",}],},):print(f"Receiving new event of type: {chunk.event}...")print(chunk.data)print("\n\n")asyncio.run(main())

效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94354.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94354.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94354.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第2章:幽灵协议初现

林薇的手指刚触碰量子控制台的“时间锚点”按钮,Elysium的拓扑图突然炸开一片猩红。0.000001秒的延迟后,屏幕中央浮现出一个10KB的幽灵协议块——它不占任何经典内存,却在量子态中“呼吸”。“它在……重写协议。”林薇的BCI接口传来低沉的嗡…

Unity其他--【MMD】如何在Unity中制作MMD

小菲摇之前学习了在Unity中使用动画状态机控制人物,以及用Shader去对氛围图形进行渲染,然后又刷到一些MMD的视频,我就想着MMD能做的事情感觉Unity应该也都能做而且更方便的吧,所以就尝试做了一下。当然这里主要是记录一下自己是怎…

从技术精英到“芯”途末路:一位工程师的沉沦与救赎

作者:邱戈龙、曾建萍【长昊律所】 专注于商业秘密、软件著作权的专业型律师事务所,擅长民事、行政、刑事多重救济途径,为众多科学技术领域的商业秘密、软件著作权类案件提供侵权维权、辩护、司法鉴定、司法审计、调查取证等高品质专项法律服务…

刷题日记0824

两眼一睁就是刷!今日计划5道3/5昨天遇到了几件令人心情不好的小事,今天还要处理一下。一早上的好心情被小小的破坏了一下。1056. 易混淆数 简单有思路,心情好。耶比耶比,算是一遍过,这次考虑很周。写完了有一种一遍过的…

Qt c++开发中的delete QThread操作需注意

1、析构函数中,不能执行QEventLoop,会造成 重入问题:事件循环可能触发其他事件,导致已析构的对象被再次访问信号槽连接:正在析构的对象可能还有未断开的信号槽连接未定义行为:对象状态不确定,可…

Seaborn数据可视化实战:Seaborn图表定制与数据可视化入门

高级图表定制 学习目标 通过本课程你将掌握如何使用Seaborn库进行高级图表定制,包括图表的标题、图例、注释的添加,以及图表布局和大小的调整。这些技能将帮助你更有效地展示数据,使你的数据故事更加生动和有说服力。 相关知识点 Seaborn高级…

nano命令使用方法

nano 是 Ubuntu 等 Linux 系统中常用的轻量级文本编辑器,轻量易用,特别适合适合快速编辑配置文件、脚本等。以下是其核心使用方法:一、基本操作:打开 / 创建文件bash# 打开已存在文件(若文件不存在则创建) …

C#_gRPC

6.3 gRPC:高性能跨语言服务间通信 gRPC是一个高性能、开源、通用的RPC(Remote Procedure Call)框架,由Google开发并基于其多年的内部使用经验(Stubby)。它现在是Cloud Native Computing Foundation&#xf…

Ubuntu 多版本 librealsense 与 realsense_ros 编译并兼容 L515 等设备

这篇博客用来记录如何在 Ubuntu 下编译多个版本的 librealsense 并使用 L515 和 D435i 等设备。核心在于 L515 这款设备已经停止维护,直接安装的方案不支持这个设备,只支持 D435i 等后期产品。如果想要同时使用新老的 realsense 产品,需要单独…

Java 泛型 T、E、K、V、?、S、U、V

目录 一、概述 二、为什么使用泛型 三、常见泛型类型参数的含义与用途 示例一:使用 T 定义泛型类 示例二:使用 E 表示集合元素 示例三:使用 K 和 V 表示键值对 示例四:使用 ? 通配符处理未知类型 四、通配符 ? 的扩展用…

1688拍立淘接口数据全面解析详细说明(item_search_img)

一、接口概述 1688拍立淘接口是阿里巴巴1688平台提供的基于图像识别的商品搜索服务,允许开发者通过上传商品图片来搜索平台上的同款或相似商品。该接口的主要功能是接收用户上传的图片(或图片的相关信息),并通过1688平台的图像识…

【Docker项目实战】使用Docker部署轻量级LetsMarkdown文本编辑器

【Docker项目实战】使用Docker部署轻量级Markdown文本编辑器一、LetsMarkdown介绍1.1 LetsMarkdown简介1.2 主要特点二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3检查docker compose 版本四、拉取容器镜像五…

Node.js自研ORM框架深度解析与实践

Node.js自研ORM框架深度解析与实践 前言 在现代Web开发中,对象关系映射(ORM)框架扮演着至关重要的角色。它们为开发者提供了一层抽象,使得数据库操作变得更加简单和直观。本文将深入解析一个基于Node.js和MySQL的自研ORM框架&…

汇总图片拖进ps中 photoshop同时打开几个文件夹

如果你有许多文件夹,你想选中一部分,然后把里面的图片全部拖进photoshop当中,但是文件夹又不能直接拖进去,那么你可以尝试使用一下这个工具,首先测试一下直接拖文件夹。选中你要处理的文件夹,直接拖进photo…

mysql 5.7 查询运行时间较长的sql

开发过程遇到sql 执行时间长,又取消不了的情况 可使用 kill query ID 杀死进程获取正在运行的sqlSELECT ID, -- 进程ID:MySQL服务器分配给每个连接的唯一标识符,用于区分不同的客户端连接USER, …

MongoDB 从入门到实践:全面掌握文档型 NoSQL 数据库核心操作

目录 一、MongoDB 基础准备 1. 官方资源获取 2. 安装步骤解析 二、MongoDB 核心指令详解 1. 数据库操作指令 2. 集合操作指令 3. 文档操作指令 查询文档 插入文档 修改文档 删除文档 三、进阶查询技巧 1. 运算符的灵活运用 比较运算符 逻辑运算符 范围与成员运算…

CVPR2025丨遥感领域,全模态与秒超高清遥感建模重大突破,性能提升创新点

关注gongzhonghao【CVPR顶会精选】刚入门遥感建模时,总好奇别人为什么总能提出新方法?慢慢摸索后才发现,创新点并不是硬憋出来的,而是要从数据特性、传感器差异、地物细节以及环境变化中发现机会。不同波段、不同分辨率、不同时相…

HTML5详篇

前端三剑客 前端三剑客是指HTML、CSS和JavaScript: HTML超文本标记语言(Hyper Text Markup Language):简单理解描述网页结构的;用于网页内容的语言。它通过使用不同的HTML标签来定义页面中的各种元素,例如标题、段落、图像、链接等【无羽毛的小鸟模型】 CSS层叠样式表(…

【Transient-Free 3DGS】delayed densification + coarse to fine增加GS的鲁棒性

25年最新连接去除场景瞬态对象工程与3DGS的pipeline,改进了spotlesssplats,已开源: [2506.02751] RobustSplat: Decoupling Densification and Dynamics for Transient-Free 3DGSAbstract page for arXiv paper 2506.02751: RobustSplat: De…

【MySQL】CRUD基础详解

CRUD基础前言:数据库的层级结构一、新增(Create)1. 单行数据 全列插入2. 单行数据的简写插入3. 指定列插入4. 多行数据插入二、查询(Retrieve)1. 全列查询2. 指定列查询3. 查询结果为表达式(1)…