이 문서는 대화형 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
Service API를 사용해 트레이스를 로깅하고 쿼리하기
- 단순한 LLM call과 response의 mock을 만들어 Weave에 로깅합니다.
- 더 복잡한 LLM call과 response의 mock을 만들어 Weave에 로깅합니다.
- 로깅된 트레이스에 대해 샘플 lookup 쿼리를 실행합니다.
로깅된 트레이스 보기
이 가이드의 코드를 실행하면 생성되는 모든 Weave 트레이스는 Weave 프로젝트(team_id\project_id로 지정)의 Traces 탭으로 이동한 다음 트레이스 이름을 선택해 확인할 수 있습니다.
시작하기 전에 사전 요구 사항을 완료하세요.
사전 요구 사항: 변수 및 엔드포인트 설정
https://trace.wandb.ai/call/starthttps://trace.wandb.ai/call/endhttps://trace.wandb.ai/calls/stream_query
project_id: 트레이스를 로깅할 W&B 프로젝트의 이름입니다.team_id: W&B 팀 이름입니다.wandb_token: W&B API 키입니다.
단순한 트레이스
단순한 트레이스 시작하기
payload_start를 생성하고 url_start 엔드포인트를 사용해 Weave에 로깅합니다. payload_start 객체는 쿼리 Why is the sky blue?로 OpenAI의 gpt-4o를 호출하는 call을 모사합니다.
성공하면 이 코드는 트레이스가 시작되었음을 알리는 메시지를 출력합니다:
단순한 트레이스 종료
payload_end를 생성한 뒤 url_end 엔드포인트를 사용해 이를 Weave에 로깅합니다. payload_end 객체는 쿼리 Why is the sky blue?에 대한 OpenAI’s gpt-4o의 응답을 모방합니다. 이 객체는 Weave 대시보드의 트레이스 뷰에서 가격 요약 정보와 chat completion이 생성되도록 형식이 맞춰져 있습니다.
성공하면 이 코드는 트레이스가 완료되었음을 알리는 메시지를 출력합니다:
복잡한 트레이스
복잡한 트레이스 시작
payload_parent_start)를 초기화합니다. 이 경우 오퍼레이션은 사용자 쿼리 Can you summarize the key points of this document?를 처리하는 것입니다.
payload_parent_start 객체는 다단계 워크플로의 첫 번째 step을 나타내며, url_start 엔드포인트를 사용해 Weave에 오퍼레이션을 로깅합니다.
성공하면 이 코드는 부모 call이 로깅되었음을 나타내는 메시지를 출력합니다:
RAG 문서 조회용 하위 span 추가
payload_child_start 객체로 시작되며, 여기에는 다음이 포함됩니다:
trace_id: 이 하위 span을 부모 트레이스에 연결합니다.parent_id: 하위 span을 부모 오퍼레이션에 연결합니다.inputs: 검색 쿼리를 로깅합니다. 예:"This is a search query of the documents I'm looking for."
url_start 엔드포인트 호출이 성공하면, 코드는 자식 call이 시작되어 완료되었음을 나타내는 메시지를 출력합니다:
LLM completion call에 대한 하위 span 추가
payload_child_start 객체로 시작되며, 여기에는 다음이 포함됩니다:
trace_id: 이 하위 span을 부모 트레이스에 연결합니다.parent_id: 이 하위 span을 상위 워크플로에 연결합니다.inputs: 사용자 쿼리와 추가된 문서 컨텍스트를 포함한 LLM 입력 메시지를 log합니다.model: 오퍼레이션에 사용된 모델(gpt-4o)을 지정합니다.
payload_child_end 객체가 output 필드에 LLM이 생성한 응답을 로깅하면서 트레이스를 종료합니다. 사용 요약 정보도 함께 로깅됩니다.
성공하면 코드는 LLM child span 트레이스가 시작되고 종료되었음을 알리는 메시지를 출력합니다:
복잡한 트레이스 종료
payload_parent_end 객체로 완료되며, 여기에는 다음이 포함됩니다.
id: 최초 상위 트레이스 시작 시의parent_call_idoutput: 전체 워크플로의 최종 출력을 나타냅니다.summary: 전체 워크플로의 사용 데이터를 통합합니다.prompt_tokens: 모든 프롬프트에 사용된 총 토큰 수입니다.completion_tokens: 모든 응답에서 생성된 총 토큰 수입니다.total_tokens: 워크플로 전체의 총 토큰 수입니다.requests: 수행된 총 요청 수입니다(이 경우1).
조회 쿼리 실행
inputs.model 필드가 gpt-4o인 트레이스만 필터링합니다.
query_payload 객체에는 다음이 포함됩니다:
project_id: 조회할 팀과 프로젝트를 식별합니다.filter: 쿼리가 트레이스 루트(최상위 트레이스)만 반환하도록 합니다.query:$exprOperator를 사용해 필터 로직을 정의합니다.$getField:inputs.model필드를 조회합니다.$literal:inputs.model이"gpt-4o"인 트레이스와 일치시킵니다.
limit: 쿼리 결과를 10,000개로 제한합니다.offset: 첫 번째 결과부터 쿼리를 시작합니다.sort_by:started_at타임스탬프를 기준으로 결과를 내림차순 정렬합니다.include_feedback: 결과에서 피드백 데이터를 제외합니다.