Skip to content
Merged
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
10 changes: 9 additions & 1 deletion langfuse/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,11 @@
PricingTierAttributeCondition,
PricingTierAttributeSource,
PricingTierCondition,
PricingTierConditionInput,
PricingTierInput,
PricingTierOperator,
PricingTierUsageCondition,
PricingTierUsageConditionInput,
Score,
ScoreConfig,
ScoreConfigDataType,
Expand Down Expand Up @@ -228,7 +230,7 @@
PatchMediaBody,
)
from .metrics import MetricsV2Response
from .models import CreateModelRequest, PaginatedModels
from .models import CreateModelRequest, ModelTokenizerId, PaginatedModels
from .observations import ObservationsV2Meta, ObservationsV2Response
from .opentelemetry import (
OtelAttribute,
Expand Down Expand Up @@ -501,6 +503,7 @@
"MetricsV2Response": ".metrics",
"Model": ".commons",
"ModelPrice": ".commons",
"ModelTokenizerId": ".models",
"ModelUsageUnit": ".commons",
"NotFoundError": ".commons",
"NumericScore": ".commons",
Expand Down Expand Up @@ -548,9 +551,11 @@
"PricingTierAttributeCondition": ".commons",
"PricingTierAttributeSource": ".commons",
"PricingTierCondition": ".commons",
"PricingTierConditionInput": ".commons",
"PricingTierInput": ".commons",
"PricingTierOperator": ".commons",
"PricingTierUsageCondition": ".commons",
"PricingTierUsageConditionInput": ".commons",
"Project": ".projects",
"ProjectDeletionResponse": ".projects",
"Projects": ".projects",
Expand Down Expand Up @@ -845,6 +850,7 @@ def __dir__():
"MetricsV2Response",
"Model",
"ModelPrice",
"ModelTokenizerId",
"ModelUsageUnit",
"NotFoundError",
"NumericScore",
Expand Down Expand Up @@ -892,9 +898,11 @@ def __dir__():
"PricingTierAttributeCondition",
"PricingTierAttributeSource",
"PricingTierCondition",
"PricingTierConditionInput",
"PricingTierInput",
"PricingTierOperator",
"PricingTierUsageCondition",
"PricingTierUsageConditionInput",
"Project",
"ProjectDeletionResponse",
"Projects",
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 @@ -43,9 +43,11 @@
PricingTierAttributeCondition,
PricingTierAttributeSource,
PricingTierCondition,
PricingTierConditionInput,
PricingTierInput,
PricingTierOperator,
PricingTierUsageCondition,
PricingTierUsageConditionInput,
Score,
ScoreConfig,
ScoreConfigDataType,
Expand Down Expand Up @@ -118,9 +120,11 @@
"PricingTierAttributeCondition": ".types",
"PricingTierAttributeSource": ".types",
"PricingTierCondition": ".types",
"PricingTierConditionInput": ".types",
"PricingTierInput": ".types",
"PricingTierOperator": ".types",
"PricingTierUsageCondition": ".types",
"PricingTierUsageConditionInput": ".types",
"Score": ".types",
"ScoreConfig": ".types",
"ScoreConfigDataType": ".types",
Expand Down Expand Up @@ -216,9 +220,11 @@ def __dir__():
"PricingTierAttributeCondition",
"PricingTierAttributeSource",
"PricingTierCondition",
"PricingTierConditionInput",
"PricingTierInput",
"PricingTierOperator",
"PricingTierUsageCondition",
"PricingTierUsageConditionInput",
"Score",
"ScoreConfig",
"ScoreConfigDataType",
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 @@ -42,9 +42,11 @@
from .pricing_tier_attribute_condition import PricingTierAttributeCondition
from .pricing_tier_attribute_source import PricingTierAttributeSource
from .pricing_tier_condition import PricingTierCondition
from .pricing_tier_condition_input import PricingTierConditionInput
from .pricing_tier_input import PricingTierInput
from .pricing_tier_operator import PricingTierOperator
from .pricing_tier_usage_condition import PricingTierUsageCondition
from .pricing_tier_usage_condition_input import PricingTierUsageConditionInput
from .score import (
Score,
Score_Boolean,
Expand Down Expand Up @@ -109,9 +111,11 @@
"PricingTierAttributeCondition": ".pricing_tier_attribute_condition",
"PricingTierAttributeSource": ".pricing_tier_attribute_source",
"PricingTierCondition": ".pricing_tier_condition",
"PricingTierConditionInput": ".pricing_tier_condition_input",
"PricingTierInput": ".pricing_tier_input",
"PricingTierOperator": ".pricing_tier_operator",
"PricingTierUsageCondition": ".pricing_tier_usage_condition",
"PricingTierUsageConditionInput": ".pricing_tier_usage_condition_input",
"Score": ".score",
"ScoreConfig": ".score_config",
"ScoreConfigDataType": ".score_config_data_type",
Expand Down Expand Up @@ -202,9 +206,11 @@ def __dir__():
"PricingTierAttributeCondition",
"PricingTierAttributeSource",
"PricingTierCondition",
"PricingTierConditionInput",
"PricingTierInput",
"PricingTierOperator",
"PricingTierUsageCondition",
"PricingTierUsageConditionInput",
"Score",
"ScoreConfig",
"ScoreConfigDataType",
Expand Down
10 changes: 10 additions & 0 deletions langfuse/api/commons/types/pricing_tier_condition_input.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This file was auto-generated by Fern from our API Definition.

import typing

from .pricing_tier_attribute_condition import PricingTierAttributeCondition
from .pricing_tier_usage_condition_input import PricingTierUsageConditionInput

PricingTierConditionInput = typing.Union[
PricingTierUsageConditionInput, PricingTierAttributeCondition
]
12 changes: 6 additions & 6 deletions langfuse/api/commons/types/pricing_tier_input.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import typing_extensions
from ...core.pydantic_utilities import UniversalBaseModel
from ...core.serialization import FieldMetadata
from .pricing_tier_condition import PricingTierCondition
from .pricing_tier_condition_input import PricingTierConditionInput


class PricingTierInput(UniversalBaseModel):
Expand All @@ -29,9 +29,9 @@ class PricingTierInput(UniversalBaseModel):
Must be unique within the model. Common patterns: "Standard", "High Volume Tier", "Extended Context"
"""

is_default: typing_extensions.Annotated[bool, FieldMetadata(alias="isDefault")] = (
pydantic.Field()
)
is_default: typing_extensions.Annotated[
typing.Optional[bool], FieldMetadata(alias="isDefault")
] = pydantic.Field(default=None)
"""
Whether this is the default tier. Exactly one tier per model must be marked as default.

Expand All @@ -40,7 +40,7 @@ class PricingTierInput(UniversalBaseModel):
- Must have priority=0
- Must have empty conditions array (conditions=[])

The default tier acts as a fallback when no conditional tiers match.
The default tier acts as a fallback when no conditional tiers match. Defaults to false when omitted.
"""

priority: int = pydantic.Field()
Expand All @@ -51,7 +51,7 @@ class PricingTierInput(UniversalBaseModel):
Conditional tiers should use priority 1, 2, 3, etc. based on their specificity.
"""

conditions: typing.List[PricingTierCondition] = pydantic.Field()
conditions: typing.List[PricingTierConditionInput] = pydantic.Field()
"""
Array of conditions that must ALL be met for this tier to match (AND logic).

Expand Down
39 changes: 39 additions & 0 deletions langfuse/api/commons/types/pricing_tier_usage_condition_input.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 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
from .pricing_tier_operator import PricingTierOperator


class PricingTierUsageConditionInput(UniversalBaseModel):
"""
Input condition that sums usage details whose keys match a regex.
"""

usage_detail_pattern: typing_extensions.Annotated[
str, FieldMetadata(alias="usageDetailPattern")
] = pydantic.Field()
"""
Regex pattern matched against usage detail keys.
"""

operator: PricingTierOperator
value: float = pydantic.Field()
"""
Numeric threshold for the summed matching usage values.
"""

case_sensitive: typing_extensions.Annotated[
typing.Optional[bool], FieldMetadata(alias="caseSensitive")
] = pydantic.Field(default=None)
"""
Whether the usage-detail regex is case-sensitive. Defaults to false.
"""

model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
extra="allow", frozen=True
)
5 changes: 3 additions & 2 deletions langfuse/api/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,10 @@
from importlib import import_module

if typing.TYPE_CHECKING:
from .types import CreateModelRequest, PaginatedModels
from .types import CreateModelRequest, ModelTokenizerId, PaginatedModels
_dynamic_imports: typing.Dict[str, str] = {
"CreateModelRequest": ".types",
"ModelTokenizerId": ".types",
"PaginatedModels": ".types",
}

Expand Down Expand Up @@ -40,4 +41,4 @@ def __dir__():
return sorted(lazy_attrs)


__all__ = ["CreateModelRequest", "PaginatedModels"]
__all__ = ["CreateModelRequest", "ModelTokenizerId", "PaginatedModels"]
Loading
Loading