Skip to main content
LangSmith를 사용하면 데이터세트 스키마의 필드에 변환을 연결하여, UI, API 또는 실행 규칙을 통해 데이터가 데이터세트에 추가되기 전에 데이터에 변환을 적용할 수 있습니다. LangSmith의 사전 구축된 JSON 스키마 타입과 함께 사용하면 데이터를 데이터세트에 저장하기 전에 쉽게 전처리할 수 있습니다.

변환 타입

변환 타입대상 타입기능
remove_system_messagesArray[Message]메시지 목록을 필터링하여 시스템 메시지를 제거합니다.
convert_to_openai_messageMessage Array[Message]LangChain의 내부 직렬화 형식에서 들어오는 모든 데이터를 langchain의 convert_to_openai_messages를 사용하여 OpenAI의 표준 메시지 형식으로 변환합니다. 대상 필드가 필수로 표시되어 있고 입력 시 일치하는 메시지를 찾을 수 없는 경우, 여러 잘 알려진 LangSmith 추적 형식(예: 추적된 LangChain BaseChatModel 실행 또는 LangSmith OpenAI 래퍼의 추적된 실행)에서 메시지(또는 메시지 목록)를 추출하려고 시도하고, 메시지를 포함하는 원래 키를 제거합니다.
convert_to_openai_toolArray[Tool] inputs 딕셔너리의 최상위 필드에서만 사용 가능.langchain의 convert_to_openai_tool을 사용하여 들어오는 모든 데이터를 OpenAI 표준 도구 형식으로 변환합니다. 지정된 키에 도구가 없거나 발견되지 않은 경우 실행의 호출 매개변수에서 도구 정의를 추출합니다. LangChain 채팅 모델은 입력이 아닌 실행의 extra.invocation_params 필드에 도구 정의를 추적하기 때문에 유용합니다.
remove_extra_fieldsObject이 대상 객체의 스키마에 정의되지 않은 모든 필드를 제거합니다.

채팅 모델 사전 구축 스키마

변환의 주요 사용 사례는 프로덕션 추적을 다운스트림 평가, 퓨샷 프롬프팅 등에 사용하기 위해 모델 공급자 간에 표준화할 수 있는 형식의 데이터세트로 수집하는 과정을 단순화하는 것입니다. 최종 사용자를 위한 변환 설정을 단순화하기 위해 LangSmith는 다음을 수행하는 사전 정의된 스키마를 제공합니다:
  • 수집된 실행에서 메시지를 추출하고 OpenAI 표준 형식으로 변환하여 모든 LangChain ChatModel 및 대부분의 모델 공급자 SDK와 다운스트림 평가 및 실험에서 호환되도록 합니다
  • LLM에서 사용된 모든 도구를 추출하여 다운스트림 평가에서 재현성을 위해 예제의 입력에 추가합니다
시스템 프롬프트를 반복하려는 사용자는 채팅 모델 스키마를 사용할 때 입력 메시지에 시스템 메시지 제거 변환도 추가하는 경우가 많으며, 이를 통해 시스템 프롬프트가 데이터세트에 저장되는 것을 방지할 수 있습니다.

호환성

LLM 실행 수집 스키마는 LangChain BaseChatModel 실행 또는 LangSmith OpenAI 래퍼의 추적된 실행에서 데이터를 수집하도록 구축되었습니다. 호환되지 않는 LLM 실행을 추적하는 경우 [email protected]로 문의하시면 지원을 확장할 수 있습니다. 다른 종류의 실행에 변환을 적용하려는 경우(예: 메시지 기록이 있는 LangGraph 상태 표현) 스키마를 직접 정의하고 관련 변환을 수동으로 추가하세요.

활성화

추적 프로젝트 또는 주석 큐에서 데이터세트에 실행을 추가할 때 LLM 실행 타입이 있는 경우 기본적으로 채팅 모델 스키마를 적용합니다. 새 데이터세트에서 활성화하려면 데이터세트 관리 가이드를 참조하세요.

사양

사전 구축된 스키마의 전체 API 사양은 아래 섹션을 참조하세요:

입력 스키마

{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "$ref": "https://api.smith.langchain.com/public/schemas/v1/message.json"
      }
    },
    "tools": {
      "type": "array",
      "items": {
        "$ref": "https://api.smith.langchain.com/public/schemas/v1/tooldef.json"
      }
    }
  },
  "required": ["messages"]
}

출력 스키마

{
  "type": "object",
  "properties": {
    "message": {
      "$ref": "https://api.smith.langchain.com/public/schemas/v1/message.json"
    }
  },
  "required": ["message"]
}

변환

변환은 다음과 같습니다:
[
  {
    "path": ["inputs"],
    "transformation_type": "remove_extra_fields"
  },
  {
    "path": ["inputs", "messages"],
    "transformation_type": "convert_to_openai_message"
  },
  {
    "path": ["inputs", "tools"],
    "transformation_type": "convert_to_openai_tool"
  },
  {
    "path": ["outputs"],
    "transformation_type": "remove_extra_fields"
  },
  {
    "path": ["outputs", "message"],
    "transformation_type": "convert_to_openai_message"
  }
]

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