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
2 changes: 2 additions & 0 deletions langfuse/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@
UpdateGenerationBody,
UpdateGenerationEvent,
UpdateObservationEvent,
UpdateScoreConfigRequest,
UpdateSpanBody,
UpdateSpanEvent,
UpsertLlmConnectionRequest,
Expand Down Expand Up @@ -433,6 +434,7 @@
"UpdateGenerationBody",
"UpdateGenerationEvent",
"UpdateObservationEvent",
"UpdateScoreConfigRequest",
"UpdateSpanBody",
"UpdateSpanEvent",
"UpsertLlmConnectionRequest",
Expand Down
85 changes: 85 additions & 0 deletions langfuse/api/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -5904,6 +5904,91 @@ client.score_configs.get_by_id(
</dl>


</dd>
</dl>
</details>

<details><summary><code>client.score_configs.<a href="src/langfuse/resources/score_configs/client.py">update</a>(...)</code></summary>
<dl>
<dd>

#### 📝 Description

<dl>
<dd>

<dl>
<dd>

Update a score config
</dd>
</dl>
</dd>
</dl>

#### 🔌 Usage

<dl>
<dd>

<dl>
<dd>

```python
from langfuse import UpdateScoreConfigRequest
from langfuse.client import FernLangfuse

client = FernLangfuse(
x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
username="YOUR_USERNAME",
password="YOUR_PASSWORD",
base_url="https://yourhost.com/path/to/api",
)
client.score_configs.update(
config_id="configId",
request=UpdateScoreConfigRequest(),
)

```
</dd>
</dl>
</dd>
</dl>

#### ⚙️ Parameters

<dl>
<dd>

<dl>
<dd>

**config_id:** `str` — The unique langfuse identifier of a score config

</dd>
</dl>

<dl>
<dd>

**request:** `UpdateScoreConfigRequest`

</dd>
</dl>

<dl>
<dd>

**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.

</dd>
</dl>
</dd>
</dl>


</dd>
</dl>
</details>
Expand Down
7 changes: 6 additions & 1 deletion langfuse/api/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,11 @@
UserMeta,
)
from .score import CreateScoreRequest, CreateScoreResponse
from .score_configs import CreateScoreConfigRequest, ScoreConfigs
from .score_configs import (
CreateScoreConfigRequest,
ScoreConfigs,
UpdateScoreConfigRequest,
)
from .score_v_2 import (
GetScoresResponse,
GetScoresResponseData,
Expand Down Expand Up @@ -449,6 +453,7 @@
"UpdateGenerationBody",
"UpdateGenerationEvent",
"UpdateObservationEvent",
"UpdateScoreConfigRequest",
"UpdateSpanBody",
"UpdateSpanEvent",
"UpsertLlmConnectionRequest",
Expand Down
4 changes: 2 additions & 2 deletions langfuse/api/resources/score_configs/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file was auto-generated by Fern from our API Definition.

from .types import CreateScoreConfigRequest, ScoreConfigs
from .types import CreateScoreConfigRequest, ScoreConfigs, UpdateScoreConfigRequest

__all__ = ["CreateScoreConfigRequest", "ScoreConfigs"]
__all__ = ["CreateScoreConfigRequest", "ScoreConfigs", "UpdateScoreConfigRequest"]
159 changes: 159 additions & 0 deletions langfuse/api/resources/score_configs/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
from ..commons.types.score_config import ScoreConfig
from .types.create_score_config_request import CreateScoreConfigRequest
from .types.score_configs import ScoreConfigs
from .types.update_score_config_request import UpdateScoreConfigRequest

# this is used as the default value for optional parameters
OMIT = typing.cast(typing.Any, ...)
Expand Down Expand Up @@ -234,6 +235,81 @@ def get_by_id(
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)

def update(
self,
config_id: str,
*,
request: UpdateScoreConfigRequest,
request_options: typing.Optional[RequestOptions] = None,
) -> ScoreConfig:
"""
Update a score config

Parameters
----------
config_id : str
The unique langfuse identifier of a score config

request : UpdateScoreConfigRequest

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
ScoreConfig

Examples
--------
from langfuse import UpdateScoreConfigRequest
from langfuse.client import FernLangfuse

client = FernLangfuse(
x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
username="YOUR_USERNAME",
password="YOUR_PASSWORD",
base_url="https://yourhost.com/path/to/api",
)
client.score_configs.update(
config_id="configId",
request=UpdateScoreConfigRequest(),
)
"""
_response = self._client_wrapper.httpx_client.request(
f"api/public/score-configs/{jsonable_encoder(config_id)}",
method="PATCH",
json=request,
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
return pydantic_v1.parse_obj_as(ScoreConfig, _response.json()) # type: ignore
if _response.status_code == 400:
raise Error(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
if _response.status_code == 401:
raise UnauthorizedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 403:
raise AccessDeniedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 405:
raise MethodNotAllowedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 404:
raise NotFoundError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)


class AsyncScoreConfigsClient:
def __init__(self, *, client_wrapper: AsyncClientWrapper):
Expand Down Expand Up @@ -471,3 +547,86 @@ async def main() -> None:
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)

async def update(
self,
config_id: str,
*,
request: UpdateScoreConfigRequest,
request_options: typing.Optional[RequestOptions] = None,
) -> ScoreConfig:
"""
Update a score config

Parameters
----------
config_id : str
The unique langfuse identifier of a score config

request : UpdateScoreConfigRequest

request_options : typing.Optional[RequestOptions]
Request-specific configuration.

Returns
-------
ScoreConfig

Examples
--------
import asyncio

from langfuse import UpdateScoreConfigRequest
from langfuse.client import AsyncFernLangfuse

client = AsyncFernLangfuse(
x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
username="YOUR_USERNAME",
password="YOUR_PASSWORD",
base_url="https://yourhost.com/path/to/api",
)


async def main() -> None:
await client.score_configs.update(
config_id="configId",
request=UpdateScoreConfigRequest(),
)


asyncio.run(main())
"""
_response = await self._client_wrapper.httpx_client.request(
f"api/public/score-configs/{jsonable_encoder(config_id)}",
method="PATCH",
json=request,
request_options=request_options,
omit=OMIT,
)
try:
if 200 <= _response.status_code < 300:
return pydantic_v1.parse_obj_as(ScoreConfig, _response.json()) # type: ignore
if _response.status_code == 400:
raise Error(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
if _response.status_code == 401:
raise UnauthorizedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 403:
raise AccessDeniedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 405:
raise MethodNotAllowedError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
if _response.status_code == 404:
raise NotFoundError(
pydantic_v1.parse_obj_as(typing.Any, _response.json())
) # type: ignore
_response_json = _response.json()
except JSONDecodeError:
raise ApiError(status_code=_response.status_code, body=_response.text)
raise ApiError(status_code=_response.status_code, body=_response_json)
3 changes: 2 additions & 1 deletion langfuse/api/resources/score_configs/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@

from .create_score_config_request import CreateScoreConfigRequest
from .score_configs import ScoreConfigs
from .update_score_config_request import UpdateScoreConfigRequest

__all__ = ["CreateScoreConfigRequest", "ScoreConfigs"]
__all__ = ["CreateScoreConfigRequest", "ScoreConfigs", "UpdateScoreConfigRequest"]
Loading