메인 콘텐츠로 건너뛰기

API 개요


Source

class FlushStatus

현재 flush 작업에 대한 상태 정보입니다.
Source

class PendingJobCounts

각 유형별 대기 중인 작업(job)의 수입니다.
Source

class WeaveClient

Source

method __init__

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

property num_outstanding_jobs

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

Source

method 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
현재 Projects에 비용을 추가합니다. 예시:
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: 완성(completion) 토큰당 비용. 예: .0015
  • effective_date: 기본값은 현재 날짜입니다. datetime.datetime 오브젝트입니다.
  • provider_id: LLM 제공자. 기본값은 “default”입니다. 예: “openai”
  • prompt_token_cost_unit: 프롬프트 토큰 비용 단위. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 향후 “tokens”나 “time”과 같은 통화 유형을 지정하는 데 사용될 예정입니다)
  • completion_token_cost_unit: 완성 토큰 비용 단위. 기본값은 “USD”입니다. (현재는 사용되지 않으며, 향후 “tokens”나 “time”과 같은 통화 유형을 지정하는 데 사용될 예정입니다) 반환 값: CostCreateRes 오브젝트. ids라는 튜플 리스트 필드를 하나 가집니다. 각 튜플은 llm_id와 생성된 비용 오브젝트의 id를 포함합니다.

Source

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을 사용합니다.

Source

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
call을 생성하고 로그를 남기며 런타임 스택에 푸시합니다. Args:
  • op: call을 생성하는 작업 또는 익명 작업의 이름입니다.
  • inputs: 작업에 대한 입력값입니다.
  • parent: 부모 call입니다. 부모가 제공되지 않으면 현재 run이 부모로 사용됩니다.
  • display_name: call의 표시 이름입니다. 기본값은 None입니다.
  • attributes: call의 속성입니다. 기본값은 None입니다.
  • use_stack: call을 런타임 스택에 푸시할지 여부입니다. 기본값은 True입니다. 반환 값: 생성된 Call 오브젝트입니다.

Source

method delete_all_object_versions

delete_all_object_versions(object_name: 'str') → int
오브젝트의 모든 버전을 삭제합니다. Args:
  • object_name: 버전을 삭제할 오브젝트의 이름입니다. 반환 값: 삭제된 버전의 수입니다.

Source

method delete_all_op_versions

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

Source

method delete_call

delete_call(call: 'Call') → None

Source

method delete_calls

delete_calls(call_ids: 'list[str]') → None
ID를 사용하여 call들을 삭제합니다. call을 삭제하면 해당 call의 모든 자식들도 삭제됩니다. Args:
Source

method delete_object_version

delete_object_version(object: 'ObjectRef') → None

Source

method delete_object_versions

delete_object_versions(object_name: 'str', digests: 'list[str]') → int
오브젝트의 특정 버전들을 삭제합니다.
  • call_ids: 삭제할 call ID의 리스트입니다. 예: [“2F0193e107-8fcf-7630-b576-977cc3062e2e”] Args:
  • object_name: 버전을 삭제할 오브젝트의 이름입니다.
  • digests: 삭제할 다이제스트 리스트입니다. “latest” 또는 “v0”와 같은 에일리어스를 포함할 수 있습니다. 반환 값: 삭제된 버전의 수입니다.

Source

method delete_op_version

delete_op_version(op: 'OpRef') → None

Source

method fail_call

fail_call(call: 'Call', exception: 'BaseException') → None
예외와 함께 call을 실패 처리합니다. finish_call을 위한 편의 메소드입니다.
Source

method finish

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

method finish_call

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

method flush

flush() → None
백그라운드 비동기 태스크를 flush합니다. 여러 번 호출해도 안전합니다.
Source

method get

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

Source

method 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 컬럼은 항상 포함됩니다. 반환 값: call 오브젝트입니다.

Source

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
이 Projects에 대해 트레이스된 call(작업) 목록을 검색합니다. 이 메소드는 트레이스 데이터를 쿼리하기 위한 강력하고 유연한 인터페이스를 제공합니다. 페이지네이션, 필터링, 정렬, 필드 프로젝션 및 스코어링 메타데이터를 지원하며, 커스텀 트레이스 UI 또는 분석 툴을 구동하는 데 사용할 수 있습니다. 성능 팁: 결과 크기를 줄이려면 columns를 지정하고 filter 또는 query를 사용하세요. Args:
  • filter: op_name, parent_ids 등의 필드로 결과를 좁히기 위한 상위 레벨 필터입니다.
  • limit: 반환할 최대 call 수입니다.
  • offset: 결과를 반환하기 전에 건너뛸 call 수입니다(페이지네이션에 사용).
  • sort_by: 결과를 정렬할 필드 리스트입니다(예: started_at desc).
  • query: 고급 필터링을 위한 mongo 스타일 표현식입니다. 모든 Mongo 연산자가 지원되지는 않습니다.
  • include_costs: True인 경우, summary.weave에 토큰/비용 정보를 포함합니다.
  • include_feedback: True인 경우, summary.weave.feedback에 피드백을 포함합니다.
  • include_storage_size: True인 경우, call의 스토리지 크기를 포함합니다.
  • include_total_storage_size: True인 경우, 트레이스의 총 스토리지 크기를 포함합니다.
  • columns: 각 call마다 반환할 필드 리스트입니다. 이를 줄이면 성능을 크게 향상시킬 수 있습니다. (id, trace_id, op_name, started_at과 같은 일부 필드는 항상 포함됩니다.)
  • scored_by: 하나 이상의 스코어러(이름 또는 ref URI)로 필터링합니다. 여러 스코어러는 AND 조건으로 결합됩니다.
  • page_size: 페이지당 가져올 call 수입니다. 대규모 쿼리에서 성능을 위해 이 값을 조정하세요.
반환 값:
  • CallsIter: Call 오브젝트에 대한 반복자(iterator)입니다. 슬라이싱, 반복 및 .to_pandas()를 지원합니다.
예시:
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)

Source

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의 고유 리소스 식별자입니다.
반환 값:
  • Evaluation: 제공된 URI에 해당하는 Evaluation 오브젝트입니다.
Raises:
  • TypeError: URI에 있는 오브젝트가 Evaluation 인스턴스가 아닌 경우 발생합니다.
  • ValueError: URI가 유효하지 않거나 오브젝트를 찾을 수 없는 경우 발생합니다.
예시:
client = weave.init("my-project")
evaluation = client.get_evaluation("weave:///entity/project/object/my-eval:v1")
print(evaluation.name)

Source

method get_evaluations

get_evaluations() → list[Evaluation]
현재 Projects에서 모든 Evaluation 오브젝트를 검색합니다. 반환 값:
  • list[Evaluation]: 현재 Projects에 있는 모든 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}")

Source

method get_feedback

get_feedback(
    query: 'Query | str | None' = None,
    reaction: 'str | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → FeedbackQuery
Projects에서 피드백을 쿼리합니다. 예시:
# 특정 피드백 오브젝트를 가져옵니다.
# 컬렉션을 반환하므로 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)
Args:
  • query: mongo 스타일의 쿼리 표현식입니다. 편의를 위해 피드백 UUID 문자열도 허용합니다.
  • reaction: 편의를 위해 특정 반응 이모지로 필터링합니다.
  • offset: 피드백 오브젝트를 가져오기 시작할 오프셋입니다.
  • limit: 가져올 피드백 오브젝트의 최대 수입니다. 반환 값: FeedbackQuery 오브젝트입니다.

Source

method purge_costs

purge_costs(ids: 'list[str] | str') → None
현재 Projects에서 비용 데이터를 제거합니다. 예시:
client.purge_costs([ids])
client.purge_costs(ids)
Args:
Source

method query_costs

query_costs(
    query: 'Query | str | None' = None,
    llm_ids: 'list[str] | None' = None,
    offset: 'int' = 0,
    limit: 'int' = 100
) → list[CostQueryOutput]
Projects에서 비용 데이터를 쿼리합니다.
  • 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: mongo 스타일의 쿼리 표현식입니다. 편의를 위해 비용 UUID 문자열도 허용합니다.
  • llm_ids: 편의를 위해 특정 llm_id 세트로 필터링합니다.
  • offset: 비용 오브젝트를 가져오기 시작할 오프셋입니다.
  • limit: 가져올 비용 오브젝트의 최대 수입니다. 반환 값: CostQuery 오브젝트입니다.

Source

method save

save(val: 'Any', name: 'str', branch: 'str' = 'latest') → Any
직접 호출하지 마세요. 대신 weave.publish()를 사용하세요. Args:
  • val: 저장할 오브젝트입니다.
  • name: 오브젝트를 저장할 이름입니다.
  • branch: 오브젝트를 저장할 브랜치입니다. 기본값은 “latest”입니다. 반환 값: 저장된 오브젝트의 역직렬화된 버전입니다.

Source

method set_wandb_run_context

set_wandb_run_context(run_id: 'str', step: 'int | None' = None) → None
이 클라이언트에 의해 생성된 call들에 대해 wandb run_id 및 step을 오버라이드합니다. 이를 통해 Weave call들을 전역 wandb.run 심볼에 바인딩되지 않은 특정 WandB run과 연결할 수 있습니다. Args:
  • run_id: run ID (entity/project 접두사 제외). 클라이언트가 자동으로 entity/project 접두사를 추가합니다.
  • step: call에 사용할 step 번호입니다. None인 경우 step이 설정되지 않습니다. 예시:
client = weave.init("my-project")
client.set_wandb_run_context(run_id="my-run-id", step=5)
# 이제 모든 call은 step 5의 entity/project/my-run-id와 연결됩니다.

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

Source

function get_obj_name

get_obj_name(val: 'Any') → str

Source

function get_parallelism_settings

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

Source

function map_to_refs

map_to_refs(obj: 'Any') → Any

Source
print_call_link(call: 'Call') → None

Source

function redact_sensitive_keys

redact_sensitive_keys(obj: 'Any') → Any

Source

function sanitize_object_name

sanitize_object_name(name: 'str') → str