Skip to main content

可观测性

我无法在界面中创建 API 密钥或管理用户,是什么问题?

  • 您很可能在部署 LangSmith 时未设置 SSO。LangSmith 需要 SSO 来管理用户和 API 密钥。您可以在配置部分找到有关设置 SSO 的更多信息。

负载均衡/入口如何工作?

  • 您需要将前端容器/服务暴露给您的应用程序/用户。这将处理到所有下游服务的路由。
  • 您需要在入口层终止 SSL。我们建议使用托管服务,如 AWS ALB、GCP 负载均衡器或 Nginx。

我们如何对应用程序进行身份验证?

  • 目前,我们的自托管解决方案支持使用 OAuth2.0 和 OIDC 作为身份验证解决方案的 SSO。请注意,我们也提供无身份验证的解决方案,但强烈建议在生产环境前设置 OAuth。
您可以在配置部分找到有关设置 SSO 的更多信息。

我可以使用外部存储服务吗?

  • 您可以配置 LangSmith 以使用所有存储服务的外部版本。在生产环境中,我们强烈建议使用外部存储服务。查看配置部分了解更多信息。

我的应用程序是否需要出口才能正常运行?

我们的部署仅需要出口用于少数事项(其中大部分可以驻留在您的 VPC 内):
  • 获取镜像(如果镜像已本地化,则可能不需要)
  • 与任何 LLM 端点通信
  • 与您可能配置的任何外部存储服务通信
  • 获取 OAuth 信息
  • 订阅指标和操作元数据(如果未在离线模式下运行)
    • 需要出口到 https://beacon.langchain.com
    • 有关更多信息,请参阅出口
您的 VPC 可以设置规则以限制任何其他访问。注意:我们需要允许 X-Organization-IdX-Tenant-Id 标头传递到后端服务。这些用于确定请求属于哪个组织和哪个工作空间(以前称为“租户”)。

应用程序的资源要求是什么?

  • 在 Kubernetes 中,我们建议的最小 Helm 配置可以在中等规模示例中查看。对于 Docker,我们建议至少 16GB RAM 和 4 个 CPU。
  • 对于 Postgres,我们建议至少 8GB RAM 和 2 个 CPU。
  • 对于 Redis,我们建议 4GB RAM 和 2 个 CPU。
  • 对于 Clickhouse,我们建议 32GB RAM 和 8 个 CPU。

SAML SSO 常见问题

如何更改 SAML SSO 用户的电子邮件地址?

某些身份提供者在更改电子邮件时会保留原始的 User ID,而其他则不会,因此我们建议您按照以下步骤操作,以避免在 LangSmith 中出现重复用户:
  1. 从组织中移除该用户(参见管理用户
  2. 在身份提供者中更改其电子邮件地址
  3. 让他们通过 SAML SSO 再次登录 LangSmith - 这将触发通常的即时配置流程,使用其新的电子邮件地址
目前不支持通过 SCIM 或其他方式更改具有多个关联登录方法的用户的电子邮件地址。会显示此错误消息:email update not supported with linked login methods。例如,如果用户之前通过电子邮件/密码或 Google 社交登录登录,然后通过 SSO 添加了相同的电子邮件地址,则不支持更改其电子邮件地址。这适用于自托管和云端。

我可以更改身份提供者吗?

请通过我们的门户网站 https://support.langchain.com 联系 LangChain 支持团队,以获取迁移支持。

如何修复“405 方法不允许”错误?

确保您使用的是正确的 ACS URL:https://auth.langchain.com/auth/v1/sso/saml/acs

SCIM 常见问题

我可以在没有 SAML SSO 的情况下使用 SCIM 吗?

  • 云端:不可以,云端部署中 SCIM 需要 SAML SSO
  • 自托管:可以,SCIM 可与使用客户端密钥身份验证模式的 OAuth 配合使用

如果我同时启用了即时配置和 SCIM,会发生什么?

即时配置和 SCIM 可能会相互冲突。我们建议在启用 SCIM 之前禁用即时配置,以确保用户配置行为的一致性。

如何更改用户的角色或工作空间访问权限?

在您的身份提供者中更新用户的组成员身份。更改将根据角色优先级规则同步到 LangSmith。

当用户从所有组中移除时会发生什么?

根据您的身份提供者的取消配置设置,该用户将从您的 LangSmith 组织中取消配置。

我可以使用自定义组名吗?

可以。如果您的身份提供者支持将备用字段同步到 displayName 组属性,您可以使用备用属性(如 description)作为 LangSmith 中的 displayName,并完全自定义身份提供者组名。否则,组必须遵循组命名约定部分中描述的特定命名约定,以正确映射到 LangSmith 角色和工作空间。 您还可以配置自定义分隔符(例如 -_&)来代替默认的冒号(:),以适应对组名字符有限制的身份提供者。

为什么我的 Okta 集成无法工作?

请参阅 Okta 的故障排除指南:https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-group-push-troubleshoot.htm

支持降级吗?

降级不受官方支持。LangSmith 升级可能包括数据库迁移和其他不向后兼容的更改。如果您需要回滚到先前版本,请联系支持团队获取指导。

部署

我需要使用 LangChain 才能使用 LangGraph 吗?它们有什么区别?

不需要。LangGraph 是一个用于复杂智能体系统的编排框架,比 LangChain 的智能体更底层且更可控。LangChain 提供了一个与模型和其他组件交互的标准接口,适用于简单的链式和检索流程。

LangGraph 与其他智能体框架有何不同?

其他智能体框架可以处理简单的通用任务,但对于公司特定需求的复杂任务则力不从心。LangGraph 提供了一个更具表现力的框架,可以处理公司独特的任务,而不会将用户限制在单一的黑盒认知架构中。

LangGraph 会影响我的应用程序性能吗?

LangGraph 不会给您的代码增加任何开销,并且是专门为流式工作流设计的。

LangGraph 是开源的吗?它是免费的吗?

是的。LangGraph 是一个 MIT 许可的开源库,可以免费使用。

LangGraph 和 LangSmith 有何不同?

LangGraph 是一个有状态的编排框架,为智能体工作流提供了额外的控制。LangSmith 是一个用于部署和扩展智能体应用程序的服务,具有用于构建智能体用户体验的标准化 API,以及一个集成的开发者界面。
特性LangGraph(开源)LangSmith
描述用于智能体应用程序的有状态编排框架用于部署 LangGraph 应用程序的可扩展基础设施
SDKPython 和 JavaScriptPython 和 JavaScript
HTTP API有 - 用于检索和更新状态或长期记忆,或创建可配置的助手
流式传输基础专为逐令牌消息设计的模式
检查点社区贡献开箱即用支持
持久层自行管理托管的 Postgres,具有高效存储
部署自行管理• 云端
• 免费自托管
• 企业版(付费自托管)
可扩展性自行管理任务队列和服务器的自动扩展
容错性自行管理自动重试
并发控制简单线程支持双重文本处理
调度Cron 调度
监控与 LangSmith 集成以实现可观测性
IDE 集成StudioStudio

LangSmith 是开源的吗?

不是。LangSmith 是专有软件。 有一个免费的自托管版本 LangSmith,提供基本功能。云端部署选项和自托管部署选项是付费服务。联系我们的销售团队了解更多信息。 有关更多信息,请参阅我们的LangSmith 定价页面

LangGraph 是否适用于不支持工具调用的 LLM?

是的!您可以将 LangGraph 与任何 LLM 一起使用。我们使用支持工具调用的 LLM 的主要原因是,这通常是让 LLM 决定下一步操作的最便捷方式。如果您的 LLM 不支持工具调用,您仍然可以使用它 - 您只需要编写一些逻辑,将原始的 LLM 字符串响应转换为关于下一步操作的决定。

LangGraph 是否适用于开源 LLM?

是的!LangGraph 完全不在意底层使用什么 LLM。我们在大多数教程中使用闭源 LLM 的主要原因是它们无缝支持工具调用,而开源 LLM 通常不支持。但工具调用并非必需(参见LangGraph 是否适用于不支持工具调用的 LLM?),因此您完全可以与开源 LLM 一起使用 LangGraph。

我可以在不登录 LangSmith 的情况下使用 Studio 吗?

可以!您可以使用Agent Server 的开发版本在本地运行后端。 这将连接到作为 LangSmith 一部分托管的 Studio 前端。 如果您设置环境变量 LANGSMITH_TRACING=false,则不会向 LangSmith 发送任何追踪数据。

什么是部署运行?

部署运行是通过 LangSmith 部署的 LangGraph 智能体的一次端到端调用。节点和子图不会单独计费。对其他 LangGraph 智能体的调用(通过 RemoteGraph 或 LangGraph SDK 或直接通过 API)会单独计费,计入托管被调用智能体的部署。用于人机交互的中断在恢复时会创建一个单独的部署运行。