메인 콘텐츠로 건너뛰기

API 개요


출처

class Agent

Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • model_name: <class 'str'>
  • temperature: <class 'float'>
  • system_message: <class 'str'>
  • tools: list[typing.Any]
출처

method step

step(state: AgentState) → AgentState
에이전트의 한 단계를 실행합니다. 인수:
  • state: 환경의 현재 상태입니다.
  • action: 수행할 동작입니다.
반환값: 환경의 새로운 상태입니다.
출처

class AgentState

Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • history: list[typing.Any]

출처

class AnnotationSpec

Pydantic 필드:
  • name: str | None
  • description: str | None
  • field_schema: dict[str, typing.Any]
  • unique_among_creators: <class 'bool'>
  • op_scope: list[str] | None
출처

classmethod preprocess_field_schema

preprocess_field_schema(data: dict[str, Any]) → dict[str, Any]

출처

classmethod validate_field_schema

validate_field_schema(schema: dict[str, Any]) → dict[str, Any]

출처

method value_is_valid

value_is_valid(payload: Any) → bool
이 어노테이션 스펙의 스키마에 따라 페이로드를 검증합니다. 인자:
  • payload: 스키마에 따라 검증할 데이터 반환값:
  • bool: 검증이 성공하면 True, 그렇지 않으면 False

출처

class Audio

지원되는 형식(wav 또는 mp3)의 오디오 데이터를 나타내는 클래스입니다. 이 클래스는 오디오 데이터를 저장하고, 다양한 소스에서 로드하며 파일로 내보내는 메서드를 제공합니다. Attributes:
  • format: 오디오 형식(현재 ‘wav’ 또는 ‘mp3’ 지원)
  • data: 바이트 형태의 원시 오디오 데이터
Args:
  • data: 오디오 데이터(바이트 또는 base64로 인코딩된 문자열)
  • format: 오디오 형식(‘wav’ 또는 ‘mp3’)
  • validate_base64: 입력 데이터를 base64로 디코딩할지 여부 Raises:
  • ValueError: 오디오 데이터가 비어 있거나 지원되지 않는 형식인 경우
출처

method __init__

__init__(
    data: 'bytes',
    format: 'SUPPORTED_FORMATS_TYPE',
    validate_base64: 'bool' = True
) → None

출처

method export

export(path: 'str | bytes | Path | PathLike') → None
오디오 데이터를 파일로 내보냅니다. 매개변수:
출처

classmethod from_data

from_data(data: 'str | bytes', format: 'str') → Self
원시 데이터와 지정된 형식으로부터 Audio 객체를 생성합니다.
  • path: 오디오 파일이 저장될 경로 Args:
  • data: 바이트 또는 base64 인코딩 문자열 형태의 오디오 데이터
  • format: 오디오 형식 (‘wav’ 또는 ‘mp3’) Returns:
  • Audio: 새 Audio 인스턴스
Raises:
  • ValueError: 형식이 지원되지 않는 경우

출처

classmethod from_path

from_path(path: 'str | bytes | Path | PathLike') → Self
파일 경로에서 Audio 객체를 생성합니다. 매개변수:
  • path: 오디오 파일 경로(.wav 또는 .mp3 확장자 필수) 반환값:
  • Audio: 파일에서 로드된 새 Audio 인스턴스
예외:
  • ValueError: 파일이 존재하지 않거나 지원하지 않는 확장자인 경우

출처

class Content

여러 소스의 콘텐츠를 표현하고, 이를 관련 메타데이터와 함께 통합된 바이트 기반 표현으로 변환하는 클래스입니다. 이 클래스의 인스턴스는 다음 클래스 메서드 중 하나를 사용해 생성해야 합니다:
  • from_path()
  • from_bytes()
  • from_text()
  • from_url()
  • from_base64()
  • from_data_url()
출처

method __init__

__init__(*args: 'Any', **kwargs: 'Any') → None
직접 초기화는 지원되지 않습니다. 인스턴스를 생성하려면 Content.from_path() 같은 클래스 메서드를 사용하세요. Pydantic 필드:
  • data: <class 'bytes'>
  • size: <class 'int'>
  • mimetype: <class 'str'>
  • digest: <class 'str'>
  • filename: <class 'str'>
  • content_type: typing.Literal['bytes', 'text', 'base64', 'file', 'url', 'data_url', 'data_url:base64', 'data_url:encoding', 'data_url:encoding:base64']
  • input_type: <class 'str'>
  • encoding: <class 'str'>
  • metadata: dict[str, typing.Any] | None
  • extension: str | None

속성 art

property ref


출처

method as_string

as_string() → str
데이터를 문자열로 표시합니다. 바이트는 encoding 속성에 따라 디코딩됩니다. 값이 base64인 경우, 데이터는 base64 바이트로 다시 인코딩된 후 ASCII 문자열로 디코딩됩니다. 반환값: str.
출처

classmethod from_base64

from_base64(
    b64_data: 'str | bytes',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None
) → Self
base64로 인코딩된 문자열이나 바이트로부터 Content를 초기화합니다.
출처

classmethod from_bytes

from_bytes(
    data: 'bytes',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → Self
원시 바이트로부터 Content를 초기화합니다.
출처

classmethod from_data_url

from_data_url(url: 'str', metadata: 'dict[str, Any] | None' = None) → Self
데이터 URL을 기반으로 Content를 초기화합니다.
출처

classmethod from_path

from_path(
    path: 'str | Path',
    encoding: 'str' = 'utf-8',
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None
) → Self
로컬 파일 경로를 기반으로 Content를 초기화합니다.
출처

classmethod from_text

from_text(
    text: 'str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → Self
텍스트 문자열을 사용해 Content를 초기화합니다.
출처

classmethod from_url

from_url(
    url: 'str',
    headers: 'dict[str, Any] | None' = None,
    timeout: 'int | None' = 30,
    metadata: 'dict[str, Any] | None' = None
) → Self
HTTP(S) URL에서 바이트를 가져와 Content를 초기화합니다. 콘텐츠를 다운로드한 다음 헤더, URL 경로, 데이터에서 MIME 타입과 확장자를 추론하여, 이렇게 얻은 바이트로부터 Content 객체를 생성합니다.
출처

classmethod model_validate

model_validate(
    obj: 'Any',
    strict: 'bool | None' = None,
    from_attributes: 'bool | None' = None,
    context: 'dict[str, Any] | None' = None
) → Self
dict에서 Content를 재구성하는 처리를 위해 model_validate를 오버라이드합니다.
출처

classmethod model_validate_json

model_validate_json(
    json_data: 'str | bytes | bytearray',
    strict: 'bool | None' = None,
    context: 'dict[str, Any] | None' = None
) → Self
JSON으로부터 Content를 재구성할 수 있도록 model_validate_json을 오버라이드합니다.
출처

메서드 open

open() → bool
운영체제의 기본 애플리케이션을 사용하여 파일을 엽니다. 이 메서드는 플랫폼별 메커니즘을 통해 파일 유형과 연결된 기본 애플리케이션으로 파일을 엽니다. 반환값:
  • bool: 파일을 여는 데 성공하면 True, 그렇지 않으면 False입니다.

출처

method save

save(dest: 'str | Path') → None
파일을 지정된 대상 경로로 복사합니다. 마지막으로 저장된 사본을 반영하도록 콘텐츠의 파일 이름과 경로를 업데이트합니다. 매개변수:
출처

메서드 serialize_data

serialize_data(data: 'bytes') → str
JSON 모드에서 모델을 덤프할 때
출처

메서드 to_data_url

to_data_url(use_base64: 'bool' = True) → str
콘텐츠로부터 데이터 URL을 생성합니다.
  • dest: 파일이 복사될 대상 경로(문자열 또는 pathlib.Path). 대상 경로는 파일 또는 디렉터리일 수 있습니다. dest에 파일 확장자(예: .txt)가 없으면 대상 경로를 디렉터리로 간주합니다. 매개변수(Args):
  • use_base64: True이면 데이터가 base64로 인코딩됩니다. 그렇지 않으면 퍼센트 인코딩(percent-encoding)됩니다. 기본값은 True입니다. 반환값(Returns): 데이터 URL 문자열입니다.

출처

class Dataset

손쉬운 저장과 자동 버전 관리를 지원하는 Dataset 객체입니다. 예시:
# 데이터셋 생성
dataset = Dataset(name='grammar', rows=[
     {'id': '0', 'sentence': "He no likes ice cream.", 'correction': "He doesn't like ice cream."},
     {'id': '1', 'sentence': "She goed to the store.", 'correction': "She went to the store."},
     {'id': '2', 'sentence': "They plays video games all day.", 'correction': "They play video games all day."}
])

# 데이터셋 게시
weave.publish(dataset)

# 데이터셋 가져오기
dataset_ref = weave.ref('grammar').get()

# 특정 예시 접근
example_label = dataset_ref.rows[2]['sentence']
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • rows: trace.table.Table | trace.vals.WeaveTable
출처

메서드 add_rows

add_rows(rows: Iterable[dict]) → Dataset
기존 데이터셋에 행을 추가하여 새 데이터셋 버전을 생성합니다. 전체 데이터셋을 메모리에 모두 로드하지 않고도 대규모 데이터셋에 예제를 추가할 때 유용합니다. Args:
  • rows: 데이터셋에 추가할 행. Returns: 업데이트된 데이터셋.

출처

classmethod convert_to_table

convert_to_table(rows: Any) → Table | WeaveTable

출처

classmethod from_calls

from_calls(calls: Iterable[Call]) → Self

출처

classmethod from_hf

from_hf(
    hf_dataset: Union[ForwardRef('HFDataset'), ForwardRef('HFDatasetDict')]
) → Self

출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

classmethod from_pandas

from_pandas(df: 'DataFrame') → Self

출처

method select

select(indices: Iterable[int]) → Self
제공된 인덱스를 기반으로 데이터셋에서 특정 행을 선택합니다. 인자:
  • indices: 선택할 행의 인덱스를 지정하는 정수 인덱스 이터러블. 반환값: 선택된 행만 포함하는 새로운 Dataset 객체.

출처

메서드 to_hf

to_hf() → HFDataset

출처

method to_pandas

to_pandas() → DataFrame

출처

class EasyPrompt

출처

메서드 __init__

__init__(
    content: str | dict | list | None = None,
    role: str | None = None,
    dedent: bool = False,
    **kwargs: Any
) → None
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • data: <class 'list'>
  • config: <class 'dict'>
  • requirements: <class 'dict'>

property as_str

모든 메시지를 하나의 문자열로 이어 붙입니다.

property is_bound


프로퍼티 messages

property 플레이스홀더


property system_message

모든 메시지를 하나의 system 프롬프트 메시지로 합칩니다.

property system_prompt

모든 메시지를 하나의 system prompt 객체로 합칩니다.

property unbound_placeholders


출처

메서드 append

append(item: Any, role: str | None = None, dedent: bool = False) → None

출처

method as_dict

as_dict() → dict[str, Any]

출처

method as_pydantic_dict

as_pydantic_dict() → dict[str, Any]

출처

메서드 bind

bind(*args: Any, **kwargs: Any) → Prompt

출처

메서드 bind_rows

bind_rows(dataset: list[dict] | Any) → list['Prompt']

출처

method config_table

config_table(title: str | None = None) → Table

출처

메서드 configure

configure(config: dict | None = None, **kwargs: Any) → Prompt

출처

method dump

dump(fp: <class 'IO'>) → None

출처

메서드 dump_file

dump_file(filepath: str | Path) → None

출처

method format

format(**kwargs: Any) → Any

출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

classmethod load

load(fp: <class 'IO'>) → Self

출처

classmethod load_file

load_file(filepath: str | Path) → Self

출처

method messages_table

messages_table(title: str | None = None) → Table

출처

메서드 print

print() → str

출처

method publish

publish(name: str | None = None) → ObjectRef

출처

메서드 require

require(param_name: str, **kwargs: Any) → Prompt

출처

메서드 run

run() → Any

출처

메서드 validate_requirement

validate_requirement(key: str, value: Any) → list

출처

메서드 validate_requirements

validate_requirements(values: dict[str, Any]) → list

출처

메서드 values_table

values_table(title: str | None = None) → Table

출처

class Evaluation

스코어러 집합과 데이터셋을 포함하는 Evaluation을 설정합니다. evaluation.evaluate(model)을 호출하면, 데이터셋의 열 이름을 model.predict의 인자 이름과 매칭하여 데이터셋에서 가져온 각 행을 모델에 전달합니다. 그런 다음 모든 스코어러를 호출하고 결과를 Weave에 저장합니다. 데이터셋의 각 행을 전처리하고 싶다면, 함수를 preprocess_model_input에 전달하면 됩니다. 예시:
# 예시를 수집합니다
examples = [
     {"question": "What is the capital of France?", "expected": "Paris"},
     {"question": "Who wrote 'To Kill a Mockingbird'?", "expected": "Harper Lee"},
     {"question": "What is the square root of 64?", "expected": "8"},
]

# 커스텀 채점 함수를 정의합니다
@weave.op
def match_score1(expected: str, model_output: dict) -> dict:
     # 모델 출력을 채점하는 로직을 여기에 정의합니다
     return {'match': expected == model_output['generated_text']}

@weave.op
def function_to_evaluate(question: str):
     # LLM 호출을 추가하고 출력을 반환하는 부분입니다
     return  {'generated_text': 'Paris'}

# 채점 함수를 사용하여 예시를 채점합니다
evaluation = Evaluation(
     dataset=examples, scorers=[match_score1]
)

# 평가 추적을 시작합니다
weave.init('intro-example')
# 평가를 실행합니다
asyncio.run(evaluation.evaluate(function_to_evaluate))
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • dataset: <class 'dataset.dataset.Dataset'>
  • scorers: list[typing.Annotated[trace.op_protocol.Op | flow.scorer.Scorer, BeforeValidator(func=<function cast_to_scorer at 0x110ab76a0>, json_schema_input_type=PydanticUndefined)]] | None
  • preprocess_model_input: collections.abc.Callable[[dict], dict] | None
  • trials: <class 'int'>
  • metadata: dict[str, typing.Any] | None
  • evaluation_name: str | collections.abc.Callable[trace.call.Call, str] | None
출처

method evaluate

evaluate(model: Op | Model) → dict

출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

method get_eval_results

get_eval_results(model: Op | Model) → EvaluationResults

출처

메서드 get_evaluate_calls

get_evaluate_calls() → PaginatedIterator[CallSchema, WeaveObject]
이 Evaluation 객체를 사용한 모든 evaluation 호출을 조회합니다. 단일 호출이 아니라 CallsIter를 반환합니다. 하나의 evaluation에 대해 여러 번 evaluation 호출이 발생할 수 있기 때문입니다(예: 동일한 evaluation을 여러 번 실행하는 경우). 반환 값:
  • CallsIter: 평가 실행을 나타내는 Call 객체에 대한 이터레이터입니다.
예외:
  • ValueError: evaluation에 ref가 없는 경우(아직 저장되거나 실행되지 않은 경우).
예시:
evaluation = Evaluation(dataset=examples, scorers=[scorer])
await evaluation.evaluate(model)  # 먼저 평가 실행
calls = evaluation.get_evaluate_calls()
for call in calls:
     print(f"평가 run: {call.id} at {call.started_at}")

출처

method get_score_calls

get_score_calls() → dict[str, list[Call]]
각 evaluation run에 대해 trace ID별로 그룹화된 scorer 호출을 반환합니다. 반환값:
  • dict[str, list[Call]]: trace ID를 scorer Call 객체 리스트에 매핑한 사전입니다. 각 trace ID는 하나의 evaluation run을 나타내며, 리스트에는 해당 run 동안 실행된 모든 scorer 호출이 포함됩니다.
예시:
evaluation = Evaluation(dataset=examples, scorers=[accuracy_scorer, f1_scorer])
await evaluation.evaluate(model)
score_calls = evaluation.get_score_calls()
for trace_id, calls in score_calls.items():
     print(f"Trace {trace_id}: {len(calls)} scorer calls")
     for call in calls:
         scorer_name = call.summary.get("weave", {}).get("trace_name")
         print(f"  Scorer: {scorer_name}, Output: {call.output}")

출처

method get_scores

get_scores() → dict[str, dict[str, list[Any]]]
evaluation run에서 scorer 출력값을 추출하고 정리합니다. 반환값:
  • dict[str, dict[str, list[Any]]]: 다음과 같은 중첩된 사전 구조입니다.
    • 첫 번째 수준의 키는 trace ID (evaluation run)입니다.
    • 두 번째 수준의 키는 scorer 이름입니다.
    • 값은 해당 run과 scorer에 대한 scorer 출력값 리스트입니다.
예시:
evaluation = Evaluation(dataset=examples, scorers=[accuracy_scorer, f1_scorer])
await evaluation.evaluate(model)
scores = evaluation.get_scores()
# 트레이스 및 스코어러별 점수 접근
for trace_id, trace_scores in scores.items():
         print(f"Evaluation run {trace_id}:")
         for scorer_name, outputs in trace_scores.items():
             print(f"  {scorer_name}: {outputs}")
예상 출력:
{
     "trace_123": {
     "accuracy_scorer": [{"accuracy": 0.85}],
     "f1_scorer": [{"f1": 0.78}]
     }
}

출처

메서드 model_post_init

model_post_init(_Evaluation__context: Any) → None

출처

메서드 predict_and_score

predict_and_score(model: Op | Model, example: dict) → dict

출처

method summarize

summarize(eval_table: EvaluationResults) → dict

출처

class EvaluationLogger

이 클래스는 평가를 로깅하기 위한 명령형 인터페이스를 제공합니다. 첫 번째 예측을 log_prediction 메서드로 로깅하면 평가가 자동으로 시작되고, log_summary 메서드를 호출하면 종료됩니다. 예측을 로깅할 때마다 ScoreLogger 객체가 반환됩니다. 이 객체를 사용해 해당 예측에 대한 점수와 메타데이터를 로깅할 수 있습니다. 더 자세한 내용은 ScoreLogger 클래스를 참고하세요. 기본 사용법 - 입력과 출력이 포함된 예측을 직접 로깅하기:
ev = EvaluationLogger()

# 알려진 입력/출력으로 예측 로깅
pred = ev.log_prediction(inputs={'q': 'Hello'}, outputs={'a': 'Hi there!'})
pred.log_score("correctness", 0.9)

# 평가 완료
ev.log_summary({"avg_score": 0.9})
고급 사용법 - 동적 출력과 중첩 연산에 컨텍스트 매니저 사용:
ev = EvaluationLogger()

# 중첩 작업을 캡처해야 할 때 컨텍스트 매니저 사용
with ev.log_prediction(inputs={'q': 'Hello'}) as pred:
     # 여기서 수행되는 모든 작업(예: LLM 호출)은 자동으로
     # predict 호출의 하위 항목이 됩니다
     response = your_llm_call(...)
     pred.output = response.content
     pred.log_score("correctness", 0.9)

# 평가 완료
ev.log_summary({"avg_score": 0.9})
출처

메서드 __init__

__init__(
    name: 'str | None' = None,
    model: 'Model | dict | str | None' = None,
    dataset: 'Dataset | list[dict] | str | None' = None,
    eval_attributes: 'dict[str, Any] | None' = None,
    scorers: 'list[str] | None' = None
) → None

property 속성


property ui_url


출처

메서드 fail

fail(exception: 'BaseException') → None
예외를 발생시켜 평가를 실패 처리하는 편의 메서드입니다.
출처

메서드 finish

finish(exception: 'BaseException | None' = None) → None
요약을 기록하지 않고 평가 리소스를 명시적으로 정리합니다. 모든 예측 호출과 주요 평가 호출이 완료되도록 보장합니다. 로거를 컨텍스트 매니저로 사용할 경우 자동으로 호출됩니다.
출처

메서드 log_example

log_example(
    inputs: 'dict[str, Any]',
    output: 'Any',
    scores: 'dict[str, ScoreType]'
) → None
입력, 출력, 점수를 모두 포함하는 완전한 예제를 기록합니다. 이 메서드는 모든 데이터를 미리 가지고 있을 때 log_predictionlog_score를 한 번에 호출할 수 있게 해 주는 편의 메서드입니다. Args:
  • inputs: 예측에 사용할 입력 데이터
  • output: 출력값
  • scores: 스코어러 이름을 점수값에 매핑하는 사전 예시:
ev = EvaluationLogger()
ev.log_example(
    inputs={'q': 'What is 2+2?'},
    output='4',
    scores={'correctness': 1.0, 'fluency': 0.9}
)

출처

메서드 log_prediction

log_prediction(inputs: 'dict[str, Any]', output: 'Any' = None) → ScoreLogger
Evaluation에 예측을 기록합니다. 직접 사용하거나 컨텍스트 매니저로도 사용할 수 있는 ScoreLogger를 반환합니다. Args:
  • inputs: 예측을 위한 입력 데이터.
  • output: 출력 값. 기본값은 None입니다. 나중에 pred.output을 사용해 설정할 수 있습니다. Returns: 예측의 점수를 기록하고, 필요에 따라 예측을 종료하는 데 사용하는 ScoreLogger.
예시 (직접 사용):
  • pred = ev.log_prediction({'q': ’…’}, output=“answer”) pred.log_score(“correctness”, 0.9) pred.finish()
예시 (컨텍스트 매니저):
  • with ev.log_prediction({'q': ’…’}) as pred: response = model(…) pred.output = response pred.log_score(“correctness”, 0.9) # 종료 시 자동으로 finish()를 호출합니다

출처

method log_summary

log_summary(summary: 'dict | None' = None, auto_summarize: 'bool' = True) → None
Evaluation에 요약 딕셔너리를 로그합니다. 이 작업은 요약을 계산하고 summarize op를 호출한 뒤 Evaluation을 완료합니다. 즉, 더 이상 예측이나 점수를 로그할 수 없습니다.
출처

method set_view

set_view(
    name: 'str',
    content: 'Content | str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → None
평가의 메인 호출 요약에서 weave.views 아래에 뷰를 첨부합니다. 제공된 콘텐츠를 프로젝트 내 객체로 저장하고, 그 참조 URI를 평가의 evaluate 호출에 대해 summary.weave.views.<name> 아래에 기록합니다. 문자열 입력은 제공된 확장자 또는 mimetype과 함께 Content.from_text를 사용해 텍스트 콘텐츠로 래핑됩니다. Args:
  • name: 표시할 뷰 이름으로, summary.weave.views 아래의 키로 사용됩니다.
  • content: 직렬화할 weave.Content 인스턴스 또는 문자열.
  • extension: 문자열 콘텐츠 입력을 위한 선택적 파일 확장자.
  • mimetype: 문자열 콘텐츠 입력을 위한 선택적 MIME 타입.
  • metadata: 새로 생성된 Content에 첨부되는 선택적 메타데이터.
  • encoding: 문자열 콘텐츠 입력을 위한 텍스트 인코딩. Returns: None
Examples: import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)

출처

class File

파일의 경로, MIME 타입, 크기 정보를 나타내는 클래스입니다. 출처

method __init__

__init__(path: 'str | Path', mimetype: 'str | None' = None)
File 객체를 초기화합니다. 매개변수:

property filename

파일 이름을 가져옵니다.
  • path: 파일 경로 (문자열 또는 pathlib.Path)
  • mimetype: 선택적인 파일 MIME 타입 - 제공되지 않으면 확장자에서 추론됩니다 반환값:
  • str: 디렉터리 경로를 제외한 파일 이름.

출처

메서드 open

open() → bool
운영 체제의 기본 애플리케이션을 사용하여 파일을 엽니다. 이 메서드는 플랫폼별 메커니즘을 사용하여 파일 유형에 연결된 기본 애플리케이션으로 파일을 엽니다. 반환값:
  • bool: 파일을 성공적으로 열면 True, 그렇지 않으면 False입니다.

출처

method save

save(dest: 'str | Path') → None
파일을 지정된 대상 경로로 복사합니다. 인자:
출처

class Markdown

Markdown 렌더링 객체입니다.
  • dest: 파일이 복사될 대상 경로(문자열 또는 pathlib.Path). 대상 경로는 파일 또는 디렉터리일 수 있습니다. Args:
  • markup (str): Markdown 문자열.
  • code_theme (str, optional): 코드 블록에 사용할 Pygments 테마. 기본값은 “monokai”입니다. 코드 테마는 https://pygments.org/styles/ 에서 확인할 수 있습니다.
  • justify (JustifyMethod, optional): 문단에 사용할 정렬 값. 기본값은 None입니다.
  • style (Union[str, Style], optional): Markdown에 적용할 선택적 스타일.
  • hyperlinks (bool, optional): 하이퍼링크 사용 여부. 기본값은 True입니다.
출처

메서드 __init__

__init__(
    markup: 'str',
    code_theme: 'str' = 'monokai',
    justify: 'JustifyMethod | None' = None,
    style: 'str | Style' = 'none',
    hyperlinks: 'bool' = True,
    inline_code_lexer: 'str | None' = None,
    inline_code_theme: 'str | None' = None
) → None

출처

class MessagesPrompt

출처

method __init__

__init__(messages: list[dict])
  • inline_code_lexer: (str, optional): 인라인 코드 구문 강조가 활성화된 경우 사용할 lexer입니다. 기본값은 None입니다.
  • inline_code_theme: (Optional[str], optional): 인라인 코드 구문 강조에 사용할 Pygments 테마입니다. 구문 강조를 사용하지 않으려면 None으로 설정합니다. 기본값은 None입니다. Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • messages: list[dict]
출처

method format

format(**kwargs: Any) → list

출처

method format_message

format_message(message: dict, **kwargs: Any) → dict
템플릿 변수를 치환하여 단일 메시지의 서식을 지정합니다. 이 메서드는 실제 서식 지정 로직을 독립 함수인 format_message_with_template_vars에 위임합니다.
출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

class Model

입력을 받아 동작하는 코드와 데이터의 조합을 표현합니다. 예를 들어, 프롬프트와 함께 LLM을 호출해 예측을 수행하거나 텍스트를 생성할 수 있습니다. 모델을 정의하는 속성이나 코드를 변경하면, 이러한 변경 사항이 로깅되고 버전이 업데이트됩니다. 이를 통해 서로 다른 모델 버전 간의 예측 결과를 비교할 수 있습니다. 이를 활용해 프롬프트를 반복적으로 개선하거나 최신 LLM을 사용해 보고, 다양한 설정에서의 예측을 비교할 수 있습니다. 예시:
class YourModel(Model):
     attribute1: str
     attribute2: int

     @weave.op
     def predict(self, input_data: str) -> dict:
         # 모델 로직이 여기에 들어갑니다
         prediction = self.attribute1 + ' ' + input_data
         return {'pred': prediction}
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
출처

method get_infer_method

get_infer_method() → Callable

출처

class Monitor

수신 호출을 자동으로 점수화하는 모니터를 설정합니다. 예제:
import weave
from weave.scorers import ValidJSONScorer

json_scorer = ValidJSONScorer()

my_monitor = weave.Monitor(
     name="my-monitor",
     description="This is a test monitor",
     sampling_rate=0.5,
     op_names=["my_op"],
     query={
         "$expr": {
             "$gt": [
                 {
                         "$getField": "started_at"
                     },
                     {
                         "$literal": 1742540400
                     }
                 ]
             }
         }
     },
     scorers=[json_scorer],
)

my_monitor.activate()
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • sampling_rate: <class 'float'>
  • scorers: list[flow.scorer.Scorer]
  • op_names: list[str]
  • query: trace_server.interface.query.Query | None
  • active: <class 'bool'>
출처

method activate

activate() → ObjectRef
모니터를 활성화합니다. 반환값: 모니터에 대한 참조(ref)를 반환합니다.
출처

method deactivate

deactivate() → ObjectRef
모니터를 비활성화합니다. 반환값: 모니터에 대한 참조(ref)입니다.
출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

class Object

Weave 객체를 추적하고 버전 관리할 수 있게 해주는 기본 클래스입니다. 이 클래스는 Pydantic의 BaseModel을 확장하여 객체 추적, 참조, 직렬화를 위한 Weave 전용 기능을 제공합니다. 객체에는 이름과 설명, 그리고 Weave 시스템에 저장하고 다시 가져올 수 있도록 하는 참조를 가질 수 있습니다. 속성:
  • name (Optional[str]): 사람이 읽고 이해할 수 있는 객체 이름.
  • description (Optional[str]): 객체가 무엇을 나타내는지에 대한 설명.
  • ref (Optional[ObjectRef]): Weave 시스템 내 객체에 대한 참조.
예시:
# 간단한 객체 생성
obj = Object(name="my_object", description="A test object")

# URI에서 객체 생성
obj = Object.from_uri("weave:///entity/project/object:digest")
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
출처

classmethod from_uri

from_uri(uri: str, objectify: bool = True) → Self
Weave URI로부터 객체 인스턴스를 생성합니다. 인수:
  • uri (str): 객체를 가리키는 Weave URI입니다.
  • objectify (bool): 결과를 객체화할지 여부입니다. 기본값은 True입니다.
반환값:
  • Self: URI로부터 생성된 이 클래스의 인스턴스입니다.
예외:
  • NotImplementedError: 클래스가 역직렬화에 필요한 메서드를 구현하지 않은 경우 발생합니다.
예제:
obj = MyObject.from_uri("weave:///entity/project/object:digest")

출처

classmethod handle_relocatable_object

handle_relocatable_object(
    v: Any,
    handler: ValidatorFunctionWrapHandler,
    info: ValidationInfo
) → Any
ObjectRef 및 WeaveObject를 포함한 재배치 가능한 객체의 검증을 처리합니다. 이 검증기는 입력값이 표준 Object 인스턴스로 적절히 변환되어야 하는 ObjectRef 또는 WeaveObject인 특수한 경우를 처리합니다. 검증 과정에서 참조가 보존되고, 무시하도록 지정된 타입이 올바르게 처리되도록 보장합니다. Args:
  • v (Any): 검증할 값.
  • handler (ValidatorFunctionWrapHandler): 표준 pydantic 검증 핸들러.
  • info (ValidationInfo): 검증 컨텍스트 정보.
Returns:
  • Any: 검증된 객체 인스턴스.
Examples: 이 메서드는 객체 생성 및 검증 중에 자동으로 호출됩니다. 다음과 같은 경우를 처리합니다: ```python

ObjectRef가 전달된 경우

obj = MyObject(some_object_ref)

WeaveObject가 전달될 때

obj = MyObject(some_weave_object)

---

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/weave/trace/refs.py#L159" />

## <kbd>class</kbd> `ObjectRef`
ObjectRef(entity: 'str', project: 'str', name: 'str', _digest: 'str | Future[str]', _extra: 'tuple[str | Future[str], ...]' = ()) 

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/../../../../weave/trace/refs/__init__" />

### <kbd>method</kbd> `__init__`

```python
__init__(
    entity: 'str',
    project: 'str',
    name: 'str',
    _digest: 'str | Future[str]',
    _extra: 'tuple[str | Future[str], ]' = ()
) → None

속성 다이제스트


property extra


출처

method as_param_dict

as_param_dict() → dict

출처

method delete

delete() → None

출처

method get

get(objectify: 'bool' = True) → Any

출처

메서드 is_descended_from

is_descended_from(potential_ancestor: 'ObjectRef') → bool

출처

method maybe_parse_uri

maybe_parse_uri(s: 'str') → AnyRef | None

출처

method parse_uri

parse_uri(uri: 'str') → ObjectRef

출처

method uri

uri() → str

출처

method with_attr

with_attr(attr: 'str') → Self

출처

메서드 with_extra

with_extra(extra: 'tuple[str | Future[str], ]') → Self

출처

method with_index

with_index(index: 'int') → Self

출처

메서드 with_item

with_item(item_digest: 'str | Future[str]') → Self

출처

method with_key

with_key(key: 'str') → Self

출처

class Prompt

Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
출처

method format

format(**kwargs: Any) → Any

출처

class SavedView

SavedView 객체를 다루기 위한 플루언트 스타일 클래스입니다. 출처

메서드 __init__

__init__(view_type: 'str' = 'traces', label: 'str' = 'SavedView') → None

property 엔티티


property 레이블


property 프로젝트


property view_type


출처

메서드 add_column

add_column(path: 'str | ObjectPath', label: 'str | None' = None) → SavedView

출처

method add_columns

add_columns(*columns: 'str') → SavedView
그리드에 여러 개의 열을 한 번에 추가하기 위한 편의 메서드입니다.
출처

메서드 add_filter

add_filter(
    field: 'str',
    operator: 'str',
    value: 'Any | None' = None
) → SavedView

출처

메서드 add_sort

add_sort(field: 'str', direction: 'SortDirection') → SavedView

출처

method column_index

column_index(path: 'int | str | ObjectPath') → int

출처

메서드 filter_op

filter_op(op_name: 'str | None') → SavedView

출처

메서드 get_calls

get_calls(
    limit: 'int | None' = None,
    offset: 'int | None' = None,
    include_costs: 'bool' = False,
    include_feedback: 'bool' = False,
    all_columns: 'bool' = False
) → CallsIter
이 저장된 뷰의 필터 및 설정에 맞는 호출을 가져옵니다.
출처

메서드 get_known_columns

get_known_columns(num_calls_to_query: 'int | None' = None) → list[str]
이미 존재하는 것으로 확인된 컬럼 집합을 반환합니다.
출처

메서드 get_table_columns

get_table_columns() → list[TableColumn]

출처

method hide_column

hide_column(col_name: 'str') → SavedView

출처

method insert_column

insert_column(
    idx: 'int',
    path: 'str | ObjectPath',
    label: 'str | None' = None
) → SavedView

출처

classmethod load

load(ref: 'str') → Self

출처

method page_size

page_size(page_size: 'int') → SavedView

출처

method pin_column_left

pin_column_left(col_name: 'str') → SavedView

출처

method pin_column_right

pin_column_right(col_name: 'str') → SavedView

출처

method remove_column

remove_column(path: 'int | str | ObjectPath') → SavedView

출처

method remove_columns

remove_columns(*columns: 'str') → SavedView
저장된 뷰에서 열을 삭제합니다.
출처

method remove_filter

remove_filter(index_or_field: 'int | str') → SavedView

출처

method remove_filters

remove_filters() → SavedView
저장된 보기에서 모든 필터를 제거합니다.
출처

method rename

rename(label: 'str') → SavedView

출처

메서드 rename_column

rename_column(path: 'int | str | ObjectPath', label: 'str') → SavedView

출처

메서드 save

save() → SavedView
저장된 뷰를 서버에 게시합니다.
출처

method set_columns

set_columns(*columns: 'str') → SavedView
그리드에 표시할 열을 지정합니다.
출처

method show_column

show_column(col_name: 'str') → SavedView

출처

메서드 sort_by

sort_by(field: 'str', direction: 'SortDirection') → SavedView

출처

method to_grid

to_grid(limit: 'int | None' = None) → Grid

출처

method to_rich_table_str

to_rich_table_str() → str

출처

메서드 ui_url

ui_url() → str | None
UI에서 이 저장된 뷰를 표시하는 URL입니다. 단, 이 URL은 트레이스 등이 포함된 “결과(result)” 페이지의 URL이며, 뷰 객체 자체를 가리키는 URL은 아닙니다.
출처

method unpin_column

unpin_column(col_name: 'str') → SavedView

출처

class Scorer

Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • column_map: dict[str, str] | None
출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

메서드 model_post_init

model_post_init(_Scorer__context: Any) → None

출처

method score

score(output: Any, **kwargs: Any) → Any

출처

method summarize

summarize(score_rows: list) → dict | None

출처

class StringPrompt

출처

메서드 __init__

__init__(content: str)
Pydantic 필드:
  • name: str | None
  • description: str | None
  • ref: trace.refs.ObjectRef | None
  • content: <class 'str'>
출처

method format

format(**kwargs: Any) → str

출처

classmethod from_obj

from_obj(obj: WeaveObject) → Self

출처

class Table

출처

method __init__

__init__(rows: 'list[dict]') → None

property


출처

method append

append(row: 'dict') → None
테이블에 행을 추가합니다.
출처

method pop

pop(index: 'int') → None
지정된 인덱스의 행을 테이블에서 제거합니다.
출처

class ContextAwareThread

호출자의 컨텍스트로 함수를 실행하는 Thread입니다. 이는 threading.Thread의 드롭인 대체재로, 스레드 내부에서도 호출이 예상대로 동작하도록 보장합니다. Weave는 특정 contextvars가 설정되어 있어야 합니다(call_context.py 참조). 하지만 새 스레드는 부모로부터 컨텍스트를 자동으로 복사하지 않기 때문에 호출 컨텍스트가 유실될 수 있으며, 이는 바람직하지 않습니다! 이 클래스는 contextvars 복사를 자동화하여, 이 스레드를 사용하면 사용자가 기대하는 것처럼 “그냥 동작하도록” 해 줍니다. 이 클래스를 사용하지 않고도, 대신 다음과 같이 작성하면 동일한 효과를 얻을 수 있습니다:
def run_with_context(func, *args, **kwargs):
     context = copy_context()
     def wrapper():
         context.run(func, *args, **kwargs)
     return wrapper

thread = threading.Thread(target=run_with_context(your_func, *args, **kwargs))
thread.start()
출처

method __init__

__init__(*args: 'Any', **kwargs: 'Any') → None

property daemon

이 스레드가 데몬 스레드인지 여부를 나타내는 불리언 값입니다. 이 값은 start()가 호출되기 전에 설정해야 하며, 그렇지 않으면 RuntimeError가 발생합니다. 초기값은 이 스레드를 생성한 스레드로부터 상속됩니다. 메인 스레드는 데몬 스레드가 아니므로, 메인 스레드에서 생성된 모든 스레드의 기본값은 daemon = False입니다. 데몬 스레드만 남게 되면 전체 Python 프로그램이 종료됩니다.

property ident

이 스레드의 식별자이며, 스레드가 시작되지 않았다면 None입니다. 이 값은 0이 아닌 정수입니다. get_ident() 함수를 참고하세요. 스레드 식별자는 한 스레드가 종료되고 다른 스레드가 생성될 때 재사용될 수 있습니다. 스레드가 종료된 이후에도 이 식별자에는 계속 접근할 수 있습니다.

property name

식별용으로만 사용되는 문자열입니다. 별도의 의미(시맨틱)는 없습니다. 여러 스레드에 동일한 이름을 부여할 수 있습니다. 초기 이름은 생성자에서 설정됩니다.

property native_id

이 스레드의 네이티브 정수형 스레드 ID이며, 스레드가 시작되지 않았다면 None입니다. 이 값은 음이 아닌 정수입니다. get_native_id() 함수를 참조하세요. 이는 커널이 보고하는 Thread ID를 나타냅니다.
출처

method run

run() → None

출처

class ThreadContext

현재 스레드와 턴 정보에 접근할 수 있는 컨텍스트 객체입니다. 출처

method __init__

__init__(thread_id: 'str | None')
지정된 thread_id를 사용하여 ThreadContext를 초기화합니다. 인자:

property thread_id

이 컨텍스트의 thread_id를 가져옵니다.
  • thread_id: 이 컨텍스트의 스레드 식별자이며, 비활성화된 경우 None입니다. Returns: 스레드 식별자이며, 스레드 추적이 비활성화된 경우 None입니다.

property turn_id

활성 컨텍스트에서 현재 turn_id를 가져옵니다. 반환값: 설정되어 있으면 현재 turn_id를, 그렇지 않으면 None을 반환합니다.
출처

class ContextAwareThreadPoolExecutor

호출자(caller)의 컨텍스트에서 함수를 실행하는 ThreadPoolExecutor입니다. 이 클래스는 concurrent.futures.ThreadPoolExecutor를 그대로 대체할 수 있는 클래스로, executor 내부에서 Weave 호출이 예상대로 동작하도록 보장합니다. Weave는 특정 contextvars가 설정되어 있어야 하지만(call_context.py 참조), 새 스레드는 기본적으로 부모 스레드의 컨텍스트를 자동으로 복사하지 않기 때문에 호출 컨텍스트가 사라질 수 있습니다. 이는 바람직하지 않습니다. 이 클래스는 contextvar 복사를 자동화하여, 사용자가 기대하는 것처럼 이 executor를 사용하기만 하면 그냥 잘 동작하도록 해줍니다. 이 클래스를 사용하지 않고, 대신 다음과 같이 작성해서도 동일한 효과를 얻을 수 있습니다:
with concurrent.futures.ThreadPoolExecutor() as executor:
     contexts = [copy_context() for _ in range(len(vals))]

     def _wrapped_fn(*args):
         return contexts.pop().run(fn, *args)

     executor.map(_wrapped_fn, vals)
출처

메서드 __init__

__init__(*args: 'Any', **kwargs: 'Any') → None

출처

method map

map(
    fn: 'Callable',
    *iterables: 'Iterable[Any]',
    timeout: 'float | None' = None,
    chunksize: 'int' = 1
) → Iterator

출처

method submit

submit(fn: 'Callable', *args: 'Any', **kwargs: 'Any') → Any

출처

함수 as_op

as_op(fn: 'Callable[P, R]') → Op[P, R]
@weave.op 데코레이터가 적용된 함수가 주어지면, 해당 함수의 Op를 반환합니다. @weave.op 데코레이터가 적용된 함수는 이미 Op의 인스턴스이므로, 이 함수는 런타임에는 사실상 아무 동작도 하지 않는 no-op입니다. 다만 타입 안전한 방식으로 OpDef 속성에 접근해야 할 때, 타입 체커를 만족시키기 위한 용도로 사용할 수 있습니다. Args:
  • fn: weave.op 데코레이터가 적용된 함수. Returns: 함수의 Op.

출처

function attributes

attributes(attributes: 'dict[str, Any]') → Iterator
호출에 대해 속성을 설정하는 컨텍스트 관리자입니다. 예시:
with weave.attributes({'env': 'production'}):
     print(my_function.call("World"))

출처

function finish

finish() → None
Weave 로깅을 중지합니다. finish 이후에는 weave.op 데코레이터가 적용된 함수 호출이 더 이상 로깅되지 않습니다. 로깅을 다시 시작하려면 weave.init()을 다시 실행해야 합니다.
출처

function get

get(uri: 'str | ObjectRef') → Any
URI로부터 객체를 가져오는 편의 함수입니다. Weave에서 로깅된 많은 객체는 Weave 서버에 자동으로 등록됩니다. 이 함수는 이러한 객체를 해당 URI를 통해 가져올 수 있게 해줍니다. Args:
  • uri: 완전한 형식의 weave ref URI입니다. Returns: 객체를 반환합니다.
Example:
weave.init("weave_get_example")
dataset = weave.Dataset(rows=[{"a": 1, "b": 2}])
ref = weave.publish(dataset)

dataset2 = weave.get(ref)  # dataset과 동일!

출처

function get_client

get_client() → WeaveClient | None

출처

function get_current_call

get_current_call() → Call | None
현재 실행 중인 Op의 Call 객체를, 해당 Op 내부에서 가져옵니다. Returns: 현재 실행 중인 Op의 Call 객체를 반환하며, 추적이 초기화되지 않았거나 이 메서드가 Op 외부에서 호출된 경우에는 None을 반환합니다. Note:
반환된 Call의 attributes 사전은 호출이 시작되면 변경할 수 없게 됩니다(immutable). Op를 호출하기 전에 :func:weave.attributes를 사용하여 호출 메타데이터를 설정하세요. summary 필드는 Op가 실행되는 동안 업데이트될 수 있으며, 호출이 끝날 때 계산된 summary 정보와 병합됩니다.

출처

function init

init(
    project_name: 'str',
    settings: 'UserSettings | dict[str, Any] | None' = None,
    autopatch_settings: 'AutopatchSettings | None' = None,
    global_postprocess_inputs: 'PostprocessInputsFunc | None' = None,
    global_postprocess_output: 'PostprocessOutputFunc | None' = None,
    global_attributes: 'dict[str, Any] | None' = None
) → WeaveClient
Weave 트래킹을 초기화하여 wandb 프로젝트에 로그를 기록합니다. 로깅은 전역적으로 초기화되므로 init의 반환값에 대한 참조를 유지할 필요가 없습니다. init 이후에는 weave.op 데코레이터가 적용된 함수 호출이 지정된 프로젝트에 로깅됩니다. 인자(Args): 참고: 전역 후처리 설정은 각 op 고유의 후처리 이후에 모든 op에 적용됩니다. 순서는 항상 다음과 같습니다. 1. op별 후처리 2. 전역 후처리
  • project_name: 로그를 기록할 Weights & Biases 팀과 프로젝트의 이름입니다. 팀을 지정하지 않으면 기본 엔터티가 사용됩니다. 기본 엔터티를 찾거나 업데이트하려면 W&B Models 문서의 User Settings를 참조하세요.
  • settings: 일반적인 Weave 클라이언트 설정입니다.
  • autopatch_settings: (사용 중단됨) 자동 패치 인테그레이션을 위한 설정입니다. 대신 명시적 패치를 사용하세요.
  • global_postprocess_inputs: 모든 op의 모든 입력에 적용될 함수입니다.
  • global_postprocess_output: 모든 op의 모든 출력에 적용될 함수입니다.
  • global_attributes: 모든 트레이스에 적용할 속성 사전입니다. 반환값(Returns): Weave 클라이언트를 반환합니다.

출처

function log_call

log_call(
    op: 'str',
    inputs: 'dict[str, Any]',
    output: 'Any',
    parent: 'Call | None' = None,
    attributes: 'dict[str, Any] | None' = None,
    display_name: 'str | Callable[[Call], str] | None' = None,
    use_stack: 'bool' = True,
    exception: 'BaseException | None' = None
) → Call
데코레이터 패턴을 사용하지 않고 Weave에 직접 호출을 기록합니다. 이 함수는 Weave에 로깅 작업을 수행하기 위한 명령형 API를 제공합니다. 호출이 이미 실행된 후에 나중에 별도로 기록하고 싶을 때나, 데코레이터 패턴이 사용 사례에 적합하지 않을 때 유용합니다. Args:
  • op (str): 기록할 연산 이름입니다. 이 값은 호출의 op_name으로 사용됩니다. 게시된 op를 참조하지 않는 문자열(익명 연산)도 지원됩니다.
  • inputs (dict[str, Any]): 연산의 입력 파라미터를 담은 사전입니다.
  • output (Any): 연산의 출력/결과입니다.
  • parent (Call | None): 이 호출을 중첩시킬 선택적 부모 호출입니다. 제공되지 않으면 이 호출은 루트 수준 호출(또는 존재하는 경우 현재 호출 컨텍스트 아래에 중첩)입니다. 기본값은 None입니다.
  • attributes (dict[str, Any] | None): 호출에 첨부할 선택적 메타데이터입니다. 호출이 생성되면 이 메타데이터는 고정됩니다. 기본값은 None입니다.
  • display_name (str | Callable[[Call], str] | None): UI에서 호출에 사용할 선택적 표시 이름입니다. 문자열이거나, Call 객체를 받아 문자열을 반환하는 호출 가능한 객체일 수 있습니다. 기본값은 None입니다.
  • use_stack (bool): 런타임 스택에 이 호출을 푸시할지 여부입니다. True이면 호출은 호출 컨텍스트에서 사용 가능하며, weave.require_current_call()을 통해 접근할 수 있습니다. False이면 호출은 로깅되지만 호출 스택에는 추가되지 않습니다. 기본값은 True입니다.
  • exception (BaseException | None): 연산이 실패했을 때 기록할 선택적 예외입니다. 기본값은 None입니다.
Returns:
  • Call: 전체 트레이스 정보를 포함한, 생성이 완료된 Call 객체입니다.
Examples: 기본 사용법:
import weave
    >>> weave.init('my-project')
    >>> call = weave.log_call(
    ...     op="my_function",
    ...     inputs={"x": 5, "y": 10},
    ...     output=15
    ... )

    속성 및 표시 이름과 함께 로깅:
    >>> call = weave.log_call(
    ...     op="process_data",
    ...     inputs={"data": [1, 2, 3]},
    ...     output={"mean": 2.0},
    ...     attributes={"version": "1.0", "env": "prod"},
    ...     display_name="Data Processing"
    ... )

    실패한 작업 로깅:
    >>> try:
    ...     result = risky_operation()
    ... except Exception as e:
    ...     call = weave.log_call(
    ...         op="risky_operation",
    ...         inputs={},
    ...         output=None,
    ...         exception=e
    ...     )

    호출 중첩:
    >>> parent_call = weave.log_call("parent", {"input": 1}, 2)
    >>> child_call = weave.log_call(
    ...     "child",
    ...     {"input": 2},
    ...     4,
    ...     parent=parent_call
    ... )

    호출 스택에 추가하지 않고 로깅:
    >>> call = weave.log_call(
    ...     op="background_task",
    ...     inputs={"task_id": 123},
    ...     output="completed",
    ...     use_stack=False  # 호출 스택에 추가하지 않음
    ... )

---

<SourceLink url="https://github.com/wandb/weave/blob/v0.52.24/weave/trace/op.py#L1202" />

### <kbd>function</kbd> `op`

```python
op(
    func: 'Callable[P, R] | None' = None,
    name: 'str | None' = None,
    call_display_name: 'str | CallDisplayNameFunc | None' = None,
    postprocess_inputs: 'PostprocessInputsFunc | None' = None,
    postprocess_output: 'PostprocessOutputFunc | None' = None,
    tracing_sample_rate: 'float' = 1.0,
    enable_code_capture: 'bool' = True,
    accumulator: 'Callable[[Any | None, Any], Any] | None' = None,
    kind: 'OpKind | None' = None,
    color: 'OpColor | None' = None
) → Callable[[Callable[P, R]], Op[P, R]] | Op[P, R]
함수나 메서드를 Weave op로 변환해 주는 데코레이터입니다. 동기와 비동기 모두에서 동작합니다. 이터레이터 함수를 자동으로 감지하여 적절한 동작을 적용합니다.
출처

함수 publish

publish(obj: 'Any', name: 'str | None' = None) → ObjectRef
Python 객체를 저장하고 버전 관리를 수행합니다. Weave는 객체 이름이 이미 존재하고 해당 콘텐츠 해시가 그 객체의 최신 버전과 일치하지 않는 경우 새 버전을 생성합니다. 인자(Args):
  • obj: 저장하고 버전 관리를 수행할 객체.
  • name: 객체를 저장할 때 사용할 이름. 반환값(Returns): 저장된 객체를 가리키는 Weave Ref.

출처

함수 ref

ref(location: 'str') → ObjectRef
기존 Weave 객체에 대한 Ref를 생성합니다. 이 함수는 객체를 직접 가져오지 않고, 다른 Weave API 함수에 전달할 수 있도록 해 줍니다. Args:
  • location: Weave Ref URI, 또는 weave.init()이 호출된 이후라면 name:version 또는 name. 버전을 지정하지 않으면 latest가 사용됩니다. Returns: 해당 객체를 가리키는 Weave Ref.

출처

함수 require_current_call

require_current_call() → Call
현재 실행 중인 Op 내부에서, 해당 Op의 Call 객체를 가져옵니다. 이렇게 하면 실행 중에 Call의 id나 피드백 같은 속성에 접근할 수 있습니다.
@weave.op
def hello(name: str) -> None:
     print(f"Hello {name}!")
     current_call = weave.require_current_call()
     print(current_call.id)
Op이 반환된 뒤에도 Call에 접근할 수 있습니다. UI 등에서 Call의 ID를 알고 있다면, weave.init에서 반환된 WeaveClientget_call 메서드를 사용해 Call 객체를 가져올 수 있습니다.
client = weave.init("<project>")
mycall = client.get_call("<call_id>")
또는 Op를 정의한 후에는 call 메서드를 직접 호출할 수도 있습니다. 예를 들어:
@weave.op
def add(a: int, b: int) -> int:
     return a + b

result, call = add.call(1, 2)
print(call.id)
반환값: 현재 실행 중인 Op의 Call 객체 예외:
  • NoCurrentCallError: 추적이 초기화되지 않았거나 이 메서드가 Op 외부에서 호출된 경우.

출처

함수 set_view

set_view(
    name: 'str',
    content: 'Content | str',
    extension: 'str | None' = None,
    mimetype: 'str | None' = None,
    metadata: 'dict[str, Any] | None' = None,
    encoding: 'str' = 'utf-8'
) → None
현재 호출 요약의 _weave.views.<name>에 사용자 정의 뷰를 첨부합니다. Args:
  • name: 뷰 이름 (summary._weave.views의 키).
  • content: weave.Content 인스턴스 또는 원시 문자열. 문자열은 제공된 확장자 또는 mimetype을 사용해 Content.from_text로 래핑됩니다.
  • extension: content가 문자열일 때 사용할 선택적 파일 확장자.
  • mimetype: content가 문자열일 때 사용할 선택적 MIME 타입.
  • metadata: 텍스트에서 Content를 생성할 때 함께 첨부할 수 있는 선택적 메타데이터.
  • encoding: 텍스트에서 Content를 생성할 때 적용할 텍스트 인코딩. Returns: 없음
Examples: import weave
weave.init(“proj”) @weave.op … def foo(): … weave.set_view(“readme”, ”# Hello”, extension=“md”) … return 1 foo()

출처

function thread

thread(
    thread_id: 'str | None | object' = <object object at 0x1105c49a0>
) → Iterator[ThreadContext]
컨텍스트 내에서 이루어지는 호출에 대해 thread_id를 설정하는 컨텍스트 매니저입니다. 예시:
# thread_id 자동 생성
with weave.thread() as t:
     print(f"Thread ID: {t.thread_id}")
     result = my_function("input")  # 이 호출에는 자동 생성된 thread_id가 적용됩니다
     print(f"Current turn: {t.turn_id}")

# 명시적 thread_id
with weave.thread("custom_thread") as t:
     result = my_function("input")  # 이 호출에는 thread_id="custom_thread"가 적용됩니다

# 스레딩 비활성화
with weave.thread(None) as t:
     result = my_function("input")  # 이 호출에는 thread_id=None이 적용됩니다
인자(Args):
  • thread_id: 이 컨텍스트에서의 호출에 연관할 스레드 식별자입니다. 제공되지 않으면 UUID v7이 자동 생성됩니다. None이면 스레드 추적이 비활성화됩니다. 생성(Yields):
  • ThreadContext: thread_id 및 현재 turn_id에 접근할 수 있는 객체입니다.

출처

function wandb_init_hook

wandb_init_hook() → None