메인 콘텐츠로 건너뛰기

API 개요


원문

class FlushStatus

현재 flush 작업의 상태 정보를 나타냅니다.
원문

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))
인자:
  • llm_id: LLM의 ID입니다. 예: “gpt-4o-mini-2024-07-18”
  • prompt_token_cost: 프롬프트 토큰 1개당 비용입니다. 예: .0005
  • completion_token_cost: completion 토큰 1개당 비용입니다. 예: .0015
  • effective_date: 기본값은 현재 날짜입니다. datetime.datetime 객체입니다.
  • provider_id: LLM의 provider입니다. 기본값은 “default”입니다. 예: “openai”
  • prompt_token_cost_unit: 프롬프트 토큰 비용의 단위입니다. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 추후 비용의 통화/단위를 지정하는 데 사용될 예정입니다. 예: “tokens” 또는 “time”)
  • completion_token_cost_unit: completion 토큰 비용의 단위입니다. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 추후 비용의 통화/단위를 지정하는 데 사용될 예정입니다. 예: “tokens” 또는 “time”) 반환값: CostCreateRes 객체입니다. 이 객체에는 ids라는 튜플 목록 필드가 하나 있으며, 각 튜플에는 llm_id와 생성된 cost 객체의 id가 포함됩니다.

원문

메서드 clear_wandb_run_context

clear_wandb_run_context() → None
wandb 실행 컨텍스트 재정의를 해제합니다. 이 함수를 호출한 이후에는, 호출 시 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을 다시 사용합니다

원문

메서드 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가 제공되지 않으면 현재 실행이 부모로 사용됩니다.
  • display_name: 호출의 표시 이름. 기본값은 None입니다.
  • attributes: 호출의 속성. 기본값은 None입니다.
  • use_stack: 호출을 런타임 스택에 푸시할지 여부. 기본값은 True입니다. Returns: 생성된 Call 객체.

원문

메서드 delete_all_object_versions

delete_all_object_versions(object_name: 'str') → int
객체의 모든 버전을 삭제합니다. 인자:
  • object_name: 버전을 삭제할 객체의 이름입니다. 반환값: 삭제된 버전 수입니다.

원문

메서드 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: 삭제된 버전의 개수입니다.

원문

메서드 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
모든 백그라운드 작업이 처리되도록 플러시합니다. 이 메서드는 현재 대기열에 있는 모든 작업이 처리될 때까지 호출을 블로킹하고, 대기 중인 작업의 상태를 표시하는 진행률 표시줄을 보여 줍니다. 메인 스레드 실행 동안 병렬 처리를 보장하며, 사용자 코드가 서버로 데이터가 업로드되기 전에 먼저 완료되는 경우 성능을 향상시킬 수 있습니다. 인자(Args):
원문

method finish_call

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

메서드 flush

flush() → None
백그라운드에서 실행되는 비동기 작업을 플러시합니다. 여러 번 호출해도 안전합니다.
원문

메서드 get

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

원문

메서드 get_call

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

원문

method 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
이 프로젝트에 대한 트레이스된 호출(op) 목록을 가져옵니다. 이 메서드는 트레이스 데이터를 조회하기 위한 강력하고 유연한 인터페이스를 제공합니다. 페이지네이션, 필터링, 정렬, 필드 프로젝션, 점수 메타데이터를 지원하며, 커스텀 트레이스 UI나 분석 도구를 구현하는 데 사용할 수 있습니다. 성능 팁: columns를 지정하고 filter 또는 query를 사용해 결과 크기를 줄이십시오. Args:
  • filter: op_name, parent_ids 등 필드를 기준으로 결과 범위를 좁히기 위한 상위 수준 필터.
  • limit: 반환할 최대 호출 수.
  • offset: 결과를 반환하기 전에 건너뛸 호출 수(페이지네이션에 사용).
  • sort_by: 결과를 정렬할 필드 목록(예: started_at desc).
  • query: 고급 필터링을 위한 Mongo 유사 표현식. 모든 Mongo 연산자가 지원되지는 않습니다.
  • include_costs: True이면 summary.weave에 토큰/비용 정보를 포함합니다.
  • include_feedback: True이면 summary.weave.feedback에 피드백을 포함합니다.
  • include_storage_size: True이면 호출에 대한 스토리지 크기를 포함합니다.
  • include_total_storage_size: True이면 트레이스 전체의 총 스토리지 크기를 포함합니다.
  • 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)

원문

method 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 스타일의 쿼리 표현식입니다. 편의를 위해 피드백 UUID 문자열도 허용합니다.
  • reaction: 편의를 위해 특정 리액션 이모지로 필터링하는 데 사용됩니다.
  • offset: 피드백 객체를 가져오기 시작할 위치(오프셋)입니다.
  • limit: 가져올 피드백 객체의 최대 개수입니다. 반환값: FeedbackQuery 객체를 반환합니다.

원문

메서드 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")

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

원문

메서드 save

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

메서드 set_wandb_run_context

set_wandb_run_context(run_id: 'str', step: 'int | None' = None) → None
이 클라이언트로 생성된 호출에 대해 wandb run_id 및 step을 오버라이드합니다. 이를 통해 전역 wandb.run 심볼에 바인딩되어 있지 않은 특정 WandB 실행에 Weave 호출을 연결할 수 있습니다. Args:
  • run_id: 실행 ID(엔터티/프로젝트 접두사는 포함하지 않음). 클라이언트가 엔터티/프로젝트 접두사를 자동으로 추가합니다.
  • step: 호출에 사용할 step 번호입니다. None인 경우 step은 설정되지 않습니다. Examples:
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

원문

함수 get_parallelism_settings

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

원문

함수 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

원문

함수 sanitize_object_name

sanitize_object_name(name: 'str') → str