Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions langfuse/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
dataset_run_items,
datasets,
experiments,
feedback,
health,
ingestion,
legacy,
Expand Down Expand Up @@ -95,6 +96,7 @@
DatasetRunItem,
DatasetRunWithItems,
DatasetStatus,
Deprecation,
Error,
MapValue,
MethodNotAllowedError,
Expand All @@ -108,6 +110,7 @@
ObservationLevel,
ObservationV2,
ObservationsView,
ObservationsViewSingle,
PricingTier,
PricingTierCondition,
PricingTierInput,
Expand Down Expand Up @@ -156,6 +159,12 @@
ExperimentsResponse,
ExperimentsResponseMeta,
)
from .feedback import (
FeedbackNotConfiguredError,
FeedbackTargetType,
SubmitFeedbackRequest,
SubmitFeedbackResponse,
)
from .health import HealthResponse, ServiceUnavailableError
from .ingestion import (
BaseEvent,
Expand Down Expand Up @@ -423,13 +432,16 @@
"DeleteLlmConnectionResponse": ".llm_connections",
"DeleteMembershipRequest": ".organizations",
"DeleteTraceResponse": ".trace",
"Deprecation": ".commons",
"EmptyResponse": ".scim",
"Error": ".commons",
"Experiment": ".experiments",
"ExperimentItem": ".experiments",
"ExperimentItemsResponse": ".experiments",
"ExperimentsResponse": ".experiments",
"ExperimentsResponseMeta": ".experiments",
"FeedbackNotConfiguredError": ".feedback",
"FeedbackTargetType": ".feedback",
"FilterConfig": ".scim",
"GetCommentsResponse": ".comments",
"GetMediaResponse": ".media",
Expand Down Expand Up @@ -493,6 +505,7 @@
"ObservationsV2Meta": ".observations",
"ObservationsV2Response": ".observations",
"ObservationsView": ".commons",
"ObservationsViewSingle": ".commons",
"OpenAiCompletionUsageSchema": ".ingestion",
"OpenAiResponseUsageSchema": ".ingestion",
"OpenAiUsage": ".ingestion",
Expand Down Expand Up @@ -586,6 +599,8 @@
"Session": ".commons",
"SessionWithTraces": ".commons",
"Sort": ".trace",
"SubmitFeedbackRequest": ".feedback",
"SubmitFeedbackResponse": ".feedback",
"TextPrompt": ".prompts",
"TextScore": ".commons",
"TextScoreV1": ".commons",
Expand Down Expand Up @@ -617,6 +632,7 @@
"dataset_run_items": ".dataset_run_items",
"datasets": ".datasets",
"experiments": ".experiments",
"feedback": ".feedback",
"health": ".health",
"ingestion": ".ingestion",
"legacy": ".legacy",
Expand Down Expand Up @@ -754,13 +770,16 @@ def __dir__():
"DeleteLlmConnectionResponse",
"DeleteMembershipRequest",
"DeleteTraceResponse",
"Deprecation",
"EmptyResponse",
"Error",
"Experiment",
"ExperimentItem",
"ExperimentItemsResponse",
"ExperimentsResponse",
"ExperimentsResponseMeta",
"FeedbackNotConfiguredError",
"FeedbackTargetType",
"FilterConfig",
"GetCommentsResponse",
"GetMediaResponse",
Expand Down Expand Up @@ -824,6 +843,7 @@ def __dir__():
"ObservationsV2Meta",
"ObservationsV2Response",
"ObservationsView",
"ObservationsViewSingle",
"OpenAiCompletionUsageSchema",
"OpenAiResponseUsageSchema",
"OpenAiUsage",
Expand Down Expand Up @@ -917,6 +937,8 @@ def __dir__():
"Session",
"SessionWithTraces",
"Sort",
"SubmitFeedbackRequest",
"SubmitFeedbackResponse",
"TextPrompt",
"TextScore",
"TextScoreV1",
Expand Down Expand Up @@ -948,6 +970,7 @@ def __dir__():
"dataset_run_items",
"datasets",
"experiments",
"feedback",
"health",
"ingestion",
"legacy",
Expand Down
19 changes: 19 additions & 0 deletions langfuse/api/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
)
from .datasets.client import AsyncDatasetsClient, DatasetsClient
from .experiments.client import AsyncExperimentsClient, ExperimentsClient
from .feedback.client import AsyncFeedbackClient, FeedbackClient
from .health.client import AsyncHealthClient, HealthClient
from .ingestion.client import AsyncIngestionClient, IngestionClient
from .legacy.client import AsyncLegacyClient, LegacyClient
Expand Down Expand Up @@ -133,6 +134,7 @@ def __init__(
self._dataset_run_items: typing.Optional[DatasetRunItemsClient] = None
self._datasets: typing.Optional[DatasetsClient] = None
self._experiments: typing.Optional[ExperimentsClient] = None
self._feedback: typing.Optional[FeedbackClient] = None
self._health: typing.Optional[HealthClient] = None
self._ingestion: typing.Optional[IngestionClient] = None
self._legacy: typing.Optional[LegacyClient] = None
Expand Down Expand Up @@ -218,6 +220,14 @@ def experiments(self):
self._experiments = ExperimentsClient(client_wrapper=self._client_wrapper)
return self._experiments

@property
def feedback(self):
if self._feedback is None:
from .feedback.client import FeedbackClient # noqa: E402

self._feedback = FeedbackClient(client_wrapper=self._client_wrapper)
return self._feedback

@property
def health(self):
if self._health is None:
Expand Down Expand Up @@ -476,6 +486,7 @@ def __init__(
self._dataset_run_items: typing.Optional[AsyncDatasetRunItemsClient] = None
self._datasets: typing.Optional[AsyncDatasetsClient] = None
self._experiments: typing.Optional[AsyncExperimentsClient] = None
self._feedback: typing.Optional[AsyncFeedbackClient] = None
self._health: typing.Optional[AsyncHealthClient] = None
self._ingestion: typing.Optional[AsyncIngestionClient] = None
self._legacy: typing.Optional[AsyncLegacyClient] = None
Expand Down Expand Up @@ -565,6 +576,14 @@ def experiments(self):
)
return self._experiments

@property
def feedback(self):
if self._feedback is None:
from .feedback.client import AsyncFeedbackClient # noqa: E402

self._feedback = AsyncFeedbackClient(client_wrapper=self._client_wrapper)
return self._feedback

@property
def health(self):
if self._health is None:
Expand Down
6 changes: 6 additions & 0 deletions langfuse/api/commons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
DatasetRunItem,
DatasetRunWithItems,
DatasetStatus,
Deprecation,
MapValue,
Model,
ModelPrice,
Expand All @@ -37,6 +38,7 @@
ObservationLevel,
ObservationV2,
ObservationsView,
ObservationsViewSingle,
PricingTier,
PricingTierCondition,
PricingTierInput,
Expand Down Expand Up @@ -94,6 +96,7 @@
"DatasetRunItem": ".types",
"DatasetRunWithItems": ".types",
"DatasetStatus": ".types",
"Deprecation": ".types",
"Error": ".errors",
"MapValue": ".types",
"MethodNotAllowedError": ".errors",
Expand All @@ -107,6 +110,7 @@
"ObservationLevel": ".types",
"ObservationV2": ".types",
"ObservationsView": ".types",
"ObservationsViewSingle": ".types",
"PricingTier": ".types",
"PricingTierCondition": ".types",
"PricingTierInput": ".types",
Expand Down Expand Up @@ -187,6 +191,7 @@ def __dir__():
"DatasetRunItem",
"DatasetRunWithItems",
"DatasetStatus",
"Deprecation",
"Error",
"MapValue",
"MethodNotAllowedError",
Expand All @@ -200,6 +205,7 @@ def __dir__():
"ObservationLevel",
"ObservationV2",
"ObservationsView",
"ObservationsViewSingle",
"PricingTier",
"PricingTierCondition",
"PricingTierInput",
Expand Down
6 changes: 6 additions & 0 deletions langfuse/api/commons/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
from .dataset_run_item import DatasetRunItem
from .dataset_run_with_items import DatasetRunWithItems
from .dataset_status import DatasetStatus
from .deprecation import Deprecation
from .map_value import MapValue
from .model import Model
from .model_price import ModelPrice
Expand All @@ -36,6 +37,7 @@
from .observation_level import ObservationLevel
from .observation_v2 import ObservationV2
from .observations_view import ObservationsView
from .observations_view_single import ObservationsViewSingle
from .pricing_tier import PricingTier
from .pricing_tier_condition import PricingTierCondition
from .pricing_tier_input import PricingTierInput
Expand Down Expand Up @@ -88,6 +90,7 @@
"DatasetRunItem": ".dataset_run_item",
"DatasetRunWithItems": ".dataset_run_with_items",
"DatasetStatus": ".dataset_status",
"Deprecation": ".deprecation",
"MapValue": ".map_value",
"Model": ".model",
"ModelPrice": ".model_price",
Expand All @@ -98,6 +101,7 @@
"ObservationLevel": ".observation_level",
"ObservationV2": ".observation_v2",
"ObservationsView": ".observations_view",
"ObservationsViewSingle": ".observations_view_single",
"PricingTier": ".pricing_tier",
"PricingTierCondition": ".pricing_tier_condition",
"PricingTierInput": ".pricing_tier_input",
Expand Down Expand Up @@ -176,6 +180,7 @@ def __dir__():
"DatasetRunItem",
"DatasetRunWithItems",
"DatasetStatus",
"Deprecation",
"MapValue",
"Model",
"ModelPrice",
Expand All @@ -186,6 +191,7 @@ def __dir__():
"ObservationLevel",
"ObservationV2",
"ObservationsView",
"ObservationsViewSingle",
"PricingTier",
"PricingTierCondition",
"PricingTierInput",
Expand Down
4 changes: 4 additions & 0 deletions langfuse/api/commons/types/dataset_run_with_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@
from ...core.serialization import FieldMetadata
from .dataset_run import DatasetRun
from .dataset_run_item import DatasetRunItem
from .deprecation import Deprecation


class DatasetRunWithItems(DatasetRun):
dataset_run_items: typing_extensions.Annotated[
typing.List[DatasetRunItem], FieldMetadata(alias="datasetRunItems")
]
deprecation: typing_extensions.Annotated[
typing.Optional[Deprecation], FieldMetadata(alias="_deprecation")
] = None

model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
extra="allow", frozen=True
Expand Down
42 changes: 42 additions & 0 deletions langfuse/api/commons/types/deprecation.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ...core.pydantic_utilities import UniversalBaseModel
from ...core.serialization import FieldMetadata


class Deprecation(UniversalBaseModel):
"""
Migration signal returned by deprecated endpoints. Optional fields are omitted when they have no value.
"""

message: str = pydantic.Field()
"""
Human- and agent-readable summary of the deprecation and its replacement.
"""

replacement: typing.Optional[str] = pydantic.Field(default=None)
"""
The replacement endpoint, e.g. "GET /api/public/v2/observations". Omitted when the endpoint is being removed without a direct replacement.
"""

docs_url: typing_extensions.Annotated[
typing.Optional[str], FieldMetadata(alias="docsUrl")
] = pydantic.Field(default=None)
"""
Link to the migration documentation (markdown), when available.
"""

sunset_at: typing_extensions.Annotated[
typing.Optional[str], FieldMetadata(alias="sunsetAt")
] = pydantic.Field(default=None)
"""
ISO date after which the endpoint may stop working, when a removal date is committed.
"""

model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
extra="allow", frozen=True
)
19 changes: 19 additions & 0 deletions langfuse/api/commons/types/observations_view_single.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
import typing_extensions
from ...core.serialization import FieldMetadata
from .deprecation import Deprecation
from .observations_view import ObservationsView


class ObservationsViewSingle(ObservationsView):
deprecation: typing_extensions.Annotated[
typing.Optional[Deprecation], FieldMetadata(alias="_deprecation")
] = None

model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
extra="allow", frozen=True
)
Loading
Loading