고객

고객 (Customers)

같은 계정·조직·테넌트에 속하는 최종 사용자들을 그룹으로 묶는 방법을 다루는 페이지예요. 트레이스에 고객을 지정하면 Confident AI에서 고객별로 활동·품질·사용량·비용을 필터링하고 비교할 수 있어요. 고객 ID는 애플리케이션에서 가져오는 값이라 도메인이나 조직 ID일 필요가 없답니다.

출처: 문서

본문

개요 (Overview)

고객(customers) 기능으로 같은 계정·조직·테넌트에 속한 최종 사용자들을 그룹화할 수 있어요. 트레이스에 고객을 설정하면 Confident AI에서 고객별로 활동·품질·사용량·비용을 필터링하고 비교할 수 있죠.

고객 ID는 애플리케이션에서 가져와요. 도메인이거나 Confident AI 조직 ID일 필요는 없어요.

런타임에서 고객 설정 (Set Customers at Runtime)

자동 계측된 호출이 시작되기 전에 고객을 알고 있다면 트레이스 컨텍스트(trace context)를 사용해요:

Python

from confident_trace import trace_context

def llm_app(query: str, customer_id: str):
    with trace_context(customer_id=customer_id):
        return agent.invoke(query)

TypeScript

import { traceContext } from "confident-trace";

const llmApp = (query: string, customerId: string) =>
  traceContext({ customerId }, () => agent.invoke(query));

고객 필드 설정 (Set Customer Fields)

관측소에서 트레이스를 쉽게 식별하도록 고객에 표시 이름(display name)을 붙일 수 있어요. customer 객체를 넘기면 ID와 이름을 함께 설정할 수 있어요:

Python

with trace_context(customer={"id": "customer-42", "name": "Acme Corp"}):
    return agent.invoke(query)

TypeScript

return traceContext(
  { customer: { id: "customer-42", name: "Acme Corp" } },
  () => agent.invoke(query),
);

고객을 식별하는 방법은 두 가지 중 하나를 골라 쓰면 돼요:

  • ID만 필요할 때는 customer_id / customerId를 넘겨요.
  • 표시 이름도 함께 설정하고 싶다면 customer 객체를 넘겨요. 이 객체는 id를 포함하고 name도 넣을 수 있어요.

같은 두 옵션은 turn(), 트레이스 컨텍스트, 그리고 트레이스 업데이트 헬퍼에서도 쓸 수 있어요. Python은 span()을 만들 때도 이 값들을 받아들이고, TypeScript의 span() 또는 withSpan() 콜백 안에서는 updateTrace()를 호출하면 돼요.

고객에 사용자 연결 (Associate a User with a Customer)

같은 트레이스에 고객과 사용자를 함께 설정할 수 있어요:

with trace_context(
    customer={"id": "customer-42", "name": "Acme Corp"},
    user={"id": "user-7", "name": "Marta"},
):
    agent.invoke(query)

ID는 애플리케이션에서 안정적인 식별자여야 해요. ID나 이름에 비밀번호·자격증명 같은 것을 넣는 건 피하는 게 좋아요.

다음 단계 (Next Steps)

Users

애플리케이션과 상호작용하는 개별 최종 사용자를 추적해요.

Trace Context

자동 계측된 트레이스에 고객·사용자 정체성을 추가해요.

더 알아보기

  • Track Users in Traces — 사용자 ID로 개별 사용자의 비용·활동을 추적해요.
  • Threads — 트레이스를 대화로 묶어 다중 턴을 평가해요.