Skip to content

Commit 46b63a2

Browse files
authored
feat(media): allow disabling media handling via envvar (#1199)
1 parent 923b0ff commit 46b63a2

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

langfuse/_client/environment_variables.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,12 @@
110110
111111
**Default value**: ``True``
112112
"""
113+
114+
LANGFUSE_MEDIA_UPLOAD_ENABLED = "LANGFUSE_MEDIA_UPLOAD_ENABLED"
115+
"""
116+
.. envvar: LANGFUSE_MEDIA_UPLOAD_ENABLED
117+
118+
Controls whether media detection and upload is attempted by the SDK.
119+
120+
**Default value**: ``True``
121+
"""

langfuse/_client/resource_manager.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
from langfuse._client.attributes import LangfuseOtelSpanAttributes
3030
from langfuse._client.constants import LANGFUSE_TRACER_NAME
3131
from langfuse._client.environment_variables import (
32+
LANGFUSE_MEDIA_UPLOAD_ENABLED,
3233
LANGFUSE_MEDIA_UPLOAD_THREAD_COUNT,
3334
LANGFUSE_RELEASE,
3435
LANGFUSE_TRACING_ENVIRONMENT,
@@ -190,6 +191,10 @@ def _initialize_instance(
190191
)
191192

192193
# Media
194+
self._media_upload_enabled = os.environ.get(
195+
LANGFUSE_MEDIA_UPLOAD_ENABLED, "True"
196+
).lower() not in ("false", "0")
197+
193198
self._media_upload_queue = Queue(100_000)
194199
self._media_manager = MediaManager(
195200
api_client=self.api,
@@ -202,13 +207,14 @@ def _initialize_instance(
202207
int(os.getenv(LANGFUSE_MEDIA_UPLOAD_THREAD_COUNT, 1)), 1
203208
)
204209

205-
for i in range(media_upload_thread_count):
206-
media_upload_consumer = MediaUploadConsumer(
207-
identifier=i,
208-
media_manager=self._media_manager,
209-
)
210-
media_upload_consumer.start()
211-
self._media_upload_consumers.append(media_upload_consumer)
210+
if self._media_upload_enabled:
211+
for i in range(media_upload_thread_count):
212+
media_upload_consumer = MediaUploadConsumer(
213+
identifier=i,
214+
media_manager=self._media_manager,
215+
)
216+
media_upload_consumer.start()
217+
self._media_upload_consumers.append(media_upload_consumer)
212218

213219
# Prompt cache
214220
self.prompt_cache = PromptCache()

langfuse/_task_manager/media_manager.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import os
23
import time
34
from queue import Empty, Full, Queue
45
from typing import Any, Callable, Optional, TypeVar, cast
@@ -7,6 +8,7 @@
78
import requests
89
from typing_extensions import ParamSpec
910

11+
from langfuse._client.environment_variables import LANGFUSE_MEDIA_UPLOAD_ENABLED
1012
from langfuse._utils import _get_timestamp
1113
from langfuse.api import GetMediaUploadUrlRequest, PatchMediaBody
1214
from langfuse.api.client import FernLangfuse
@@ -33,6 +35,9 @@ def __init__(
3335
self._api_client = api_client
3436
self._queue = media_upload_queue
3537
self._max_retries = max_retries
38+
self._enabled = os.environ.get(
39+
LANGFUSE_MEDIA_UPLOAD_ENABLED, "True"
40+
).lower() not in ("false", "0")
3641

3742
def process_next_media_upload(self):
3843
try:
@@ -60,6 +65,9 @@ def _find_and_process_media(
6065
observation_id: Optional[str],
6166
field: str,
6267
):
68+
if not self._enabled:
69+
return data
70+
6371
seen = set()
6472
max_levels = 10
6573

0 commit comments

Comments
 (0)