이 노트북은 대화형입니다. 로컬에서 실행하거나 아래 링크를 통해 열 수 있습니다:
Service API를 사용해 트레이스를 로그하고 쿼리하기
- 간단한 LLM 호출과 응답을 모킹(mock)하고, 이를 Weave에 로그합니다.
- 더 복잡한 LLM 호출과 응답을 모킹하고, 이를 Weave에 로그합니다.
- 로그된 트레이스에 대해 샘플 조회 쿼리를 실행합니다.
로그된 트레이스 보기
이 가이드의 코드를 실행할 때 생성되는 모든 Weave 트레이스는 team_id\project_id로 지정된 Weave 프로젝트의 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 객체는 OpenAI의 gpt-4o에 Why is the sky blue?라는 질문을 보내는 호출을 모사합니다.
성공하면 이 코드는 트레이스가 시작되었음을 알리는 메시지를 출력합니다:
간단한 트레이스 종료
payload_end를 생성하고 url_end 엔드포인트를 통해 Weave에 로깅합니다. payload_end 객체는 Why is the sky blue?라는 쿼리에 대해 OpenAI의 gpt-4o가 반환하는 응답을 모사합니다. 이 객체는 요금 요약 정보와 채팅 완료 결과가 Weave Dashboard의 트레이스 뷰에서 생성되도록 포맷되어 있습니다.
성공하면, 이 코드는 트레이스가 완료되었음을 나타내는 메시지를 출력합니다:
복잡한 트레이스
복잡한 트레이스 시작하기
payload_parent_start)를 초기화한다. 이 경우 작업은 사용자 질의 Can you summarize the key points of this document? 를 처리하는 것이다.
payload_parent_start 객체는 여러 단계로 구성된 워크플로의 첫 단계를 나타내며, url_start 엔드포인트를 사용해 Weave에 해당 작업을 로그로 남긴다.
성공하면 이 코드는 부모 호출이 로그에 기록되었음을 나타내는 메시지를 출력한다:
RAG 문서 조회를 위한 자식 스팬 추가
payload_child_start 객체로 시작되며, 여기에는 다음이 포함됩니다:
trace_id: 이 자식 스팬을 상위 트레이스와 연결합니다.parent_id: 자식 스팬을 상위 작업과 연결합니다.inputs: 검색 쿼리를 로깅합니다. 예:"This is a search query of the documents I'm looking for."
url_start 엔드포인트 호출이 성공하면, 코드에서는 자식 호출이 시작되고 완료되었음을 나타내는 메시지를 출력합니다:
LLM completion 호출을 위한 자식 스팬 추가
payload_child_start 객체에서 시작됩니다:
trace_id: 이 자식 스팬을 상위 트레이스에 연결합니다.parent_id: 자식 스팬을 전체 워크플로에 연결합니다.inputs: 사용자 질의와 추가된 문서 컨텍스트를 포함하여 LLM에 대한 입력 메시지를 로깅합니다.model: 연산에 사용된 모델을 지정합니다 (gpt-4o).
payload_child_end 객체가 output 필드에 LLM이 생성한 응답을 로깅하면서 트레이스를 종료합니다. 사용량 요약 정보도 함께 로깅됩니다.
성공하면 코드에서 LLM 자식 span 트레이스가 시작되고 종료되었음을 알리는 메시지를 출력합니다:
복잡한 트레이스 종료하기
payload_parent_end 객체를 사용해 종료한다:
id: 최초 상위 트레이스 시작 시 사용된parent_call_id.output: 전체 워크플로의 최종 결과를 나타낸다.summary: 전체 워크플로에 대한 사용량 데이터를 통합한다.prompt_tokens: 모든 프롬프트에 사용된 토큰의 총합.completion_tokens: 모든 응답에서 생성된 토큰의 총합.total_tokens: 워크플로 전체의 토큰 합계.requests: 발생한 요청의 총 개수(이 경우에는1).
조회 쿼리 실행하기
inputs.model 필드가 gpt-4o와 동일한 trace만 필터링합니다.
query_payload 객체에는 다음 항목이 포함됩니다.
project_id: 조회할 팀과 프로젝트를 지정합니다.filter: 쿼리가 trace 루트(최상위 trace)만 반환하도록 합니다.query:$expr연산자를 사용해 필터 로직을 정의합니다.$getField:inputs.model필드를 가져옵니다.$literal:inputs.model이"gpt-4o"와 동일한 trace와 일치시킵니다.
limit: 쿼리 결과를 최대 10,000개로 제한합니다.offset: 쿼리를 첫 번째 결과부터 시작합니다.sort_by:started_at타임스탬프를 기준으로 내림차순 정렬합니다.include_feedback: 결과에서 피드백 데이터를 제외합니다.