트레이스 URL

트레이스 URL (Trace URLs)

Langfuse에서 각 트레이스에는 고유한 URL이 있어요. 이 URL은 다른 사람과 공유하거나, 나중에 다시 접근할 때 사용할 수 있어요. 이 문서에서는 SDK에서 트레이스 URL을 가져오는 방법과 트레이스를 공개 링크로 공유하는 방법을 알려드릴게요.

출처: 문서

본문

트레이스 URL 가져오기

때로는 SDKD에서 트레이스 URL을 직접 가져오고 싶을 때가 있어요. 예를 들어 로그에 추가하거나, 노트북에서 실험을 돌릴 때 인터랙티브하게 확인하고 싶은 경우가 그렇죠.

Python SDKJS/TS SDKLangchain (JS/TS)

@observe() 데코레이터를 사용할 때:

from langfuse import observe, get_client

@observe()
def process_data():
    langfuse = get_client()

    # Get the URL of the current trace
    trace_url = langfuse.get_trace_url()
    print(f"View trace at: {trace_url}")

    # or pass the trace id
    trace_id = langfuse.get_current_trace_id()
    trace_url = langfuse.get_trace_url(trace_id=trace_id)

컨텍스트 매니저(context manager)를 사용할 때:

from langfuse import get_client

langfuse = get_client()

with langfuse.start_as_current_observation(as_type="span", name="process-request") as span:
    # Get the URL of this trace
    trace_url = langfuse.get_trace_url()
    print(f"View trace at: {trace_url}")

    # or pass the trace id
    trace_id = langfuse.get_current_trace_id()
    trace_url = langfuse.get_trace_url(trace_id=trace_id)

JS/TS SDK로 트레이스의 URL을 가져와요.

import { LangfuseClient } from "@langfuse/client";
import { startObservation } from "@langfuse/tracing";

const langfuse = new LangfuseClient();

const rootSpan = startObservation("my-trace");
const traceUrl = await langfuse.getTraceUrl(rootSpan.traceId);

console.log("Trace URL: ", traceUrl);

Langfuse SDK와 Langchain 통합의 상호운용성(interoperability)을 이용해 트레이스 URL을 가져올 수도 있어요 (interop docs).

import { CallbackHandler } from "@langfuse/langchain";
import { startActiveObservation } from "@langfuse/tracing";
import { LangfuseClient } from "@langfuse/client";

const langfuse = new LangfuseClient();
const langfuseHandler = new CallbackHandler();

await startActiveObservation("langchain-call", async (span) => {
  await chain.invoke(
    { input: "<user_input>" },
    { callbacks: [langfuseHandler] },
  );

  // Get the trace URL
  const traceUrl = await langfuse.getTraceUrl(span.traceId);
  console.log("Trace URL: ", traceUrl);
});

URL로 트레이스 공유하기

기본적으로 Langfuse 프로젝트의 멤버만 트레이스를 볼 수 있어요.

트레이스를 public으로 만들면 공개 링크로 공유할 수 있어요. 이렇게 하면 로그인하거나 프로젝트 멤버가 아니어도 다른 사람이 트레이스를 볼 수 있게 돼요.

예시: https://cloud.langfuse.com/project/clkpwwm0m000gmm094odg11gi/traces/2d6b96f2-0a4d-4366-99a5-1ad558c66e99

Langfuse UIPython SDKJS/TS SDK

@observe() 데코레이터를 사용할 때:

from langfuse import observe, get_client

@observe()
def process_data():
    langfuse = get_client()

    # Make the current trace public
    langfuse.set_current_trace_as_public()

컨텍스트 매니저를 사용할 때:

from langfuse import get_client

langfuse = get_client()

with langfuse.start_as_current_observation(as_type="span", name="process-request") as span:
    # Make this trace public
    span.set_trace_as_public()

    # Get the URL to share
    trace_id = langfuse.get_current_trace_id()
    trace_url = langfuse.get_trace_url(trace_id=trace_id)
    print(f"Share this trace at: {trace_url}")

JS/TS SDK에서는 이렇게 해요.

import { startObservation } from "@langfuse/tracing";

const rootSpan = startObservation("my-trace");

rootSpan.setTraceAsPublic();

rootSpan.end();

더 알아보기 (Learn more)