메인 콘텐츠로 건너뛰기

API 개요


출처

class FlushStatus

현재 진행 중인 플러시 작업에 대한 상태 정보입니다.
출처

class PendingJobCounts

각 유형별 대기 중인 작업 수입니다.
출처

class WeaveClient

출처

메서드 __init__

__init__(
    entity: 'str',
    project: 'str',
    server: 'TraceServerInterface',
    ensure_project_exists: 'bool' = True
)

property num_outstanding_jobs

모든 executor와 서버에서 대기 중인 작업의 총 개수를 반환합니다. 이 속성은 메인 스레드를 차단하지 않고 백그라운드 작업의 진행 상황을 확인하는 데 사용할 수 있습니다. 반환값:
  • int: 대기 중인 작업의 총 개수

출처

메서드 add_cost

add_cost(
    llm_id: 'str',
    prompt_token_cost: 'float',
    completion_token_cost: 'float',
    effective_date: 'datetime | None' = None,
    prompt_token_cost_unit: 'str | None' = 'USD',
    completion_token_cost_unit: 'str | None' = 'USD',
    provider_id: 'str | None' = 'default'
) → CostCreateRes
현재 프로젝트에 비용을 추가합니다. 예시:
client.add_cost(llm_id="my_expensive_custom_model", prompt_token_cost=1, completion_token_cost=2)
client.add_cost(llm_id="my_expensive_custom_model", prompt_token_cost=500, completion_token_cost=1000, effective_date=datetime(1998, 10, 3))
인자(Args):
  • llm_id: LLM의 ID입니다. 예: “gpt-4o-mini-2024-07-18”
  • prompt_token_cost: 프롬프트 토큰당 비용입니다. 예: .0005
  • completion_token_cost: 컴플리션 토큰당 비용입니다. 예: .0015
  • effective_date: 기본값은 현재 날짜입니다. datetime.datetime 객체입니다.
  • provider_id: LLM 제공자의 ID입니다. 기본값은 “default”입니다. 예: “openai”
  • prompt_token_cost_unit: 프롬프트 토큰 비용의 단위입니다. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 향후 비용에 사용할 단위/통화 유형을 지정하는 데 사용될 예정입니다. 예: “tokens” 또는 “time”)
  • completion_token_cost_unit: 컴플리션 토큰 비용의 단위입니다. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 향후 비용에 사용할 단위/통화 유형을 지정하는 데 사용될 예정입니다. 예: “tokens” 또는 “time”) 반환값(Returns): CostCreateRes 객체입니다. ids라는 이름의 튜플 리스트 필드 하나를 가집니다. 각 튜플은 llm_id와 생성된 cost 객체의 id를 포함합니다.

출처

method clear_wandb_run_context

clear_wandb_run_context() → None
현재 설정된 wandb run 컨텍스트 오버라이드를 해제합니다. 이 메서드를 호출한 이후에는 호출 시 run_id 및 step 정보에 대해 (사용 가능한 경우) 전역 wandb.run을 다시 사용하게 됩니다. 예시:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# ... 일부 호출 수행 ...
client.clear_wandb_run_context()
# 이제 호출은 전역 wandb.run을 다시 사용합니다

출처

method create_call

create_call(
    op: 'str | Op',
    inputs: 'dict[str, Any]',
    parent: 'Call | None' = None,
    attributes: 'dict[str, Any] | None' = None,
    display_name: 'str | Callable[[Call], str] | None' = None,
    use_stack: 'bool' = True,
    _call_id_override: 'str | None' = None
) → Call
런타임 스택에 호출을 생성한 뒤 로그로 남기고 푸시합니다. Args:
  • op: 호출을 생성하는 연산 또는 익명 연산의 이름.
  • inputs: 해당 연산에 대한 입력.
  • parent: 부모 호출. parent가 제공되지 않으면 현재 run이 부모로 사용됩니다.
  • display_name: 호출의 표시 이름. 기본값은 None입니다.
  • attributes: 호출의 속성. 기본값은 None입니다.
  • use_stack: 호출을 런타임 스택에 푸시할지 여부. 기본값은 True입니다. Returns: 생성된 Call 객체를 반환합니다.

출처

메서드 delete_all_object_versions

delete_all_object_versions(object_name: 'str') → int
객체의 모든 버전을 삭제합니다. Args:
  • object_name: 모든 버전을 삭제할 객체의 이름입니다. Returns: 삭제된 버전의 개수입니다.

출처

메서드 delete_all_op_versions

delete_all_op_versions(op_name: 'str') → int
op의 모든 버전을 삭제합니다. Args:
  • op_name: 버전을 삭제할 op의 이름입니다. Returns: 삭제된 버전 수입니다.

출처

메서드 delete_call

delete_call(call: 'Call') → None

출처

메서드 delete_calls

delete_calls(call_ids: 'list[str]') → None
ID를 사용하여 호출을 삭제합니다. 호출을 삭제하면 해당 호출의 모든 자식도 함께 삭제됩니다. 인자:
출처

메서드 delete_object_version

delete_object_version(object: 'ObjectRef') → None

출처

메서드 delete_object_versions

delete_object_versions(object_name: 'str', digests: 'list[str]') → int
객체의 특정 버전을 삭제합니다.
  • call_ids: 삭제할 호출 ID 목록. 예: [“2F0193e107-8fcf-7630-b576-977cc3062e2e”] Args:
  • object_name: 버전을 삭제할 객체의 이름입니다.
  • digests: 삭제할 다이제스트 목록입니다. “latest” 또는 “v0”와 같은 별칭을 포함할 수 있습니다. Returns: 삭제된 버전 수입니다.

출처

method delete_op_version

delete_op_version(op: 'OpRef') → None

출처

메서드 fail_call

fail_call(call: 'Call', exception: 'BaseException') → None
예외를 발생시켜 호출을 실패로 처리합니다. finish_call을 위한 편의 메서드입니다.
출처

메서드 finish

finish(
    use_progress_bar: 'bool' = True,
    callback: 'Callable[[FlushStatus], None] | None' = None
) → None
모든 백그라운드 태스크가 처리되도록 즉시 실행합니다. 이 메서드는 현재 대기열에 있는 모든 잡이 처리될 때까지 실행을 차단하며, 보류 중인 태스크의 상태를 보여 주기 위해 진행률 표시줄을 표시합니다. 메인 스레드 실행 중에도 작업이 병렬로 처리되도록 보장하며, 사용자 코드가 서버로 데이터가 업로드되기 전에 완료되는 경우 성능을 향상시킬 수 있습니다. 인수:
출처

method finish_call

finish_call(
    call: 'Call',
    output: 'Any' = None,
    exception: 'BaseException | None' = None,
    op: 'Op | None' = None
) → None
호출을 완료하고 그 결과를 영구적으로 저장합니다. call.summary에 있는 모든 값은 데이터베이스에 기록되기 전에 계산된 요약 통계(예: 사용량 및 상태 개수)와 깊게 병합된 다음 데이터베이스에 기록됩니다.
출처

method flush

flush() → None
백그라운드 비동기 작업을 플러시합니다. 여러 번 호출해도 안전합니다.
출처

method get

get(ref: 'ObjectRef', objectify: 'bool' = True) → Any

출처

method get_call

get_call(
    call_id: 'str',
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    columns: 'list[str] | None' = None
) → WeaveObject
ID로 단일 호출을 가져옵니다.
  • use_progress_bar: flush 중에 진행 표시줄을 표시할지 여부입니다. 진행 표시줄이 잘 렌더링되지 않는 환경(예: CI 환경)에서는 False로 설정하세요.
  • callback: 상태 업데이트를 수신하는 선택적 콜백 함수입니다. use_progress_bar보다 우선합니다. Args:
  • call_id: 가져올 호출의 ID입니다.
  • include_costs: true이면 summary.weave에 비용 정보가 포함됩니다.
  • include_feedback: true이면 summary.weave.feedback에 피드백 정보가 포함됩니다.
  • columns: 응답에 포함할 열 목록입니다. None이면 모든 열이 포함됩니다. 더 적은 열을 지정하면 성능이 더 좋아질 수 있습니다. 일부 열(id, project_id, trace_id, op_name, started_at)은 항상 포함됩니다. Returns: 호출 객체입니다.

출처

메서드 get_calls

get_calls(
    filter: 'CallsFilterLike | None' = None,
    limit: 'int | None' = None,
    offset: 'int | None' = None,
    sort_by: 'list[SortByLike] | None' = None,
    query: 'QueryLike | None' = None,
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    include_storage_size: 'bool' = False,
    include_total_storage_size: 'bool' = False,
    columns: 'list[str] | None' = None,
    expand_columns: 'list[str] | None' = None,
    return_expanded_column_values: 'bool' = True,
    scored_by: 'str | list[str] | None' = None,
    page_size: 'int' = 1000
) → CallsIter
이 프로젝트에 대한 추적 호출(operations) 목록을 가져옵니다. 이 메서드는 추적 데이터 조회를 위한 강력하고 유연한 인터페이스를 제공합니다. 페이지네이션, 필터링, 정렬, 필드 프로젝션, 스코어 관련 메타데이터를 지원하며, 커스텀 trace UI나 분석 도구를 구현하는 데 사용할 수 있습니다. 성능 팁: columns를 지정하고 filter 또는 query를 사용해 결과 크기를 줄이세요. Args:
  • filter: op_name, parent_ids 등과 같은 필드를 기준으로 결과를 좁히기 위한 상위 수준 필터.
  • limit: 반환할 호출의 최대 개수.
  • offset: 결과를 반환하기 전에 건너뛸 호출 수(페이지네이션에 사용).
  • sort_by: 결과를 정렬할 필드 목록(예: started_at desc).
  • query: 고급 필터링을 위한 MongoDB 유사 표현식. 모든 Mongo 연산자가 지원되지는 않습니다.
  • include_costs: True인 경우 summary.weave에 토큰/비용 정보를 포함합니다.
  • include_feedback: True인 경우 summary.weave.feedback에 피드백을 포함합니다.
  • include_storage_size: True인 경우 호출의 스토리지 크기를 포함합니다.
  • include_total_storage_size: True인 경우 trace 전체의 스토리지 총량을 포함합니다.
  • columns: 호출마다 반환할 필드 목록. 이 값을 줄이면 성능을 크게 향상할 수 있습니다. (id, trace_id, op_name, started_at 같은 일부 필드는 항상 포함됩니다.)
  • scored_by: 하나 이상의 스코어러(이름 또는 ref URI)를 기준으로 필터링합니다. 여러 스코어러는 AND 조건으로 결합됩니다.
  • page_size: 페이지마다 가져올 호출 수. 대규모 쿼리에서 성능을 위해 이 값을 조정합니다.
Returns:
  • CallsIter: Call 객체에 대한 이터레이터. 슬라이싱, 반복, .to_pandas()를 지원합니다.
Example:
calls = client.get_calls(
     filter=CallsFilter(op_names=["my_op"]),
     columns=["inputs", "output", "summary"],
     limit=100,
)
for call in calls:
     print(call.inputs, call.output)

출처

메서드 get_evaluation

get_evaluation(uri: 'str') → Evaluation
URI를 사용해 특정 Evaluation 객체를 가져옵니다. Evaluation URI는 일반적으로 다음 형식을 따릅니다: weave:///entity/project/object/Evaluation:version “친숙한” 이름으로 Evaluation을 가져올 수도 있습니다: get_evaluation(“Evaluation:v1”) Args:
  • uri (str): 가져올 Evaluation의 고유 리소스 식별자입니다.
Returns:
  • Evaluation: 제공된 URI에 해당하는 Evaluation 객체입니다.
Raises:
  • TypeError: URI에 있는 객체가 Evaluation 인스턴스가 아닐 경우입니다.
  • ValueError: URI가 잘못되었거나 객체를 찾을 수 없을 경우입니다.
Examples:
client = weave.init("my-project")
evaluation = client.get_evaluation("weave:///entity/project/object/my-eval:v1")
print(evaluation.name)

출처

메서드 get_evaluations

get_evaluations() → list[Evaluation]
현재 프로젝트에서 모든 Evaluation 객체를 검색합니다. 반환값:
  • list[Evaluation]: 현재 프로젝트의 모든 Evaluation 객체 목록입니다. 평가가 없거나 모든 변환이 실패한 경우 빈 리스트를 반환합니다.
예시:
client = weave.init("my-project")
evaluations = client.get_evaluations()
print(f"Found {len(evaluations)} evaluations")
for eval in evaluations:
     print(f"Evaluation: {eval.name}")

출처

메서드 get_feedback

get_feedback(
    query: 'Query | str | None' = None,
    reaction: 'str | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → FeedbackQuery
피드백을 위한 프로젝트를 조회합니다. 예시:
# 특정 피드백 객체를 가져옵니다.
# 이 함수는 여전히 컬렉션을 반환하며, 해당 컬렉션에는
# 0개 또는 1개의 항목이 포함될 수 있습니다.
client.get_feedback("1B4082A3-4EDA-4BEB-BFEB-2D16ED59AA07")

# 특정 reaction을 가진 모든 피드백 객체를 찾습니다.
client.get_feedback(reaction="👍", limit=10)

# mongo 스타일 쿼리를 사용하여 특정 피드백 유형을 가진
# 모든 피드백 객체를 찾습니다.
from weave.trace_server.interface.query import Query

query = Query(
    **{
        "$expr": {
            "$eq": [
                {"$getField": "feedback_type"},
                {"$literal": "wandb.reaction.1"},
            ],
        }
    }
)
client.get_feedback(query=query)
인자:
  • query: MongoDB 스타일의 쿼리 표현식입니다. 편의상 feedback UUID 문자열도 허용합니다.
  • reaction: 편의상 특정 리액션 이모지로 필터링할 수 있습니다.
  • offset: 피드백 객체를 가져오기 시작할 오프셋입니다.
  • limit: 가져올 피드백 객체의 최대 개수입니다. 반환값: FeedbackQuery 객체입니다.

출처

method purge_costs

purge_costs(ids: 'list[str] | str') → None
현재 프로젝트의 비용을 삭제합니다. 예시:
client.purge_costs([ids])
client.purge_costs(ids)
인자:
출처

메서드 query_costs

query_costs(
    query: 'Query | str | None' = None,
    llm_ids: 'list[str] | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → list[CostQueryOutput]
프로젝트의 비용을 조회합니다.
  • ids: 삭제할 비용 ID입니다. 단일 ID 또는 ID 목록일 수 있습니다. 예시:
# 특정 비용 객체를 가져옵니다.
# 이 함수는 여전히 컬렉션을 반환하며, 해당 컬렉션에는
# 0개 또는 1개의 항목이 포함될 수 있습니다.
client.query_costs("1B4082A3-4EDA-4BEB-BFEB-2D16ED59AA07")

# 특정 반응을 가진 모든 비용 객체를 찾습니다.
client.query_costs(llm_ids=["gpt-4o-mini-2024-07-18"], limit=10)
인수(Args):
  • query: MongoDB 스타일의 쿼리 표현식입니다. 편의상 cost UUID 문자열도 받을 수 있습니다.
  • llm_ids: 편의상 이 llm_ids 집합으로 필터링할 수 있습니다.
  • offset: cost 객체를 가져오기 시작할 위치(오프셋)입니다.
  • limit: 가져올 cost 객체의 최대 개수입니다. 반환값(Returns): CostQuery 객체.

출처

메서드 save

save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any
직접 호출하지 말고 weave.publish()를 사용하세요. Args:
  • val: 저장할 객체입니다.
  • name: 객체를 저장할 이름입니다.
  • branch: 객체를 저장할 브랜치입니다. 기본값은 “latest”입니다. Returns: 저장된 객체의 역직렬화된 객체입니다.

출처

method set_wandb_run_context

set_wandb_run_context(run_id: 'str', step: 'int | None' = None) → None
이 클라이언트가 생성한 호출에 대해 wandb run_id와 step을 재정의합니다. 이를 통해 전역 wandb.run 심볼에 바인딩되지 않은 특정 W&B run과 Weave 호출을 연결할 수 있습니다. 인자:
  • run_id: run ID(엔터티/프로젝트 접두사를 포함하지 않음). 클라이언트가 엔터티/프로젝트 접두사를 자동으로 추가합니다.
  • step: 호출에 사용할 step 번호입니다. None이면 step은 설정되지 않습니다. 예시:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# 이제 모든 호출이 step 5에서 entity/project/my-run-id와 연결됩니다

# 또는 step 없이
client.set_wandb_run_context(run_id="my-run-id")
# 호출이 step 없이 entity/project/my-run-id와 연결됩니다

출처

function get_obj_name

get_obj_name(val: 'Any') → str

출처

function get_parallelism_settings

get_parallelism_settings() → tuple[int | None, int | None]

출처

function map_to_refs

map_to_refs(obj: 'Any') → Any

출처
print_call_link(call: 'Call') → None

출처

function redact_sensitive_keys

redact_sensitive_keys(obj: 'Any') → Any

출처

function sanitize_object_name

sanitize_object_name(name: 'str') → str