데이터셋 변환
데이터셋 변환
LangSmith를 사용하면 데이터셋의 스키마에서 필드에 변환을 연결해서, UI, API 또는 런 규칙 어디에서 오든 데이터가 데이터셋에 추가되기 전에 변환을 적용할 수 있어요.
LangSmith의 사전 빌드 JSON 스키마 유형과 함께, 데이터를 데이터셋에 저장하기 전에 쉽게 전처리할 수 있게 해줘요.
출처: 문서
본문
변환 유형
| 변환 유형 | 대상 유형 | 기능 |
|---|---|---|
remove_system_messages |
Array[Message] |
메시지 목록을 필터링해 시스템 메시지를 제거해요. |
convert_to_openai_message |
Message Array[Message] |
들어오는 데이터를 LangChain의 내부 직렬화 형식에서 langchain의 convert_to_openai_messages를 사용해 OpenAI의 표준 메시지 형식으로 변환해요. 대상 필드가 필수로 표시되어 있고 진입 시 일치하는 메시지가 없으면, 몇 가지 잘 알려진 LangSmith 추적 형식(예: 추적된 모든 LangChain BaseChatModel 런 또는 LangSmith OpenAI 래퍼의 추적 런)에서 메시지(또는 메시지 목록)를 추출하려 시도하고, 메시지를 포함한 원래 키를 제거해요. |
convert_to_openai_tool |
Array[Tool] 입력 사전의 최상위 필드에서만 사용 가능. |
들어오는 모든 데이터를 langchain의 convert_to_openai_tool을 사용해 OpenAI 표준 도구 형식으로 여기서 변환해요. 지정된 키에 도구가 없으면 런의 호출 파라미터에서 도구 정의를 추출해요. LangChain 채팅 모델은 도구 정의를 입력이 아닌 런의 extra.invocation_params 필드로 추적하기 때문에 유용해요. |
remove_extra_fields |
Object |
이 대상 객체에 대해 스키마에 정의되지 않은 모든 필드를 제거해요. |
채팅 모델 사전 빌드 스키마
변환의 주요 사용 사례는 프로덕션 트레이스를 데이터셋으로 수집해 모델 프로바이더 전반에서 표준화할 수 있는 형식으로 만들고, 다운스트림의 평가/퓨샷 프롬프팅 등에 사용하는 것을 단순화하는 것이에요.
최종 사용자의 변환 설정을 단순화하기 위해 LangSmith는 다음을 수행하는 미리 정의된 스키마를 제공해요:
- 수집된 런에서 메시지를 추출해 openai 표준 형식으로 변환. 이는 모든 LangChain ChatModel과 대부분의 모델 프로바이더 SDK와 호환되도록 만들어 다운스트림 평가와 실험에 사용할 수 있게 해줘요.
- LLM이 사용한 모든 도구를 추출해 예시의 입력에 추가. 다운스트림 평가에서 재현성에 사용할 수 있게 해줘요.
시스템 프롬프트를 반복 개선하려는 사용자는 채팅 모델 스키마를 사용할 때 입력 메시지에 Remove System Messages 변환을 자주 추가해서 시스템 프롬프트가 데이터셋에 저장되는 것을 방지할 수 있어요.
호환성
LLM 런 수집 스키마는 LangChain BaseChatModel 런이나 LangSmith OpenAI 래퍼의 추적 런에서 데이터를 수집하도록 설계됐어요.
추적 중인 LLM 런이 호환되지 않는다면 support.langchain.com을 통해 지원팀에 문의하세요. 지원을 확장할 수 있어요.
다른 종류의 런에 변환을 적용하려면(예: 메시지 기록으로 LangGraph 상태를 표현), 스키마를 직접 정의하고 관련 변환을 수동으로 추가하세요.
활성화
추적 프로젝트나 주석 큐에서 데이터셋으로 런을 추가할 때 런 유형이 LLM이라면 Chat Model 스키마를 기본으로 적용해요.
새 데이터셋에 활성화하는 방법은 데이터셋 관리 방법 가이드를 참고하세요.
사양
사전 빌드 스키마의 전체 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"
}
]