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
12 changes: 12 additions & 0 deletions langfuse/api/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,18 @@

The Langfuse Python library provides convenient access to the Langfuse APIs from Python.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Async Client](#async-client)
- [Exception Handling](#exception-handling)
- [Advanced](#advanced)
- [Retries](#retries)
- [Timeouts](#timeouts)
- [Custom Client](#custom-client)
- [Contributing](#contributing)

## Installation

```sh
Expand Down
16 changes: 16 additions & 0 deletions langfuse/api/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -6486,6 +6486,22 @@ client.score_v_2.get()
<dl>
<dd>

**dataset_run_id:** `typing.Optional[str]` — Retrieve only scores with a specific datasetRunId.

</dd>
</dl>

<dl>
<dd>

**trace_id:** `typing.Optional[str]` — Retrieve only scores with a specific traceId.

</dd>
</dl>

<dl>
<dd>

**queue_id:** `typing.Optional[str]` — Retrieve only scores with a specific annotation queueId.

</dd>
Expand Down
98 changes: 98 additions & 0 deletions langfuse/api/resources/media/types/media_content_type.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ class MediaContentType(str, enum.Enum):
IMAGE_SVG_XML = "image/svg+xml"
IMAGE_TIFF = "image/tiff"
IMAGE_BMP = "image/bmp"
IMAGE_AVIF = "image/avif"
IMAGE_HEIC = "image/heic"
AUDIO_MPEG = "audio/mpeg"
AUDIO_MP_3 = "audio/mp3"
AUDIO_WAV = "audio/wav"
Expand All @@ -27,19 +29,46 @@ class MediaContentType(str, enum.Enum):
AUDIO_AAC = "audio/aac"
AUDIO_MP_4 = "audio/mp4"
AUDIO_FLAC = "audio/flac"
AUDIO_OPUS = "audio/opus"
AUDIO_WEBM = "audio/webm"
VIDEO_MP_4 = "video/mp4"
VIDEO_WEBM = "video/webm"
VIDEO_OGG = "video/ogg"
VIDEO_MPEG = "video/mpeg"
VIDEO_QUICKTIME = "video/quicktime"
VIDEO_X_MSVIDEO = "video/x-msvideo"
VIDEO_X_MATROSKA = "video/x-matroska"
TEXT_PLAIN = "text/plain"
TEXT_HTML = "text/html"
TEXT_CSS = "text/css"
TEXT_CSV = "text/csv"
TEXT_MARKDOWN = "text/markdown"
TEXT_X_PYTHON = "text/x-python"
APPLICATION_JAVASCRIPT = "application/javascript"
TEXT_X_TYPESCRIPT = "text/x-typescript"
APPLICATION_X_YAML = "application/x-yaml"
APPLICATION_PDF = "application/pdf"
APPLICATION_MSWORD = "application/msword"
APPLICATION_MS_EXCEL = "application/vnd.ms-excel"
APPLICATION_OPENXML_SPREADSHEET = (
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
)
APPLICATION_ZIP = "application/zip"
APPLICATION_JSON = "application/json"
APPLICATION_XML = "application/xml"
APPLICATION_OCTET_STREAM = "application/octet-stream"
APPLICATION_OPENXML_WORD = (
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
)
APPLICATION_OPENXML_PRESENTATION = (
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
)
APPLICATION_RTF = "application/rtf"
APPLICATION_X_NDJSON = "application/x-ndjson"
APPLICATION_PARQUET = "application/vnd.apache.parquet"
APPLICATION_GZIP = "application/gzip"
APPLICATION_X_TAR = "application/x-tar"
APPLICATION_X_7_Z_COMPRESSED = "application/x-7z-compressed"

def visit(
self,
Expand All @@ -51,6 +80,8 @@ def visit(
image_svg_xml: typing.Callable[[], T_Result],
image_tiff: typing.Callable[[], T_Result],
image_bmp: typing.Callable[[], T_Result],
image_avif: typing.Callable[[], T_Result],
image_heic: typing.Callable[[], T_Result],
audio_mpeg: typing.Callable[[], T_Result],
audio_mp_3: typing.Callable[[], T_Result],
audio_wav: typing.Callable[[], T_Result],
Expand All @@ -59,19 +90,40 @@ def visit(
audio_aac: typing.Callable[[], T_Result],
audio_mp_4: typing.Callable[[], T_Result],
audio_flac: typing.Callable[[], T_Result],
audio_opus: typing.Callable[[], T_Result],
audio_webm: typing.Callable[[], T_Result],
video_mp_4: typing.Callable[[], T_Result],
video_webm: typing.Callable[[], T_Result],
video_ogg: typing.Callable[[], T_Result],
video_mpeg: typing.Callable[[], T_Result],
video_quicktime: typing.Callable[[], T_Result],
video_x_msvideo: typing.Callable[[], T_Result],
video_x_matroska: typing.Callable[[], T_Result],
text_plain: typing.Callable[[], T_Result],
text_html: typing.Callable[[], T_Result],
text_css: typing.Callable[[], T_Result],
text_csv: typing.Callable[[], T_Result],
text_markdown: typing.Callable[[], T_Result],
text_x_python: typing.Callable[[], T_Result],
application_javascript: typing.Callable[[], T_Result],
text_x_typescript: typing.Callable[[], T_Result],
application_x_yaml: typing.Callable[[], T_Result],
application_pdf: typing.Callable[[], T_Result],
application_msword: typing.Callable[[], T_Result],
application_ms_excel: typing.Callable[[], T_Result],
application_openxml_spreadsheet: typing.Callable[[], T_Result],
application_zip: typing.Callable[[], T_Result],
application_json: typing.Callable[[], T_Result],
application_xml: typing.Callable[[], T_Result],
application_octet_stream: typing.Callable[[], T_Result],
application_openxml_word: typing.Callable[[], T_Result],
application_openxml_presentation: typing.Callable[[], T_Result],
application_rtf: typing.Callable[[], T_Result],
application_x_ndjson: typing.Callable[[], T_Result],
application_parquet: typing.Callable[[], T_Result],
application_gzip: typing.Callable[[], T_Result],
application_x_tar: typing.Callable[[], T_Result],
application_x_7_z_compressed: typing.Callable[[], T_Result],
) -> T_Result:
if self is MediaContentType.IMAGE_PNG:
return image_png()
Expand All @@ -89,6 +141,10 @@ def visit(
return image_tiff()
if self is MediaContentType.IMAGE_BMP:
return image_bmp()
if self is MediaContentType.IMAGE_AVIF:
return image_avif()
if self is MediaContentType.IMAGE_HEIC:
return image_heic()
if self is MediaContentType.AUDIO_MPEG:
return audio_mpeg()
if self is MediaContentType.AUDIO_MP_3:
Expand All @@ -105,10 +161,24 @@ def visit(
return audio_mp_4()
if self is MediaContentType.AUDIO_FLAC:
return audio_flac()
if self is MediaContentType.AUDIO_OPUS:
return audio_opus()
if self is MediaContentType.AUDIO_WEBM:
return audio_webm()
if self is MediaContentType.VIDEO_MP_4:
return video_mp_4()
if self is MediaContentType.VIDEO_WEBM:
return video_webm()
if self is MediaContentType.VIDEO_OGG:
return video_ogg()
if self is MediaContentType.VIDEO_MPEG:
return video_mpeg()
if self is MediaContentType.VIDEO_QUICKTIME:
return video_quicktime()
if self is MediaContentType.VIDEO_X_MSVIDEO:
return video_x_msvideo()
if self is MediaContentType.VIDEO_X_MATROSKA:
return video_x_matroska()
if self is MediaContentType.TEXT_PLAIN:
return text_plain()
if self is MediaContentType.TEXT_HTML:
Expand All @@ -117,12 +187,24 @@ def visit(
return text_css()
if self is MediaContentType.TEXT_CSV:
return text_csv()
if self is MediaContentType.TEXT_MARKDOWN:
return text_markdown()
if self is MediaContentType.TEXT_X_PYTHON:
return text_x_python()
if self is MediaContentType.APPLICATION_JAVASCRIPT:
return application_javascript()
if self is MediaContentType.TEXT_X_TYPESCRIPT:
return text_x_typescript()
if self is MediaContentType.APPLICATION_X_YAML:
return application_x_yaml()
if self is MediaContentType.APPLICATION_PDF:
return application_pdf()
if self is MediaContentType.APPLICATION_MSWORD:
return application_msword()
if self is MediaContentType.APPLICATION_MS_EXCEL:
return application_ms_excel()
if self is MediaContentType.APPLICATION_OPENXML_SPREADSHEET:
return application_openxml_spreadsheet()
if self is MediaContentType.APPLICATION_ZIP:
return application_zip()
if self is MediaContentType.APPLICATION_JSON:
Expand All @@ -131,3 +213,19 @@ def visit(
return application_xml()
if self is MediaContentType.APPLICATION_OCTET_STREAM:
return application_octet_stream()
if self is MediaContentType.APPLICATION_OPENXML_WORD:
return application_openxml_word()
if self is MediaContentType.APPLICATION_OPENXML_PRESENTATION:
return application_openxml_presentation()
if self is MediaContentType.APPLICATION_RTF:
return application_rtf()
if self is MediaContentType.APPLICATION_X_NDJSON:
return application_x_ndjson()
if self is MediaContentType.APPLICATION_PARQUET:
return application_parquet()
if self is MediaContentType.APPLICATION_GZIP:
return application_gzip()
if self is MediaContentType.APPLICATION_X_TAR:
return application_x_tar()
if self is MediaContentType.APPLICATION_X_7_Z_COMPRESSED:
return application_x_7_z_compressed()
20 changes: 20 additions & 0 deletions langfuse/api/resources/score_v_2/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ def get(
score_ids: typing.Optional[str] = None,
config_id: typing.Optional[str] = None,
session_id: typing.Optional[str] = None,
dataset_run_id: typing.Optional[str] = None,
trace_id: typing.Optional[str] = None,
queue_id: typing.Optional[str] = None,
data_type: typing.Optional[ScoreDataType] = None,
trace_tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
Expand Down Expand Up @@ -90,6 +92,12 @@ def get(
session_id : typing.Optional[str]
Retrieve only scores with a specific sessionId.

dataset_run_id : typing.Optional[str]
Retrieve only scores with a specific datasetRunId.

trace_id : typing.Optional[str]
Retrieve only scores with a specific traceId.

queue_id : typing.Optional[str]
Retrieve only scores with a specific annotation queueId.

Expand Down Expand Up @@ -141,6 +149,8 @@ def get(
"scoreIds": score_ids,
"configId": config_id,
"sessionId": session_id,
"datasetRunId": dataset_run_id,
"traceId": trace_id,
"queueId": queue_id,
"dataType": data_type,
"traceTags": trace_tags,
Expand Down Expand Up @@ -259,6 +269,8 @@ async def get(
score_ids: typing.Optional[str] = None,
config_id: typing.Optional[str] = None,
session_id: typing.Optional[str] = None,
dataset_run_id: typing.Optional[str] = None,
trace_id: typing.Optional[str] = None,
queue_id: typing.Optional[str] = None,
data_type: typing.Optional[ScoreDataType] = None,
trace_tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
Expand Down Expand Up @@ -308,6 +320,12 @@ async def get(
session_id : typing.Optional[str]
Retrieve only scores with a specific sessionId.

dataset_run_id : typing.Optional[str]
Retrieve only scores with a specific datasetRunId.

trace_id : typing.Optional[str]
Retrieve only scores with a specific traceId.

queue_id : typing.Optional[str]
Retrieve only scores with a specific annotation queueId.

Expand Down Expand Up @@ -367,6 +385,8 @@ async def main() -> None:
"scoreIds": score_ids,
"configId": config_id,
"sessionId": session_id,
"datasetRunId": dataset_run_id,
"traceId": trace_id,
"queueId": queue_id,
"dataType": data_type,
"traceTags": trace_tags,
Expand Down
Loading