Weights & Biases Weave

Weights & Biases Weave

Weights & Biases Weave로 Haystack 파이프라인을 트레이싱하는 방법을 알아봐요. Haystack 트레이싱 도구가 수집한 정보(API 호출, 컨텍스트 데이터, 프롬프트 등)를 Weights & Biases로 보내서 파이프라인 실행의 전체 트레이스를 볼 수 있어요.

출처: 문서

본문

  • 트레이서 클래스: WeaveTracer
  • 활성화 방법: tracing.enable_tracing(WeaveTracer(project_name="...")) 로 트레이서를 활성화하거나, WeaveConnector 컴포넌트를 파이프라인에 추가
  • 콘텐츠 트레이싱: 필요. HAYSTACK_CONTENT_TRACING_ENABLED 를 true 로 설정
  • 패키지: weave-haystack
  • API 참조: Weave

개요 (Overview)

Weights & Biases에서 파이프라인 실행을 트레이싱하고 시각화해요. Haystack 트레이싱 도구가 수집한 정보 — API 호출, 컨텍스트 데이터, 프롬프트 같은 — 가 Weights & Biases로 보내져, 파이프라인 실행의 전체 트레이스를 볼 수 있어요.

설치 (Installation)

weave-haystack 패키지를 설치하세요:

pip install weave-haystack

사전 조건 (Prerequisites)

Weave 계정이 필요해요. Weights & Biases 웹사이트에서 무료로 가입할 수 있어요.

  • WANDB_API_KEY 환경 변수에 Weights & Biases API 키를 설정하세요. 로그인 후 홈 페이지에서 API 키를 찾을 수 있어요.
  • HAYSTACK_CONTENT_TRACING_ENABLED 환경 변수를 true 로 설정하세요.

사용법 (Usage)

컴포넌트를 추가하지 않고도 WeaveTracer 를 직접 활성화해 모든 Haystack 파이프라인을 트레이싱할 수 있어요. project_name 은 Weave 프로젝트에 표시될 이름이에요.

import os
os.environ["HAYSTACK_CONTENT_TRACING_ENABLED"] = "true"

from haystack import Pipeline, tracing
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import OpenAIChatGenerator
from haystack.dataclasses import ChatMessage
from haystack_integrations.tracing.weave import WeaveTracer

# Enable the Weave tracer
tracing.enable_tracing(WeaveTracer(project_name="test_pipeline"))

pipe = Pipeline()
pipe.add_component("prompt_builder", ChatPromptBuilder())
pipe.add_component("llm", OpenAIChatGenerator())
pipe.connect("prompt_builder.prompt", "llm.messages")

messages = [
    ChatMessage.from_system(
        "Always respond in German even if some input data is in other languages.",
    ),
    ChatMessage.from_user("Tell me about {{location}}"),
]
response = pipe.run(
    data={
        "prompt_builder": {
            "template_variables": {"location": "Berlin"},
            "template": messages,
        },
    },
)
print(response["llm"]["replies"][0])

그 후 https://wandb.ai//projects 에서 지정한 프로젝트 이름 아래에 파이프라인의 전체 트레이스를 볼 수 있어요.

대안: WeaveConnector 컴포넌트

트레이싱을 파이프라인 정의의 일부로 관리하고 싶다면, 대신 WeaveConnector 컴포넌트를 추가할 수 있어요. 실행되는 즉시 같은 Weave 트레이싱을 활성화해요.

참고: 전체 사용 예시는 WeaveConnector 문서 페이지를 참고하세요.

더 알아보기 (Learn more)