endpoint - 🦑 TruLens

trulens.providers.cortex.endpoint

trulens.providers.cortex.endpoint

Classes

CortexCallback

Bases: EndpointCallback

Attributes
endpoint
endpoint: Endpoint = Field(exclude=True)

The endpoint owning this callback.

cost
cost: Cost = Field(default_factory=Cost)

Costs tracked by this callback.

Functions
handle_generation
handle_generation(response: dict) -> None

Get the usage information from Cortex LLM function response's usage field.

__repr__
__repr__() -> str

Safe repr that handles circular references.

__rich_repr__
__rich_repr__() -> Result

Requirement for pretty printing using the rich package.

handle
handle(response: Any) -> None

Called after each request.

handle_chunk
handle_chunk(response: Any) -> None

Called after receiving a chunk from a request.

handle_generation_chunk
handle_generation_chunk(response: Any) -> None

Called after receiving a chunk from a completion request.

handle_classification
handle_classification(response: Any) -> None

Called after each classification response.

handle_embedding
handle_embedding(response: Any) -> None

Called after each embedding response.

CortexEndpoint

Bases: Endpoint

Snowflake Cortex endpoint.

Attributes
tru_class_info
tru_class_info: Class

Class information of this pydantic object for use in deserialization.

instrumented_methods
instrumented_methods: Dict[
    Any, List[Tuple[Callable, Callable, Type[Endpoint]]]
] = defaultdict(list)

Mapping of classes/module-methods that have been instrumented for cost tracking.

name
name: str

API/endpoint name.

rpm
rpm: float = DEFAULT_RPM

Requests per minute.

retries
retries: int = 3

Retries (if performing requests using this class).

post_headers
post_headers: Dict[str, str] = Field(
    default_factory=dict, exclude=True
)

Optional post headers for post requests if done by this class.

pace
pace: Pace = Field(
    default_factory=lambda: Pace(
        marks_per_second=DEFAULT_RPM / 60.0,
        seconds_per_period=60.0,
    ),
    exclude=True,
)

Pacing instance to maintain a desired rpm.

global_callback
global_callback: EndpointCallback = Field(exclude=True)

Track costs not run inside "track_cost" here.

callback_class
callback_class: Type[EndpointCallback] = Field(exclude=True)

Callback class to use for usage tracking.

callback_name
callback_name: str = Field(exclude=True)

Name of variable that stores the callback noted above.

Classes
EndpointSetup

Class for storing supported endpoint information.

Functions
get_instances
get_instances() -> Generator[InstanceRefMixin]

Get all instances of the class.

delete_instances
delete_instances()

Delete all instances of the class.

__rich_repr__
__rich_repr__() -> Result

Requirement for pretty printing using the rich package.

load
load(obj, *args, **kwargs)

Deserialize/load this object using the class information in tru_class_info.

model_validate
model_validate(*args, **kwargs) -> Any

Deserialized a jsonized version of the app into the instance of the class it was serialized from.

pace_me
pace_me() -> float

Block until we can make a request to this endpoint to keep pace with maximum rpm. Returns time in seconds since last call to this method returned.

run_in_pace
run_in_pace(
    func: Callable[[A], B], *args, **kwargs
) -> B

Run the given func with the provided args and kwargs at pace with the endpoint-specified rpm. Failures will be retried self.retries times.

run_me
run_me(thunk: Thunk[T]) -> T

DEPRECATED: Run the given thunk, returning its output, on pace with the api.

print_instrumented
print_instrumented()

Print out all of the methods that have been instrumented for cost tracking.

track_all_costs
track_all_costs(
    __func: CallableMaybeAwaitable[A, T],
    *args,
    with_openai: bool = True,
    with_hugs: bool = True,
    with_litellm: bool = True,
    with_bedrock: bool = True,
    with_cortex: bool = True,
    with_dummy: bool = True,
    **kwargs
) -> Tuple[T, Sequence[EndpointCallback]]

Track costs of all of the apis we can currently track, over the execution of thunk.

track_all_costs_tally
track_all_costs_tally(
    __func: CallableMaybeAwaitable[A, T],
    *args,
    with_openai: bool = True,
    with_hugs: bool = True,
    with_litellm: bool = True,
    with_bedrock: bool = True,
    with_cortex: bool = True,
    with_dummy: bool = True,
    **kwargs
) -> Tuple[T, Thunk[Cost]]

Track costs of all of the apis we can currently track, over the execution of thunk.

track_cost
track_cost(
    __func: CallableMaybeAwaitable[..., T], *args, **kwargs
) -> Tuple[T, EndpointCallback]

Tally only the usage performed within the execution of the given thunk.

wrap_function
wrap_function(func)

Create a wrapper of the given function to perform cost tracking.

Functions

register_otel_cost_tracking

register_otel_cost_tracking() -> None

Register OTel-tracing cost instrumentation for the Cortex provider.