以编程方式使用文档

LangSmith 提供了与 Instructor,一个用于通过 LLM 生成结构化输出的流行开源库。

要使用此功能,您首先需要设置您的 LangSmith API 密钥。

# For LangSmith API keys linked to multiple workspaces, set the LANGSMITH_WORKSPACE_ID environment variable to specify which workspace to use.

接下来,您需要安装 LangSmith SDK:

pip install -U langsmith
uv add langsmith

使用 langsmith.wrappers.wrap_openai

from openai import OpenAI
from langsmith import wrappers

client = wrappers.wrap_openai(OpenAI())

在此之后,您可以使用以下方式修补包装后的 OpenAI 客户端 instructor:

client = instructor.patch(client)

现在,您可以使用 instructor 像平常一样使用,但现在所有内容都会被记录到 LangSmith!

from pydantic import BaseModel


class UserDetail(BaseModel):
    name: str
    age: int


user = client.chat.completions.create(
    model="gpt-5.4-mini",
    response_model=UserDetail,
    messages=[
        {"role": "user", "content": "Extract Jason is 25 years old"},
    ]
)

通常情况下,您会在 instructor 内部使用它。 通过使用此包装客户端并使用装饰器装饰这些函数,您可以获得嵌套追踪 @traceable. 请参阅 自定义插桩 了解更多关于如何使用以下工具为追踪注释代码的信息 @traceable decorator.

# You can customize the run name with the `name` keyword argument
@traceable(name="Extract User Details")
def my_function(text: str) -> UserDetail:
    return client.chat.completions.create(
        model="gpt-5.4-mini",
        response_model=UserDetail,
        messages=[
            {"role": "user", "content": f"Extract {text}"},
        ]
    )

my_function("Jason is 25 years old")