From 971e454f0dac6398b86eb6b0b1077a4db9558467 Mon Sep 17 00:00:00 2001 From: Jake Rachleff Date: Fri, 10 Nov 2023 15:04:19 -0800 Subject: [PATCH] add default configs for all served runnables --- langserve/server.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/langserve/server.py b/langserve/server.py index aec218fb..abac32ea 100644 --- a/langserve/server.py +++ b/langserve/server.py @@ -7,6 +7,7 @@ """ import contextlib import json +import os import re import weakref from inspect import isclass @@ -554,6 +555,23 @@ def _route_name_with_config(name: str) -> str: InvokeResponse = create_invoke_response_model(model_namespace, output_type_) BatchResponse = create_batch_response_model(model_namespace, output_type_) + def _get_default_base_config() -> RunnableConfig: + """Set up some baseline configuration for the underlying runnable.""" + metadata = {} + is_hosted = os.environ.get("HOSTED_LANGSERVE_ENABLED", "false").lower() == "true" + if is_hosted: + hosted_metadata = { + "Commit SHA": os.environ.get("HOSTED_LANGSERVE_GIT_COMMIT", ""), + "Git Repo Subdirectory": os.environ.get("HOSTED_LANGSERVE_GIT_REPO_PATH", ""), + "Git Repo URL": os.environ.get("HOSTED_LANGSERVE_GIT_REPO", ""), + + } + metadata.update(hosted_metadata) + return RunnableConfig( + run_name=path, + metadata=metadata, + ) + async def _get_config_and_input( request: Request, config_hash: str ) -> Tuple[RunnableConfig, Any]: @@ -597,6 +615,7 @@ async def invoke( # have dynamic schema -- so the validation below is a bit more involved. config, input_ = await _get_config_and_input(request, config_hash) + config = merge_configs(_get_default_base_config(), config) event_aggregator = AsyncEventAggregatorCallback() _add_tracing_info_to_metadata(config, request) config["callbacks"] = [event_aggregator]