运行树 (Run Trees)
langsmith.run_trees ¶
LangSmith API 的模式。
RunTree ¶
基类:RunBase
带有用于发布运行的向后引用的运行模式。
| 方法 | 描述 |
|---|---|
infer_defaults |
为运行分配名称。 |
ensure_dotted_order |
确保运行的点分顺序。 |
__setattr__ |
特殊地设置 _client。 |
set |
设置运行的输入、输出、标签和元数据。 |
add_tags |
向运行添加标签。 |
add_metadata |
向运行添加元数据。 |
add_outputs |
将给定的输出更新并插入到运行中。 |
add_inputs |
将给定的输出更新并插入到运行中。 |
add_event |
向事件列表添加一个事件。 |
end |
设置运行和所有子运行的结束时间。 |
create_child |
向运行树添加一个子运行。 |
post |
异步地将运行树发布到 API。 |
patch |
在后台线程中将运行树修补到 API。 |
wait |
等待所有 _futures 完成。 |
get_url |
返回运行的 URL。 |
from_dotted_order |
根据提供的点分顺序创建一个新的“子”跨度。 |
from_runnable_config |
根据提供的可运行配置创建一个新的“子”跨度。 |
from_headers |
根据提供的头信息创建一个新的“父”跨度。 |
to_headers |
将 RunTree 作为头信息字典返回。 |
__repr__ |
返回 RunTree 对象的字符串表示形式。 |
attachments 类属性 实例属性 ¶
attachments: Attachments | dict[str, AttachmentInfo] = Field(default_factory=dict)
与运行相关联的附件。每个条目是一个(mime_type, bytes)的元组。
Config ¶
Pydantic 模型配置。
set ¶
set(
*,
inputs: Mapping[str, Any] | None = NOT_PROVIDED,
outputs: Mapping[str, Any] | None = NOT_PROVIDED,
tags: Sequence[str] | None = NOT_PROVIDED,
metadata: Mapping[str, Any] | None = NOT_PROVIDED,
usage_metadata: ExtractedUsageMetadata | None = NOT_PROVIDED,
) -> None
设置运行的输入、输出、标签和元数据。
如果执行此操作,将覆盖 end() 方法的默认行为,以忽略由 @traceable 装饰器添加的新输出。
如果您的 LangChain 或 LangGraph 版本足够新,这也会覆盖 LangChainTracer 的默认行为。
| 参数 | 描述 |
|---|---|
inputs
|
要设置的输入。 |
outputs
|
要设置的输出。 |
tags
|
要设置的标签。 |
metadata
|
要设置的元数据。 |
usage_metadata
|
要设置的使用信息。
类型: |
| 返回 | 描述 |
|---|---|
None
|
None |
add_outputs ¶
add_inputs ¶
add_event ¶
向事件列表添加一个事件。
| 返回 | 描述 |
|---|---|
None
|
None |
end ¶
end(
*,
outputs: dict | None = None,
error: str | None = None,
end_time: datetime | None = None,
events: Sequence[RunEvent] | None = None,
metadata: dict[str, Any] | None = None,
) -> None
设置运行和所有子运行的结束时间。
create_child ¶
create_child(
name: str,
run_type: RUN_TYPE_T = "chain",
*,
run_id: ID_TYPE | None = None,
serialized: dict | None = None,
inputs: dict | None = None,
outputs: dict | None = None,
error: str | None = None,
reference_example_id: UUID | None = None,
start_time: datetime | None = None,
end_time: datetime | None = None,
tags: list[str] | None = None,
extra: dict | None = None,
attachments: Attachments | None = None,
) -> RunTree
向运行树添加一个子运行。
patch ¶
patch(*, exclude_inputs: bool = False) -> None
在后台线程中将运行树修补到 API。
| 参数 | 描述 |
|---|---|
exclude_inputs
|
是否从修补请求中排除输入。
类型: |
from_runnable_config 类方法 ¶
根据提供的可运行配置创建一个新的“子”跨度。
需要安装 langchain。
| 返回 | 描述 |
|---|---|
RunTree | None
|
Optional[RunTree]:新的跨度,如果未找到父跨度信息则为 None。 |
configure ¶
configure(
client: Client | None = _SENTINEL,
enabled: bool | None = _SENTINEL,
project_name: str | None = _SENTINEL,
tags: list[str] | None = _SENTINEL,
metadata: dict[str, Any] | None = _SENTINEL,
)
配置全局 LangSmith 跟踪上下文。
此函数允许您为 LangSmith 跟踪设置全局配置选项,这些选项将应用于所有后续的跟踪操作。它会修改控制您应用程序中跟踪行为的上下文变量。
在启动时执行此操作一次,以在代码中配置全局设置。
如果您只想为单次调用配置跟踪,请改用 tracing_context 上下文管理器。
| 参数 | 描述 |
|---|---|
client
|
一个 LangSmith 客户端实例,用于所有跟踪操作。如果提供,将使用此客户端而不是创建新客户端。传递
类型: |
enabled
|
跟踪是否已启用。可以是:-
类型: |
project_name
|
跟踪将被发送到的 LangSmith 项目名称。这决定了哪个项目仪表板将显示您的跟踪。传递
类型: |
tags
|
将应用于所有被跟踪运行的标签列表。标签对于在 LangSmith UI 中过滤和组织运行很有用。传递 |
metadata
|
附加到所有被跟踪运行的元数据字典。元数据可以存储有关您运行的任何附加上下文。传递 |
| 返回 | 描述 |
|---|---|
|
None |
示例
基本配置
>>> import langsmith as ls
>>> # Enable tracing with a specific project
>>> ls.configure(enabled=True, project_name="my-project")
设置全局跟踪掩码
>>> def hide_keys(data):
... if not data:
... return {}
... return {k: v for k, v in data.items() if k not in ["key1", "key2"]}
>>> ls.configure(
... client=ls.Client(
... hide_inputs=hide_keys,
... hide_outputs=hide_keys,
... )
... )
添加全局标签和元数据
>>> ls.configure(
... tags=["production", "v1.0"],
... metadata={"environment": "prod", "version": "1.0.0"},
... )
禁用跟踪
validate_extracted_usage_metadata ¶
validate_extracted_usage_metadata(
data: ExtractedUsageMetadata,
) -> ExtractedUsageMetadata
验证字典只包含允许的键。