고객
고객 (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 — 트레이스를 대화로 묶어 다중 턴을 평가해요.