Skip to main content
환경 변수를 통해 정적으로 또는 런타임에 동적으로 트레이스의 대상 프로젝트를 변경할 수 있습니다.

대상 프로젝트를 정적으로 설정하기

트레이싱 개념 섹션에서 언급했듯이, LangSmith는 트레이스를 그룹화하기 위해 Project 개념을 사용합니다. 지정하지 않으면 프로젝트는 default로 설정됩니다. 전체 애플리케이션 실행에 대해 사용자 정의 프로젝트 이름을 구성하려면 LANGSMITH_PROJECT 환경 변수를 설정할 수 있습니다. 이는 애플리케이션을 실행하기 전에 수행해야 합니다.
export LANGSMITH_PROJECT=my-custom-project
LANGSMITH_PROJECT 플래그는 JS SDK 버전 >= 0.2.16에서만 지원됩니다. 이전 버전을 사용하는 경우 LANGCHAIN_PROJECT를 대신 사용하세요.
지정된 프로젝트가 존재하지 않으면, 첫 번째 트레이스가 수집될 때 자동으로 생성됩니다.

대상 프로젝트를 동적으로 설정하기

트레이싱을 위한 코드 주석 방법에 따라 프로그램 런타임에 프로젝트 이름을 다양한 방식으로 설정할 수도 있습니다. 이는 동일한 애플리케이션 내에서 여러 프로젝트에 트레이스를 기록하려는 경우에 유용합니다.
아래 방법 중 하나를 사용하여 프로젝트 이름을 동적으로 설정하면 LANGSMITH_PROJECT 환경 변수로 설정한 프로젝트 이름이 재정의됩니다.
import openai
from langsmith import traceable
from langsmith.run_trees import RunTree

client = openai.Client()
messages = [
  {"role": "system", "content": "You are a helpful assistant."},
  {"role": "user", "content": "Hello!"}
]

# 'project_name' 매개변수와 함께 @traceable 데코레이터를 사용하여 LangSmith에 트레이스를 기록합니다
# @traceable이 작동하려면 LANGSMITH_TRACING 환경 변수가 설정되어 있는지 확인하세요
@traceable(
  run_type="llm",
  name="OpenAI Call Decorator",
  project_name="My Project"
)
def call_openai(
  messages: list[dict], model: str = "gpt-4o-mini"
) -> str:
  return client.chat.completions.create(
      model=model,
      messages=messages,
  ).choices[0].message.content

# 데코레이터가 적용된 함수 호출
call_openai(messages)

# project_name 매개변수를 통해 프로젝트를 지정할 수도 있습니다
# 이는 @traceable 데코레이터에서 지정한 project_name을 재정의합니다
call_openai(
  messages,
  langsmith_extra={"project_name": "My Overridden Project"},
)

# 래핑된 OpenAI 클라이언트는 @traceable 데코레이터가 적용된 함수와 동일한
# langsmith_extra 매개변수를 모두 허용하며, 자동으로 LangSmith에 트레이스를 기록합니다.
# 래퍼가 작동하려면 LANGSMITH_TRACING 환경 변수가 설정되어 있는지 확인하세요.
from langsmith import wrappers
wrapped_client = wrappers.wrap_openai(client)
wrapped_client.chat.completions.create(
  model="gpt-4o-mini",
  messages=messages,
  langsmith_extra={"project_name": "My Project"},
)

# 또는 RunTree 객체를 생성합니다
# project_name 매개변수를 사용하여 프로젝트 이름을 설정할 수 있습니다
rt = RunTree(
  run_type="llm",
  name="OpenAI Call RunTree",
  inputs={"messages": messages},
  project_name="My Project"
)
chat_completion = client.chat.completions.create(
  model="gpt-4o-mini",
  messages=messages,
)
# 실행을 종료하고 제출합니다
rt.end(outputs=chat_completion)
rt.post()

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I