跳至内容

工作室常见问题

为什么我的项目无法启动?

您的项目可能由于多种原因而无法启动,以下是一些最常见的原因。

Docker 问题

LangGraph Studio 需要 Docker Desktop 4.24 或更高版本。请确保您安装的 Docker 版本满足此要求,并在尝试使用 LangGraph Studio 之前确保 Docker Desktop 应用程序已启动并正在运行。此外,请确保您已将 docker-compose 更新到 2.22.0 或更高版本。

配置或环境问题

您的项目无法启动的另一个原因可能是您的配置文件定义不正确,或者缺少必需的环境变量。

中断是如何工作的?

当您选择“中断”下拉菜单并选择一个节点来中断图时,图将在该节点运行之前和之后暂停执行(除非该节点直接进入“结束”)。这意味着您将能够编辑节点运行之前的状态和节点运行后的状态。这旨在让开发人员能够更细粒度地控制节点的行为,并更容易观察节点的行为。如果节点是图中的最后一个节点,则您将无法编辑节点运行后的状态。

如何重新加载应用程序?

如果您想重新加载应用程序,请不要像平时一样使用 Command+R。而是关闭并重新打开应用程序以进行完整刷新。

自动重建是如何工作的?

LangGraph Studio 的关键功能之一是,当您更改源代码时,它会自动重建您的镜像。这使得开发和测试周期非常快,从而可以轻松地迭代您的图。LangGraph 重建镜像有两种不同的方式:通过编辑镜像或完全重建镜像。

来自源代码更改的重建

如果您只修改了源代码(没有配置或依赖项更改!),则镜像不需要完全重建,LangGraph Studio 只会更新相关部分。左下角的 UI 状态将暂时从“在线”切换到“停止”,同时正在编辑镜像。在此过程中将显示日志,并且在镜像编辑完成后,状态将更改回“在线”,您将能够使用修改后的代码运行您的图!

来自配置或依赖项更改的重建

如果您编辑了图配置文件(langgraph.json)或依赖项(pyproject.tomlrequirements.txt),则整个镜像将被重建。这将导致 UI 从图视图切换,并开始显示新镜像构建过程的日志。这可能需要一两分钟,完成后,您更新的镜像即可使用!

为什么我的图启动需要这么长时间?

LangGraph Studio 与本地 LangGraph API 服务器交互。为了与持续更新保持一致,LangGraph API 需要定期重建。因此,您可能会偶尔在启动项目时遇到轻微延迟。

为什么我的图中显示了额外的边?

如果您没有仔细定义条件边,您可能会注意到图中出现了额外的边。这是因为,如果没有正确的定义,LangGraph Studio 会假设条件边可以访问所有其他节点。为了避免这种情况,您需要明确定义条件边路由到的节点。您可以通过两种方法做到这一点

解决方案 1:包含路径映射

解决此问题的第一个方法是在条件边中添加路径映射。路径映射只是一个字典或数组,它将路由函数的可能输出与每个输出对应的节点名称映射起来。路径映射作为第三个参数传递给 add_conditional_edges 函数,如下所示

graph.add_conditional_edges("node_a", routing_function, {True: "node_b", False: "node_c"})
graph.addConditionalEdges("node_a", routingFunction, { true: "node_b", false: "node_c" });

在这种情况下,路由函数返回 True 或 False,分别映射到 node_bnode_c

解决方案 2:更新路由器的类型(仅限 Python)

除了传递路径映射之外,您还可以通过使用 Literal python 定义来明确指定路由函数的类型,从而明确指定它可以映射到的节点。以下是如何以此方式定义路由函数的示例

def routing_function(state: GraphState) -> Literal["node_b","node_c"]:
    if state['some_condition'] == True:
        return "node_b"
    else:
        return "node_c"

评论