커스텀 출력 렌더링

커스텀 출력 렌더링

커스텀 출력 렌더링을 사용하면 자체 커스텀 HTML 페이지로 런 출력과 데이터셋 참조 출력을 시각화할 수 있어요. 이는 다음 경우에 특히 유용해요:

  • 도메인별 형식 지정: 의료 기록, 법률 문서 또는 기타 특수 데이터 유형을 원래 형식으로 표시.
  • 커스텀 시각화: 숫자 또는 구조화된 출력 데이터에서 차트, 그래프 또는 다이어그램 생성.

이 페이지에서 다음을 배우게 됩니다:

출처: 문서

본문

커스텀 출력 렌더링 구성하기

두 가지 수준에서 커스텀 렌더링을 구성해요:

  • 데이터셋의 경우: 해당 데이터셋과 연관된 모든 런에, 실험, 런 상세 창 또는 주석 큐 등 어디에 나타나든 커스텀 렌더링을 적용해요.
  • 주석 큐의 경우: 특정 주석 큐 내의 모든 런에, 어느 데이터셋에서 왔는지와 관계없이 커스텀 렌더링을 적용해요. 이는 데이터셋 수준 구성보다 우선해요.

추적 프로젝트의 경우

추적 프로젝트에 대한 커스텀 출력 렌더링을 구성하려면:

Tracing project settings showing custom output rendering configuration

  1. Tracing Projects 페이지로 이동하세요.
  2. 기존 추적 프로젝트를 클릭하거나 새로 만드세요.
  3. 추적 프로젝트 편집 창에서 Custom Output Rendering 섹션으로 스크롤하세요.
  4. Enable custom output rendering을 켜세요.
  5. URL 필드에 웹페이지 URL을 입력하세요.
  6. Save를 클릭하세요.

데이터셋의 경우

데이터셋에 대한 커스텀 출력 렌더링을 구성하려면:

Dataset page with three-dot menu showing Custom Output Rendering option

  1. Datasets & Experiments 페이지에서 데이터셋으로 이동하세요.
  2. 오른쪽 상단의 (세 점 메뉴)을 클릭하세요.
  3. Custom Output Rendering을 선택하세요.
  4. Enable custom output rendering을 켜세요.
  5. URL 필드에 웹페이지 URL을 입력하세요.
  6. Save를 클릭하세요.

Custom Output Rendering modal with fields filled in

주석 큐의 경우

주석 큐에 대한 커스텀 출력 렌더링을 구성하려면:

Annotation queue settings showing custom output rendering configuration

  1. Annotation Queues 페이지로 이동하세요.
  2. 기존 주석 큐를 클릭하거나 새로 만드세요.
  3. 주석 큐 설정 창에서 Custom Output Rendering 섹션으로 스크롤하세요.
  4. Enable custom output rendering을 켜세요.
  5. URL 필드에 웹페이지 URL을 입력하세요.
  6. Save 또는 Create를 클릭하세요.

여러 수준에서 커스텀 렌더링 설정이 적용되면 우선순위는 다음과 같아요: 주석 큐 > 데이터셋 > 추적 프로젝트.

커스텀 렌더러 구축하기

메시지 형식 이해하기

HTML 페이지는 postMessage API를 통해 출력 데이터를 받아요. LangSmith는 다음 구조의 메시지를 보내요:

{
  type: "output" | "reference",
  data: {
    // The outputs (actual output or reference output)
    // Structure varies based on your application
  },
  metadata: {
    inputs: {
      // The inputs that generated this output
      // Structure varies based on your application
    }
  }
}
  • type: 실제 출력("output")인지 참조 출력("reference")인지 나타내요.
  • data: 출력 데이터 자체.
  • metadata.inputs: 이 출력을 생성한 입력 데이터로, 맥락을 위해 제공돼요.

메시지 전달 타이밍: LangSmith는 페이지가 느리게 로드되더라도 데이터를 수신하도록 지수 백오프 재시도 메커니즘을 사용해요. 메시지는 증가하는 지연(100ms, 200ms, 400ms, 800ms, 1600ms, 3200ms)으로 최대 6번 전송돼요.

구현 예시

이 예시는 들어오는 postMessage 이벤트를 수신해 페이지에 표시해요. 각 메시지에 번호가 매겨지고 JSON으로 형식이 지정되어, LangSmith가 렌더러로 보내는 데이터 구조를 쉽게 검사할 수 있어요.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>PostMessage Echo</title>
        <link rel="stylesheet" href="https://unpkg.com/sakura.css/css/sakura.css" />
    </head>
    <body>
        <h1>PostMessage Messages</h1>
        <div id="messages"></div>
        <script>
            let count = 0;
            window.addEventListener("message", (event) => {
                count++;
                const header = document.createElement("h3");
                header.appendChild(document.createTextNode(`Message ${count}`));
                const code = document.createElement("code");
                code.appendChild(document.createTextNode(JSON.stringify(event.data, null, 2)));
                const pre = document.createElement("pre");
                pre.appendChild(code);
                document.getElementById("messages").appendChild(header);
                document.getElementById("messages").appendChild(pre);
            });
        </script>
    </body>
</html>

커스텀 렌더링이 표시되는 위치

활성화하면 커스텀 렌더링이 다음 위치에서 기본 출력 보기를 대체해요:

  • 실험 비교 뷰: 여러 실험의 출력을 비교할 때:

Experiment comparison view showing custom rendering

  • 런 상세 창: 데이터셋과 연관된 런을 볼 때:

Run detail pane showing custom rendering

  • 주석 큐: 주석 큐에서 런을 검토할 때:

Annotation queue showing custom rendering

더 알아보기 (Learn more)