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
65 changes: 23 additions & 42 deletions langfuse/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@
datasets,
health,
ingestion,
legacy,
llm_connections,
media,
metrics,
metrics_v2,
models,
observations,
observations_v2,
opentelemetry,
organizations,
projects,
Expand All @@ -31,7 +30,6 @@
scim,
score,
score_configs,
score_v2,
sessions,
trace,
utils,
Expand Down Expand Up @@ -195,10 +193,8 @@
PatchMediaBody,
)
from .metrics import MetricsResponse
from .metrics_v2 import MetricsV2Response
from .models import CreateModelRequest, PaginatedModels
from .observations import Observations, ObservationsViews
from .observations_v2 import ObservationsV2Meta, ObservationsV2Response
from .observations import ObservationsV2Meta, ObservationsV2Response
from .opentelemetry import (
OtelAttribute,
OtelAttributeValue,
Expand Down Expand Up @@ -271,13 +267,7 @@
ServiceProviderConfig,
UserMeta,
)
from .score import CreateScoreRequest, CreateScoreResponse
from .score_configs import (
CreateScoreConfigRequest,
ScoreConfigs,
UpdateScoreConfigRequest,
)
from .score_v2 import (
from .score import (
GetScoresResponse,
GetScoresResponseData,
GetScoresResponseDataBoolean,
Expand All @@ -290,6 +280,11 @@
GetScoresResponseData_Numeric,
GetScoresResponseTraceData,
)
from .score_configs import (
CreateScoreConfigRequest,
ScoreConfigs,
UpdateScoreConfigRequest,
)
from .sessions import PaginatedSessions
from .trace import DeleteTraceResponse, Sort, Traces
_dynamic_imports: typing.Dict[str, str] = {
Expand Down Expand Up @@ -348,8 +343,6 @@
"CreateObservationEvent": ".ingestion",
"CreatePromptRequest": ".prompts",
"CreateScoreConfigRequest": ".score_configs",
"CreateScoreRequest": ".score",
"CreateScoreResponse": ".score",
"CreateScoreValue": ".commons",
"CreateSpanBody": ".ingestion",
"CreateSpanEvent": ".ingestion",
Expand All @@ -374,17 +367,17 @@
"GetMediaResponse": ".media",
"GetMediaUploadUrlRequest": ".media",
"GetMediaUploadUrlResponse": ".media",
"GetScoresResponse": ".score_v2",
"GetScoresResponseData": ".score_v2",
"GetScoresResponseDataBoolean": ".score_v2",
"GetScoresResponseDataCategorical": ".score_v2",
"GetScoresResponseDataCorrection": ".score_v2",
"GetScoresResponseDataNumeric": ".score_v2",
"GetScoresResponseData_Boolean": ".score_v2",
"GetScoresResponseData_Categorical": ".score_v2",
"GetScoresResponseData_Correction": ".score_v2",
"GetScoresResponseData_Numeric": ".score_v2",
"GetScoresResponseTraceData": ".score_v2",
"GetScoresResponse": ".score",
"GetScoresResponseData": ".score",
"GetScoresResponseDataBoolean": ".score",
"GetScoresResponseDataCategorical": ".score",
"GetScoresResponseDataCorrection": ".score",
"GetScoresResponseDataNumeric": ".score",
"GetScoresResponseData_Boolean": ".score",
"GetScoresResponseData_Categorical": ".score",
"GetScoresResponseData_Correction": ".score",
"GetScoresResponseData_Numeric": ".score",
"GetScoresResponseTraceData": ".score",
"HealthResponse": ".health",
"IngestionError": ".ingestion",
"IngestionEvent": ".ingestion",
Expand Down Expand Up @@ -413,7 +406,6 @@
"MembershipsResponse": ".organizations",
"MethodNotAllowedError": ".commons",
"MetricsResponse": ".metrics",
"MetricsV2Response": ".metrics_v2",
"Model": ".commons",
"ModelPrice": ".commons",
"ModelUsageUnit": ".commons",
Expand All @@ -425,11 +417,9 @@
"ObservationLevel": ".commons",
"ObservationType": ".ingestion",
"ObservationV2": ".commons",
"Observations": ".observations",
"ObservationsV2Meta": ".observations_v2",
"ObservationsV2Response": ".observations_v2",
"ObservationsV2Meta": ".observations",
"ObservationsV2Response": ".observations",
"ObservationsView": ".commons",
"ObservationsViews": ".observations",
"OpenAiCompletionUsageSchema": ".ingestion",
"OpenAiResponseUsageSchema": ".ingestion",
"OpenAiUsage": ".ingestion",
Expand Down Expand Up @@ -535,13 +525,12 @@
"datasets": ".datasets",
"health": ".health",
"ingestion": ".ingestion",
"legacy": ".legacy",
"llm_connections": ".llm_connections",
"media": ".media",
"metrics": ".metrics",
"metrics_v2": ".metrics_v2",
"models": ".models",
"observations": ".observations",
"observations_v2": ".observations_v2",
"opentelemetry": ".opentelemetry",
"organizations": ".organizations",
"projects": ".projects",
Expand All @@ -550,7 +539,6 @@
"scim": ".scim",
"score": ".score",
"score_configs": ".score_configs",
"score_v2": ".score_v2",
"sessions": ".sessions",
"trace": ".trace",
"utils": ".utils",
Expand Down Expand Up @@ -640,8 +628,6 @@ def __dir__():
"CreateObservationEvent",
"CreatePromptRequest",
"CreateScoreConfigRequest",
"CreateScoreRequest",
"CreateScoreResponse",
"CreateScoreValue",
"CreateSpanBody",
"CreateSpanEvent",
Expand Down Expand Up @@ -705,7 +691,6 @@ def __dir__():
"MembershipsResponse",
"MethodNotAllowedError",
"MetricsResponse",
"MetricsV2Response",
"Model",
"ModelPrice",
"ModelUsageUnit",
Expand All @@ -717,11 +702,9 @@ def __dir__():
"ObservationLevel",
"ObservationType",
"ObservationV2",
"Observations",
"ObservationsV2Meta",
"ObservationsV2Response",
"ObservationsView",
"ObservationsViews",
"OpenAiCompletionUsageSchema",
"OpenAiResponseUsageSchema",
"OpenAiUsage",
Expand Down Expand Up @@ -827,13 +810,12 @@ def __dir__():
"datasets",
"health",
"ingestion",
"legacy",
"llm_connections",
"media",
"metrics",
"metrics_v2",
"models",
"observations",
"observations_v2",
"opentelemetry",
"organizations",
"projects",
Expand All @@ -842,7 +824,6 @@ def __dir__():
"scim",
"score",
"score_configs",
"score_v2",
"sessions",
"trace",
"utils",
Expand Down
80 changes: 19 additions & 61 deletions langfuse/api/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@
from .datasets.client import AsyncDatasetsClient, DatasetsClient
from .health.client import AsyncHealthClient, HealthClient
from .ingestion.client import AsyncIngestionClient, IngestionClient
from .legacy.client import AsyncLegacyClient, LegacyClient
from .llm_connections.client import AsyncLlmConnectionsClient, LlmConnectionsClient
from .media.client import AsyncMediaClient, MediaClient
from .metrics.client import AsyncMetricsClient, MetricsClient
from .metrics_v2.client import AsyncMetricsV2Client, MetricsV2Client
from .models.client import AsyncModelsClient, ModelsClient
from .observations.client import AsyncObservationsClient, ObservationsClient
from .observations_v2.client import AsyncObservationsV2Client, ObservationsV2Client
from .opentelemetry.client import AsyncOpentelemetryClient, OpentelemetryClient
from .organizations.client import AsyncOrganizationsClient, OrganizationsClient
from .projects.client import AsyncProjectsClient, ProjectsClient
Expand All @@ -40,7 +39,6 @@
from .scim.client import AsyncScimClient, ScimClient
from .score.client import AsyncScoreClient, ScoreClient
from .score_configs.client import AsyncScoreConfigsClient, ScoreConfigsClient
from .score_v2.client import AsyncScoreV2Client, ScoreV2Client
from .sessions.client import AsyncSessionsClient, SessionsClient
from .trace.client import AsyncTraceClient, TraceClient

Expand Down Expand Up @@ -133,12 +131,11 @@ def __init__(
self._datasets: typing.Optional[DatasetsClient] = None
self._health: typing.Optional[HealthClient] = None
self._ingestion: typing.Optional[IngestionClient] = None
self._legacy: typing.Optional[LegacyClient] = None
self._llm_connections: typing.Optional[LlmConnectionsClient] = None
self._media: typing.Optional[MediaClient] = None
self._metrics_v2: typing.Optional[MetricsV2Client] = None
self._metrics: typing.Optional[MetricsClient] = None
self._models: typing.Optional[ModelsClient] = None
self._observations_v2: typing.Optional[ObservationsV2Client] = None
self._observations: typing.Optional[ObservationsClient] = None
self._opentelemetry: typing.Optional[OpentelemetryClient] = None
self._organizations: typing.Optional[OrganizationsClient] = None
Expand All @@ -147,7 +144,6 @@ def __init__(
self._prompts: typing.Optional[PromptsClient] = None
self._scim: typing.Optional[ScimClient] = None
self._score_configs: typing.Optional[ScoreConfigsClient] = None
self._score_v2: typing.Optional[ScoreV2Client] = None
self._score: typing.Optional[ScoreClient] = None
self._sessions: typing.Optional[SessionsClient] = None
self._trace: typing.Optional[TraceClient] = None
Expand Down Expand Up @@ -224,6 +220,14 @@ def ingestion(self):
self._ingestion = IngestionClient(client_wrapper=self._client_wrapper)
return self._ingestion

@property
def legacy(self):
if self._legacy is None:
from .legacy.client import LegacyClient # noqa: E402

self._legacy = LegacyClient(client_wrapper=self._client_wrapper)
return self._legacy

@property
def llm_connections(self):
if self._llm_connections is None:
Expand All @@ -242,14 +246,6 @@ def media(self):
self._media = MediaClient(client_wrapper=self._client_wrapper)
return self._media

@property
def metrics_v2(self):
if self._metrics_v2 is None:
from .metrics_v2.client import MetricsV2Client # noqa: E402

self._metrics_v2 = MetricsV2Client(client_wrapper=self._client_wrapper)
return self._metrics_v2

@property
def metrics(self):
if self._metrics is None:
Expand All @@ -266,16 +262,6 @@ def models(self):
self._models = ModelsClient(client_wrapper=self._client_wrapper)
return self._models

@property
def observations_v2(self):
if self._observations_v2 is None:
from .observations_v2.client import ObservationsV2Client # noqa: E402

self._observations_v2 = ObservationsV2Client(
client_wrapper=self._client_wrapper
)
return self._observations_v2

@property
def observations(self):
if self._observations is None:
Expand Down Expand Up @@ -348,14 +334,6 @@ def score_configs(self):
)
return self._score_configs

@property
def score_v2(self):
if self._score_v2 is None:
from .score_v2.client import ScoreV2Client # noqa: E402

self._score_v2 = ScoreV2Client(client_wrapper=self._client_wrapper)
return self._score_v2

@property
def score(self):
if self._score is None:
Expand Down Expand Up @@ -469,12 +447,11 @@ def __init__(
self._datasets: typing.Optional[AsyncDatasetsClient] = None
self._health: typing.Optional[AsyncHealthClient] = None
self._ingestion: typing.Optional[AsyncIngestionClient] = None
self._legacy: typing.Optional[AsyncLegacyClient] = None
self._llm_connections: typing.Optional[AsyncLlmConnectionsClient] = None
self._media: typing.Optional[AsyncMediaClient] = None
self._metrics_v2: typing.Optional[AsyncMetricsV2Client] = None
self._metrics: typing.Optional[AsyncMetricsClient] = None
self._models: typing.Optional[AsyncModelsClient] = None
self._observations_v2: typing.Optional[AsyncObservationsV2Client] = None
self._observations: typing.Optional[AsyncObservationsClient] = None
self._opentelemetry: typing.Optional[AsyncOpentelemetryClient] = None
self._organizations: typing.Optional[AsyncOrganizationsClient] = None
Expand All @@ -483,7 +460,6 @@ def __init__(
self._prompts: typing.Optional[AsyncPromptsClient] = None
self._scim: typing.Optional[AsyncScimClient] = None
self._score_configs: typing.Optional[AsyncScoreConfigsClient] = None
self._score_v2: typing.Optional[AsyncScoreV2Client] = None
self._score: typing.Optional[AsyncScoreClient] = None
self._sessions: typing.Optional[AsyncSessionsClient] = None
self._trace: typing.Optional[AsyncTraceClient] = None
Expand Down Expand Up @@ -562,6 +538,14 @@ def ingestion(self):
self._ingestion = AsyncIngestionClient(client_wrapper=self._client_wrapper)
return self._ingestion

@property
def legacy(self):
if self._legacy is None:
from .legacy.client import AsyncLegacyClient # noqa: E402

self._legacy = AsyncLegacyClient(client_wrapper=self._client_wrapper)
return self._legacy

@property
def llm_connections(self):
if self._llm_connections is None:
Expand All @@ -580,14 +564,6 @@ def media(self):
self._media = AsyncMediaClient(client_wrapper=self._client_wrapper)
return self._media

@property
def metrics_v2(self):
if self._metrics_v2 is None:
from .metrics_v2.client import AsyncMetricsV2Client # noqa: E402

self._metrics_v2 = AsyncMetricsV2Client(client_wrapper=self._client_wrapper)
return self._metrics_v2

@property
def metrics(self):
if self._metrics is None:
Expand All @@ -604,16 +580,6 @@ def models(self):
self._models = AsyncModelsClient(client_wrapper=self._client_wrapper)
return self._models

@property
def observations_v2(self):
if self._observations_v2 is None:
from .observations_v2.client import AsyncObservationsV2Client # noqa: E402

self._observations_v2 = AsyncObservationsV2Client(
client_wrapper=self._client_wrapper
)
return self._observations_v2

@property
def observations(self):
if self._observations is None:
Expand Down Expand Up @@ -688,14 +654,6 @@ def score_configs(self):
)
return self._score_configs

@property
def score_v2(self):
if self._score_v2 is None:
from .score_v2.client import AsyncScoreV2Client # noqa: E402

self._score_v2 = AsyncScoreV2Client(client_wrapper=self._client_wrapper)
return self._score_v2

@property
def score(self):
if self._score is None:
Expand Down
Loading
Loading