Skip to main content
추천 자료: 이 페이지에서 언급되는 개념에 익숙해지기 위해 트레이싱 개념 가이드를 먼저 읽어보시는 것이 도움이 될 수 있습니다.
트레이싱 프로젝트에는 상당한 양의 데이터가 포함될 수 있습니다. 필터는 이러한 데이터를 효과적으로 탐색하고 분석하는 데 사용되며, 다음과 같은 작업을 가능하게 합니다:
  • 집중적인 조사: 임시 분석을 위해 특정 실행으로 신속하게 범위를 좁힘
  • 디버그 및 분석: 오류, 실패한 실행 및 성능 병목 지점을 식별하고 검토함
이 페이지에는 트레이싱 프로젝트에서 실행을 필터링하는 방법에 대한 일련의 가이드가 포함되어 있습니다. API 또는 SDK를 통해 프로그래밍 방식으로 실행을 내보내 분석하는 경우, 자세한 정보는 트레이스 내보내기 가이드를 참조하세요.

필터 생성 및 적용

실행 속성으로 필터링

트레이싱 프로젝트에서 실행을 필터링하는 방법은 두 가지가 있습니다:
  1. 필터: 트레이싱 프로젝트 페이지의 왼쪽 상단에 위치합니다. 여기에서 상세한 필터 기준을 구성하고 관리할 수 있습니다.
Filtering
  1. 필터 바로가기: 트레이싱 프로젝트 페이지의 오른쪽 사이드바에 위치합니다. 필터 바로가기 막대는 프로젝트 실행에서 가장 빈번하게 나타나는 속성을 기반으로 필터에 빠르게 접근할 수 있도록 합니다.
Filter Shortcuts
기본 필터기본적으로 IsTrace is true 필터가 적용됩니다. 이는 최상위 레벨 트레이스만 표시합니다. 이 필터를 제거하면 프로젝트의 중간 스팬을 포함한 모든 실행이 표시됩니다.

시간 범위로 필터링

실행 속성으로 필터링하는 것 외에도, 특정 시간 범위 내의 실행을 필터링할 수 있습니다. 이 옵션은 트레이싱 프로젝트 페이지의 왼쪽 상단에서 사용할 수 있습니다. Filtering on time

필터 연산자

사용 가능한 필터 연산자는 필터링하려는 속성의 데이터 타입에 따라 다릅니다. 일반적인 연산자의 개요는 다음과 같습니다:
  • is: 필터 값과 정확히 일치
  • is not: 필터 값과 일치하지 않음
  • contains: 필터 값과 부분적으로 일치
  • does not contain: 필터 값과 부분적으로 일치하지 않음
  • is one of: 목록의 값 중 하나와 일치
  • > / <: 숫자 필드에 사용 가능

특정 필터링 기법

중간 실행(스팬) 필터링

중간 실행(스팬)을 필터링하려면 먼저 기본 IsTrace is true 필터를 제거해야 합니다. 예를 들어, 하위 실행의 run name으로 필터링하거나 run type으로 필터링하려는 경우 이 작업을 수행합니다. 실행 메타데이터와 태그도 필터링에 강력한 도구입니다. 이는 파이프라인의 모든 부분에 걸쳐 적절한 태깅에 의존합니다. 자세한 내용은 이 가이드를 참조하세요.

입력 및 출력 기반 필터링

실행의 입력 및 출력 내용을 기반으로 실행을 필터링할 수 있습니다. 입력 또는 출력을 필터링하려면 두 필드 중 하나에서 키워드를 일치시키는 Full-Text Search 필터를 사용할 수 있습니다. 더 타겟팅된 검색을 위해서는 각 필드를 기반으로만 내용을 일치시키는 Input 또는 Output 필터를 사용할 수 있습니다.
성능을 위해 전체 텍스트 검색을 위해 최대 250자의 데이터를 인덱싱합니다. 검색 쿼리가 이 제한을 초과하는 경우, 대신 입력/출력 키-값 검색을 사용하는 것을 권장합니다.
공백으로 구분된 여러 용어를 포함하거나 여러 필터를 추가하여 여러 일치 항목을 지정할 수도 있습니다. 이렇게 하면 제공된 모든 용어를 일치시키려고 시도합니다. 키워드 검색은 텍스트를 분할하고 검색 키워드와 부분적으로 일치하는 항목을 찾는 방식으로 수행되므로 특정 순서로 수행되지 않습니다. 검색에서 일반적인 불용어를 제외합니다(nltk 불용어 목록과 몇 가지 다른 일반적인 JSON 키워드 포함). Filtering 위의 필터를 기반으로 시스템은 입력 또는 출력에서 pythontensorflow를 검색하고, 입력에서 embedding을, 출력에서 finetune을 검색합니다.

입력/출력 키-값 쌍 기반 필터링

전체 텍스트 검색 외에도, 입력 및 출력의 특정 키-값 쌍을 기반으로 실행을 필터링할 수 있습니다. 이는 특히 구조화된 데이터를 다룰 때 더 정확한 필터링을 가능하게 합니다.
데이터를 체계적이고 검색 가능하게 유지하기 위해 최대 100개의 고유 키를 인덱싱합니다. 각 키는 값당 250자의 문자 제한도 있습니다. 데이터가 이 제한 중 하나를 초과하면 텍스트가 인덱싱되지 않습니다. 이는 빠르고 안정적인 성능을 보장하는 데 도움이 됩니다.
키-값 쌍을 기반으로 필터링하려면 필터 드롭다운에서 Input Key 또는 Output Key 필터를 선택합니다. 예를 들어, 다음 입력을 일치시키려면:
{
  "input": "What is the capital of France?"
}
Filters, Add Filter를 선택하여 필터링 옵션을 표시합니다. 그런 다음 Input Key를 선택하고 키로 input을 입력하고 값으로 What is the capital of France?를 입력합니다. Filtering 점 표기법을 사용하여 중첩된 키 이름을 선택함으로써 중첩된 키를 일치시킬 수도 있습니다. 예를 들어, 출력에서 중첩된 키를 일치시키려면:
{
  "documents": [
    {
      "page_content": "The capital of France is Paris",
      "metadata": {},
      "type": "Document"
    }
  ]
}
Output Key를 선택하고 키로 documents.page_content를 입력하고 값으로 The capital of France is Paris를 입력합니다. 이렇게 하면 중첩된 키 documents.page_content가 지정된 값과 일치합니다. Filtering 여러 키-값 필터를 추가하여 더 복잡한 쿼리를 만들 수 있습니다. 또한 아래와 같이 일반적인 키-값 쌍을 기반으로 빠르게 필터링하기 위해 오른쪽의 Filter Shortcuts를 사용할 수도 있습니다: Filtering

예시: 도구 호출 필터링

특정 도구 호출을 포함하는 트레이스를 검색하고자 하는 것은 일반적입니다. 도구 호출은 일반적으로 LLM 실행의 출력에 표시됩니다. 도구 호출을 필터링하려면 Output Key 필터를 사용합니다. 이 예시는 도구 호출을 필터링하는 방법을 보여주지만, 출력의 모든 키-값 쌍을 필터링하는 데 동일한 논리를 적용할 수 있습니다. 이 경우, 필터링하려는 출력이 다음과 같다고 가정하겠습니다:
{
  "generations": [
    [
      {
        "text": "",
        "type": "ChatGeneration",
        "message": {
          "lc": 1,
          "type": "constructor",
          "id": [],
          "kwargs": {
            "type": "ai",
            "id": "run-ca7f7531-f4de-4790-9c3e-960be7f8b109",
            "tool_calls": [
              {
                "name": "Plan",
                "args": {
                  "steps": [
                    "Research LangGraph's node configuration capabilities",
                    "Investigate how to add a Python code execution node",
                    "Find an example or create a sample implementation of a code execution node"
                  ]
                },
                "id": "toolu_01XexPzAVknT3gRmUB5PK5BP",
                "type": "tool_call"
              }
            ]
          }
        }
      }
    ]
  ],
  "llm_output": null,
  "run": null,
  "type": "LLMResult"
}
위의 예시에서 KV 검색은 각 중첩된 JSON 경로를 검색 및 필터링에 사용할 수 있는 키-값 쌍으로 매핑합니다. LangSmith는 다음과 같은 검색 가능한 키-값 쌍 세트로 분해합니다:
KeyValue
generations.typeChatGeneration
generations.message.typeconstructor
generations.message.kwargs.typeai
generations.message.kwargs.idrun-ca7f7531-f4de-4790-9c3e-960be7f8b109
generations.message.kwargs.tool_calls.namePlan
generations.message.kwargs.tool_calls.args.stepsResearch LangGraph's node configuration capabilities
generations.message.kwargs.tool_calls.args.stepsInvestigate how to add a Python code execution node
generations.message.kwargs.tool_calls.args.stepsFind an example or create a sample implementation of a code execution node
generations.message.kwargs.tool_calls.idtoolu_01XexPzAVknT3gRmUB5PK5BP
generations.message.kwargs.tool_calls.typetool_call
typeLLMResult
특정 도구 호출을 검색하려면 루트 실행 필터를 제거하면서 다음 Output Key 검색을 사용할 수 있습니다: generations.message.kwargs.tool_calls.name = Plan 이렇게 하면 tool_calls 이름이 Plan인 루트 및 비루트 실행이 일치합니다. Filtering

키-값 쌍의 부정 필터링

결과에서 특정 실행을 제외하기 위해 Metadata, Input Key, Output Key 필드에 다양한 유형의 부정 필터링을 적용할 수 있습니다. 예를 들어, 메타데이터 키 phone1234567890과 같지 않은 모든 실행을 찾으려면 Metadata Key 연산자를 is로 설정하고 Key 필드를 phone으로 설정한 다음, Value 연산자를 is not으로 설정하고 Value 필드를 1234567890으로 설정합니다. 이렇게 하면 1234567890을 제외한 모든 값을 가진 메타데이터 키 phone을 포함하는 모든 실행이 일치합니다. Filtering 특정 메타데이터 키가 없는 실행을 찾으려면 Key 연산자를 is not으로 설정합니다. 예를 들어, Key 연산자를 is not으로 설정하고 키를 phone으로 설정하면 메타데이터에 phone 필드가 없는 모든 실행이 일치합니다. Filtering 특정 키와 특정 값이 모두 없는 실행을 필터링할 수도 있습니다. 메타데이터에 키 phone도 없고 값이 1234567890인 필드도 없는 실행을 찾으려면 Key 연산자를 is not으로 설정하고 키를 phone으로, Value 연산자를 is not으로 설정하고 값을 1234567890으로 설정합니다. Filtering 마지막으로, 특정 키는 없지만 특정 값은 가진 실행을 필터링할 수도 있습니다. phone 키는 없지만 다른 키에 대해 1234567890 값이 있는 실행을 찾으려면 Key 연산자를 is not으로 설정하고 키를 phone으로, Value 연산자를 is로 설정하고 값을 1234567890으로 설정합니다. Filtering 부분 문자열 일치를 수행하려면 is not 대신 does not contain 연산자를 사용할 수 있습니다.

필터 저장

필터를 저장하면 자주 사용하는 필터 구성을 저장하고 재사용할 수 있습니다. 저장된 필터는 트레이싱 프로젝트에 특정합니다.

필터 저장

필터를 구성한 후 필터 박스에서 Save filter 버튼을 클릭합니다. 필터의 이름과 설명을 지정하는 대화 상자가 표시됩니다. Filtering

저장된 필터 사용

필터를 저장한 후에는 필터 바에서 빠른 필터로 사용할 수 있습니다. 저장된 필터가 3개 이상인 경우, 2개만 직접 표시되고 나머지는 “more” 메뉴를 통해 접근할 수 있습니다. 저장된 필터 바의 설정 아이콘을 사용하여 기본 저장된 필터를 선택적으로 숨길 수 있습니다. Filtering

저장된 필터 업데이트

필터를 선택한 상태에서 필터 파라미터를 변경합니다. 그런 다음 Update filter > Update를 클릭하여 필터를 업데이트합니다. 동일한 메뉴에서 Update filter > Create new를 클릭하여 새 저장된 필터를 생성할 수도 있습니다.

저장된 필터 삭제

저장된 필터 바의 설정 아이콘을 클릭하고 휴지통 아이콘을 사용하여 필터를 삭제합니다.

필터 복사

구성된 필터를 복사하여 동료와 공유하거나, 나중에 재사용하거나, API 또는 SDK에서 프로그래밍 방식으로 실행을 쿼리할 수 있습니다. 필터를 복사하려면 먼저 UI에서 필터를 생성합니다. 그런 다음 오른쪽 상단 모서리에 있는 복사 버튼을 클릭할 수 있습니다. 트리 또는 트레이스 필터를 구성한 경우에도 복사할 수 있습니다. 이렇게 하면 LangSmith 쿼리 언어로 필터를 나타내는 문자열이 제공됩니다. 예: and(eq(is_root, true), and(eq(feedback_key, "user_score"), eq(feedback_score, 1))). 쿼리 언어 구문에 대한 자세한 내용은 이 참조를 확인하세요. Copy Filter

트레이스 뷰 내에서 실행 필터링

트레이스 뷰 내에서 직접 필터를 적용할 수도 있으며, 이는 많은 수의 실행이 있는 트레이스를 검토할 때 유용합니다. 메인 실행 테이블 뷰에서 사용할 수 있는 동일한 필터를 여기에서 적용할 수 있습니다. 기본적으로 필터와 일치하는 실행만 표시됩니다. 트레이스 트리의 더 넓은 컨텍스트 내에서 일치하는 실행을 보려면 뷰 옵션을 “Filtered Only”에서 “Show All” 또는 “Most relevant”로 전환하세요. Filtering within trace view

LangSmith 쿼리 언어로 원시 쿼리 수동 지정

이전에 구성된 필터를 복사한 경우, 향후 세션에서 이 원시 쿼리를 수동으로 적용하고 싶을 수 있습니다. 이를 수행하려면 필터 팝오버 하단의 Advanced filters를 클릭합니다. 그런 다음 텍스트 상자에 원시 쿼리를 붙여넣을 수 있습니다. 이는 기존 쿼리를 덮어쓰지 않고 해당 쿼리를 기존 쿼리에 추가합니다. Raw Query

AI 쿼리를 사용하여 쿼리 자동 생성 (실험적)

때로는 지정할 정확한 쿼리를 파악하는 것이 어려울 수 있습니다! 이를 쉽게 하기 위해 AI Query 기능을 추가했습니다. 이를 통해 구성하려는 필터를 자연어로 입력하면 유효한 쿼리로 변환됩니다. 예: “All runs longer than 10 seconds” AI Query

고급 필터

루트의 속성을 기반으로 중간 실행(스팬) 필터링

일반적인 개념은 루트 실행이 특정 속성을 가진 트레이스의 일부인 중간 실행을 필터링하는 것입니다. 예를 들어, 루트 실행에 긍정적(또는 부정적) 피드백이 연결된 특정 유형의 중간 실행을 필터링하는 것입니다. 이를 수행하려면 먼저 중간 실행에 대한 필터를 설정합니다(위의 섹션 참조). 그런 다음 다른 필터 규칙을 추가할 수 있습니다. 필터 맨 아래에 있는 Advanced Filters 링크를 클릭할 수 있습니다. 이렇게 하면 Trace filters를 추가할 수 있는 새 모달이 열립니다. 이러한 필터는 이미 필터링한 개별 실행의 모든 상위 실행의 트레이스에 적용됩니다. Filtering

자식 실행이 특정 속성을 가진 실행(스팬) 필터링

이는 위의 반대입니다. 특정 유형의 하위 실행을 가진 실행을 검색하고 싶을 수 있습니다. 예를 들어, 이름이 Foo인 하위 실행을 가진 모든 트레이스를 검색하는 것입니다. 이는 Foo가 항상 호출되는 것은 아니지만 호출되는 경우를 분석하고 싶을 때 유용합니다. 이를 수행하려면 필터 맨 아래에 있는 Advanced Filters 링크를 클릭할 수 있습니다. 이렇게 하면 Tree filters를 추가할 수 있는 새 모달이 열립니다. 이렇게 하면 지정한 규칙이 이미 필터링한 개별 실행의 모든 자식 실행에 적용됩니다. Filtering

예시: 트리에 도구 호출 필터가 포함된 모든 실행 필터링

위의 도구 호출 필터링 예시를 확장하여, 트리에 도구 호출 필터가 포함된 모든 실행을 필터링하려면 고급 필터 설정에서 트리 필터를 사용할 수 있습니다: Filtering
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I