LangGraph Studio可视化

发布时间:2026-04-16 22:28:17编辑:123阅读(18)

    LangSmith与LangGraph Studio都是LangChain AI生态中非常核心的工具,前者是用于跟踪和分析大模型的使用情况,而LangGraph Studio则是对于LangGraph来说,则是比LangSmith更加方便和高效的可视化调试工具平台。

    LangGraph Studio:桌面版应用(目前仅支持Mac)和本地运行(适用于所有操作系统)

    LangGraph Studio是专为LangGraph图式代理打造的本地/云端 IDE,具备可视化节点和状态及实时调试功能。LangGraph Studio在本地可视化运行时会自动把调用过程上传到LangSmith;而在LangSmith网页端查看任何Trace时,又能一键Run in Studio回放整条执行链,所以它是通过统一Trace SDK与LangSmith紧密集成。


    1. 创建一个LangGraph项目文件夹

    创建一个langgraph_chatbot文件夹


    2. 创建一个requirements.txt,内容如下:

    langgraph

    langchain-core

    langsmith

    python-dotenv


    3. 创建.env文件

    在langgraph_chatbot文件夹中,创建一个.env文件,将敏感信息(如API密钥)放在环境变量中而不是硬编码

    LANGSMITH_TRACING=true

    LANGSMITH_API_KEY=lsv2_pt_7a7db729daee4c949f09xxxxxxxxxxx

    LANGSMITH_PROJECT=langgraph_studio_chatbot


    4. 创建graph.py文件

    在langgraph_chatbot文件夹中,新建一个graph.py文件,在该文件中编写构建图的具体运行逻辑,如状态、节点、边、图的编译等。

    代码如下:

    from typing import Annotated
    from typing_extensions import TypedDict
    from langgraph.graph import StateGraph,START,END
    from langgraph.graph.message import add_messages
    from langchain_ollama import ChatOllama
    from dotenv import load_dotenv
    
    load_dotenv(override=True)
    
    # 定义状态类(会自动合并messages)
    class State(TypedDict):
        messages: Annotated[list, add_messages]
    
    # 初始化模型
    model = ChatOllama(
        model="qwen3:8b",
        temperature=0,
        top_p=0.95,
    )
    
    # 定义聊天节点
    def chatbot(state: State) -> State:
        reply = model.invoke(state["messages"])
        return {'messages': [reply]}
    
    # 构建带MemorySaver的图
    builder = StateGraph(State)
    builder.add_node('chatbot', chatbot)
    builder.add_edge(START, 'chatbot')
    builder.add_edge('chatbot', END)
    graph = builder.compile()
    
    # 运行多轮对话,使用相同thread_id实现记忆
    thread_config = {"configurable":{"thread_id":"session_10"}}
    
    # 第一轮对话
    state1 = graph.invoke({"messages":[{"role":"user", "content":"我叫张三"}]}, config=thread_config)
    print(state1["messages"][-1].content)
    
    # 第二轮对话
    state2 = graph.invoke({"messages":[{"role":"user", "content":"我叫什么"}]}, config=thread_config)
    print(state2["messages"][-1].content)


    5. 创建langgraph.json文件

    在langgraph_chatbot文件夹中,新建一个langgraph.json文件,在该json文件中配置项目信息,遵循规范如下所示:

    必须包含dependencies和graphs字段

    graphs字段格式:"图名":"文件路径:变量名"

    配置文件必须放在与python文件同级或更高级的目录,如下所示:

    {

      "dependencies": ["./"],

      "graphs": {"chatbot": "./graph.py:graph"},

      "env": ".env"

    }


    项目结构:

    image.png


    安装langgraph-cli依赖,执行如下代码:

    pip install langgraph-cli


    最后进入到langgraph_chatbot文件夹,执行langgraph dev即可启动

    image.png

    进入到langgraph studio页面

    image.png

    可以在web页面上进行对话

关键字

上一篇: LangSmith开发-应用入门

下一篇: 没有了