diff --git a/python/langsmith/_internal/_background_thread.py b/python/langsmith/_internal/_background_thread.py index 6647e87c9..4e2d8a266 100644 --- a/python/langsmith/_internal/_background_thread.py +++ b/python/langsmith/_internal/_background_thread.py @@ -18,6 +18,7 @@ ) from langsmith import schemas as ls_schemas +from langsmith import utils as ls_utils from langsmith._internal._constants import ( _AUTO_SCALE_DOWN_NEMPTY_TRIGGER, _AUTO_SCALE_UP_NTHREADS_LIMIT, @@ -157,6 +158,21 @@ def _tracing_thread_handle_batch( tracing_queue.task_done() +def get_size_limit_from_env() -> Optional[int]: + size_limit_str = ls_utils.get_env_var( + "BATCH_INGEST_SIZE_LIMIT", + ) + if size_limit_str is not None: + try: + return int(size_limit_str) + except ValueError: + logger.warning( + f"Invalid value for BATCH_INGEST_SIZE_LIMIT: {size_limit_str}, " + "continuing with default" + ) + return None + + def _ensure_ingest_config( info: ls_schemas.LangSmithInfo, ) -> ls_schemas.BatchIngestConfig: @@ -173,6 +189,9 @@ def _ensure_ingest_config( try: if not info.batch_ingest_config: return default_config + env_size_limit = get_size_limit_from_env() + if env_size_limit is not None: + info.batch_ingest_config["size_limit"] = env_size_limit return info.batch_ingest_config except BaseException: return default_config