From 27a4d08604de1f21803664d064785d1f7a753746 Mon Sep 17 00:00:00 2001 From: Krish Dholakia Date: Fri, 20 Dec 2024 13:30:16 -0800 Subject: [PATCH] Litellm dev 2024 12 19 p3 (#7322) * fix(utils.py): remove unsupported optional params (if drop_params=True) before passing into map openai params Fixes https://github.com/BerriAI/litellm/issues/7242 * test: new test for langfuse prompt management hook Addresses https://github.com/BerriAI/litellm/issues/3893#issuecomment-2549080296 * feat(main.py): add 'get_chat_completion_prompt' customlogger hook allows for langfuse prompt management Addresses https://github.com/BerriAI/litellm/issues/3893#issuecomment-2549080296 * feat(langfuse_prompt_management.py): working e2e langfuse prompt management works with `langfuse/` route * feat(main.py): initial tracing for dynamic langfuse params allows admin to specify langfuse keys by model in model_list * feat(main.py): support passing langfuse credentials dynamically * fix(langfuse_prompt_management.py): create langfuse client based on dynamic callback params allows dynamic langfuse params to work * fix: fix linting errors * docs(prompt_management.md): refactor docs for sdk + proxy prompt management tutorial * docs(prompt_management.md): cleanup doc * docs: cleanup topnav * docs(prompt_management.md): update docs to be easier to use * fix: remove unused imports * docs(prompt_management.md): add architectural overview doc * fix(litellm_logging.py): fix dynamic param passing * fix(langfuse_prompt_management.py): fix linting errors * fix: fix linting errors * fix: use typing_extensions for typealias to ensure python3.8 compatibility * test: use stream_options in test to account for tiktoken diff * fix: improve import error message, and check run test earlier --- .../docs/proxy/prompt_management.md | 195 ++++++++++--- docs/my-website/docusaurus.config.js | 10 +- ...angfuse_prompt_management_model_config.png | Bin 0 -> 97665 bytes .../prompt_management_architecture_doc.png | Bin 0 -> 188884 bytes docs/my-website/sidebars.js | 41 +-- litellm/integrations/custom_logger.py | 21 ++ .../langfuse/langfuse_prompt_management.py | 263 ++++++++++++------ litellm/litellm_core_utils/litellm_logging.py | 36 ++- .../vertex_ai_partner_models/main.py | 4 +- .../vertex_ai/vertex_model_garden/main.py | 4 +- litellm/main.py | 21 +- litellm/types/utils.py | 160 +++++------ litellm/utils.py | 21 +- .../test_bedrock_completion.py | 72 ++++- .../test_amazing_vertex_completion.py | 4 +- tests/local_testing/test_completion.py | 20 ++ tests/local_testing/test_cost_calc.py | 2 +- 17 files changed, 631 insertions(+), 243 deletions(-) create mode 100644 docs/my-website/img/langfuse_prompt_management_model_config.png create mode 100644 docs/my-website/img/prompt_management_architecture_doc.png diff --git a/docs/my-website/docs/proxy/prompt_management.md b/docs/my-website/docs/proxy/prompt_management.md index 4b19409217b1..328a73b8ebec 100644 --- a/docs/my-website/docs/proxy/prompt_management.md +++ b/docs/my-website/docs/proxy/prompt_management.md @@ -1,57 +1,182 @@ import Image from '@theme/IdealImage'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; # Prompt Management -LiteLLM supports using [Langfuse](https://langfuse.com/docs/prompts/get-started) for prompt management on the proxy. +Run experiments or change the specific model (e.g. from gpt-4o to gpt4o-mini finetune) from your prompt management tool (e.g. Langfuse) instead of making changes in the application. + +Supported Integrations: +- [Langfuse](https://langfuse.com/docs/prompts/get-started) ## Quick Start -1. Add Langfuse as a 'callback' in your config.yaml + + + + + +```python +import os +import litellm + +os.environ["LANGFUSE_PUBLIC_KEY"] = "public_key" # [OPTIONAL] set here or in `.completion` +os.environ["LANGFUSE_SECRET_KEY"] = "secret_key" # [OPTIONAL] set here or in `.completion` + +litellm.set_verbose = True # see raw request to provider + +resp = litellm.completion( + model="langfuse/gpt-3.5-turbo", + prompt_id="test-chat-prompt", + prompt_variables={"user_message": "this is used"}, # [OPTIONAL] + messages=[{"role": "user", "content": ""}], +) +``` + + + + + + +1. Setup config.yaml ```yaml model_list: - model_name: gpt-3.5-turbo litellm_params: - model: azure/chatgpt-v-2 - api_key: os.environ/AZURE_API_KEY - api_base: os.environ/AZURE_API_BASE - -litellm_settings: - callbacks: ["langfuse"] # 👈 KEY CHANGE + model: langfuse/gpt-3.5-turbo + prompt_id: "" + api_key: os.environ/OPENAI_API_KEY ``` 2. Start the proxy ```bash -litellm-proxy --config config.yaml +litellm --config config.yaml --detailed_debug ``` 3. Test it! + + + ```bash curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer sk-1234' \ -d '{ - "model": "gpt-4", + "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": "THIS WILL BE IGNORED" } ], - "metadata": { - "langfuse_prompt_id": "value", - "langfuse_prompt_variables": { # [OPTIONAL] - "key": "value" - } + "prompt_variables": { + "key": "this is used" } }' ``` + + + +```python +import openai +client = openai.OpenAI( + api_key="anything", + base_url="http://0.0.0.0:4000" +) + +# request sent to model set on litellm proxy, `litellm --model` +response = client.chat.completions.create( + model="gpt-3.5-turbo", + messages = [ + { + "role": "user", + "content": "this is a test request, write a short poem" + } + ], + extra_body={ + "prompt_variables": { # [OPTIONAL] + "key": "this is used" + } + } +) + +print(response) +``` + + + + + + + + +**Expected Logs:** + +``` +POST Request Sent from LiteLLM: +curl -X POST \ +https://api.openai.com/v1/ \ +-d '{'model': 'gpt-3.5-turbo', 'messages': }' +``` + +## How to set model + +### Set the model on LiteLLM -## What is 'langfuse_prompt_id'? +You can do `langfuse/` -- `langfuse_prompt_id`: The ID of the prompt that will be used for the request. + + + +```python +litellm.completion( + model="langfuse/gpt-3.5-turbo", # or `langfuse/anthropic/claude-3-5-sonnet` + ... +) +``` + + + + +```yaml +model_list: + - model_name: gpt-3.5-turbo + litellm_params: + model: langfuse/gpt-3.5-turbo # OR langfuse/anthropic/claude-3-5-sonnet + prompt_id: + api_key: os.environ/OPENAI_API_KEY +``` + + + + +### Set the model in Langfuse + +If the model is specified in the Langfuse config, it will be used. + + + +```yaml +model_list: + - model_name: gpt-3.5-turbo + litellm_params: + model: azure/chatgpt-v-2 + api_key: os.environ/AZURE_API_KEY + api_base: os.environ/AZURE_API_BASE +``` + +## What is 'prompt_variables'? + +- `prompt_variables`: A dictionary of variables that will be used to replace parts of the prompt. + + + +## What is 'prompt_id'? + +- `prompt_id`: The ID of the prompt that will be used for the request. @@ -59,25 +184,29 @@ curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \ ### `/chat/completions` messages -The message will be added to the start of the prompt. +The `messages` field sent in by the client is ignored. -- if the Langfuse prompt is a list, it will be added to the start of the messages list (assuming it's an OpenAI compatible message). +The Langfuse prompt will replace the `messages` field. -- if the Langfuse prompt is a string, it will be added as a system message. +To replace parts of the prompt, use the `prompt_variables` field. [See how prompt variables are used](https://github.com/BerriAI/litellm/blob/017f83d038f85f93202a083cf334de3544a3af01/litellm/integrations/langfuse/langfuse_prompt_management.py#L127) -```python -if isinstance(compiled_prompt, list): - data["messages"] = compiled_prompt + data["messages"] -else: - data["messages"] = [ - {"role": "system", "content": compiled_prompt} - ] + data["messages"] -``` +If the Langfuse prompt is a string, it will be sent as a user message (not all providers support system messages). -### `/completions` messages +If the Langfuse prompt is a list, it will be sent as is (Langfuse chat prompts are OpenAI compatible). -The message will be added to the start of the prompt. +## Architectural Overview -```python -data["prompt"] = compiled_prompt + "\n" + data["prompt"] -``` \ No newline at end of file + + +## API Reference + +These are the params you can pass to the `litellm.completion` function in SDK and `litellm_params` in config.yaml + +``` +prompt_id: str # required +prompt_variables: Optional[dict] # optional +langfuse_public_key: Optional[str] # optional +langfuse_secret: Optional[str] # optional +langfuse_secret_key: Optional[str] # optional +langfuse_host: Optional[str] # optional +``` diff --git a/docs/my-website/docusaurus.config.js b/docs/my-website/docusaurus.config.js index 73d500b14c4b..1dcb0613789a 100644 --- a/docs/my-website/docusaurus.config.js +++ b/docs/my-website/docusaurus.config.js @@ -130,15 +130,7 @@ const config = { href: 'https://discord.com/invite/wuPM9dRgDw', label: 'Discord', position: 'right', - }, - { - type: 'html', - position: 'right', - value: - ` - I'm Confused - ` - }, + } ], }, footer: { diff --git a/docs/my-website/img/langfuse_prompt_management_model_config.png b/docs/my-website/img/langfuse_prompt_management_model_config.png new file mode 100644 index 0000000000000000000000000000000000000000..d611ab3941c5a5214ed2d8cacfb854fedf3a8a6d GIT binary patch literal 97665 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 G#r_`)c)=Y2 literal 0 HcmV?d00001 diff --git a/docs/my-website/img/prompt_management_architecture_doc.png b/docs/my-website/img/prompt_management_architecture_doc.png new file mode 100644 index 0000000000000000000000000000000000000000..2040cb7fa3e9f70d5fb16fdf9e37495c59e228cd GIT binary patch literal 188884 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

U;ES?57G7+4%RhbxHS27^HRW({jZk5M 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

Om};LPSN*IAe};5*HaX!8v3*%B_M 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 literal 0 HcmV?d00001 diff --git a/docs/my-website/sidebars.js b/docs/my-website/sidebars.js index 9372f2c32ced..34701fa32471 100644 --- a/docs/my-website/sidebars.js +++ b/docs/my-website/sidebars.js @@ -135,7 +135,6 @@ const sidebars = { "oidc" ] }, - "proxy/prompt_management", "proxy/caching", "proxy/call_hooks", "proxy/rules", @@ -228,6 +227,7 @@ const sidebars = { "completion/batching", "completion/mock_requests", "completion/reliable_completions", + 'tutorials/litellm_proxy_aporia', ] }, @@ -309,8 +309,29 @@ const sidebars = { label: "LangChain, LlamaIndex, Instructor Integration", items: ["langchain/langchain", "tutorials/instructor"], }, + { + type: "category", + label: "Tutorials", + items: [ + + 'tutorials/azure_openai', + 'tutorials/instructor', + "tutorials/gradio_integration", + "tutorials/huggingface_codellama", + "tutorials/huggingface_tutorial", + "tutorials/TogetherAI_liteLLM", + "tutorials/finetuned_chat_gpt", + "tutorials/text_completion", + "tutorials/first_playground", + "tutorials/model_fallbacks", + ], + }, ], }, + { + type: "doc", + id: "proxy/prompt_management" + }, { type: "category", label: "Load Testing", @@ -362,23 +383,7 @@ const sidebars = { "observability/opik_integration", ], }, - { - type: "category", - label: "Tutorials", - items: [ - 'tutorials/litellm_proxy_aporia', - 'tutorials/azure_openai', - 'tutorials/instructor', - "tutorials/gradio_integration", - "tutorials/huggingface_codellama", - "tutorials/huggingface_tutorial", - "tutorials/TogetherAI_liteLLM", - "tutorials/finetuned_chat_gpt", - "tutorials/text_completion", - "tutorials/first_playground", - "tutorials/model_fallbacks", - ], - }, + { type: "category", label: "Extras", diff --git a/litellm/integrations/custom_logger.py b/litellm/integrations/custom_logger.py index dac95324864a..6045244c4d94 100644 --- a/litellm/integrations/custom_logger.py +++ b/litellm/integrations/custom_logger.py @@ -14,6 +14,7 @@ EmbeddingResponse, ImageResponse, ModelResponse, + StandardCallbackDynamicParams, StandardLoggingPayload, ) @@ -60,6 +61,26 @@ async def async_log_success_event(self, kwargs, response_obj, start_time, end_ti async def async_log_failure_event(self, kwargs, response_obj, start_time, end_time): pass + #### PROMPT MANAGEMENT HOOKS #### + + def get_chat_completion_prompt( + self, + model: str, + messages: List[AllMessageValues], + non_default_params: dict, + headers: dict, + prompt_id: str, + prompt_variables: Optional[dict], + dynamic_callback_params: StandardCallbackDynamicParams, + ) -> Tuple[str, List[AllMessageValues], dict]: + """ + Returns: + - model: str - the model to use (can be pulled from prompt management tool) + - messages: List[AllMessageValues] - the messages to use (can be pulled from prompt management tool) + - non_default_params: dict - update with any optional params (e.g. temperature, max_tokens, etc.) to use (can be pulled from prompt management tool) + """ + return model, messages, non_default_params + #### PRE-CALL CHECKS - router/proxy only #### """ Allows usage-based-routing-v2 to run pre-call rpm checks within the picked deployment's semaphore (concurrency-safe tpm/rpm checks). diff --git a/litellm/integrations/langfuse/langfuse_prompt_management.py b/litellm/integrations/langfuse/langfuse_prompt_management.py index 8f5ee02fda93..cb41d4aa526c 100644 --- a/litellm/integrations/langfuse/langfuse_prompt_management.py +++ b/litellm/integrations/langfuse/langfuse_prompt_management.py @@ -3,16 +3,93 @@ """ import os -import traceback -from typing import Literal, Optional, Union +from functools import lru_cache +from typing import TYPE_CHECKING, Any, List, Literal, Optional, Tuple, Union, cast from packaging.version import Version +from typing_extensions import TypeAlias from litellm._logging import verbose_proxy_logger from litellm.caching.dual_cache import DualCache from litellm.integrations.custom_logger import CustomLogger from litellm.proxy._types import UserAPIKeyAuth -from litellm.secret_managers.main import str_to_bool +from litellm.types.llms.openai import AllMessageValues +from litellm.types.utils import StandardCallbackDynamicParams + +if TYPE_CHECKING: + from langfuse import Langfuse + from langfuse.client import ChatPromptClient, TextPromptClient + + LangfuseClass: TypeAlias = Langfuse + + PROMPT_CLIENT = Union[TextPromptClient, ChatPromptClient] +else: + PROMPT_CLIENT = Any + LangfuseClass = Any + + +@lru_cache(maxsize=10) +def langfuse_client_init( + langfuse_public_key=None, + langfuse_secret=None, + langfuse_host=None, + flush_interval=1, +) -> LangfuseClass: + """ + Initialize Langfuse client with caching to prevent multiple initializations. + + Args: + langfuse_public_key (str, optional): Public key for Langfuse. Defaults to None. + langfuse_secret (str, optional): Secret key for Langfuse. Defaults to None. + langfuse_host (str, optional): Host URL for Langfuse. Defaults to None. + flush_interval (int, optional): Flush interval in seconds. Defaults to 1. + + Returns: + Langfuse: Initialized Langfuse client instance + + Raises: + Exception: If langfuse package is not installed + """ + try: + import langfuse + from langfuse import Langfuse + except Exception as e: + raise Exception( + f"\033[91mLangfuse not installed, try running 'pip install langfuse' to fix this error: {e}\n\033[0m" + ) + + # Instance variables + secret_key = langfuse_secret or os.getenv("LANGFUSE_SECRET_KEY") + public_key = langfuse_public_key or os.getenv("LANGFUSE_PUBLIC_KEY") + langfuse_host = langfuse_host or os.getenv( + "LANGFUSE_HOST", "https://cloud.langfuse.com" + ) + + if not ( + langfuse_host.startswith("http://") or langfuse_host.startswith("https://") + ): + # add http:// if unset, assume communicating over private network - e.g. render + langfuse_host = "http://" + langfuse_host + + langfuse_release = os.getenv("LANGFUSE_RELEASE") + langfuse_debug = os.getenv("LANGFUSE_DEBUG") + langfuse_flush_interval = os.getenv("LANGFUSE_FLUSH_INTERVAL") or flush_interval + + parameters = { + "public_key": public_key, + "secret_key": secret_key, + "host": langfuse_host, + "release": langfuse_release, + "debug": langfuse_debug, + "flush_interval": langfuse_flush_interval, # flush interval in seconds + } + + if Version(langfuse.version.__version__) >= Version("2.6.0"): + parameters["sdk_integration"] = "litellm" + + client = Langfuse(**parameters) + + return client class LangfusePromptManagement(CustomLogger): @@ -23,102 +100,42 @@ def __init__( langfuse_host=None, flush_interval=1, ): - try: - import langfuse - from langfuse import Langfuse - except Exception as e: - raise Exception( - f"\033[91mLangfuse not installed, try running 'pip install langfuse' to fix this error: {e}\n{traceback.format_exc()}\033[0m" - ) - # Instance variables - self.secret_key = langfuse_secret or os.getenv("LANGFUSE_SECRET_KEY") - self.public_key = langfuse_public_key or os.getenv("LANGFUSE_PUBLIC_KEY") - self.langfuse_host = langfuse_host or os.getenv( - "LANGFUSE_HOST", "https://cloud.langfuse.com" - ) - if not ( - self.langfuse_host.startswith("http://") - or self.langfuse_host.startswith("https://") - ): - # add http:// if unset, assume communicating over private network - e.g. render - self.langfuse_host = "http://" + self.langfuse_host - self.langfuse_release = os.getenv("LANGFUSE_RELEASE") - self.langfuse_debug = os.getenv("LANGFUSE_DEBUG") - self.langfuse_flush_interval = ( - os.getenv("LANGFUSE_FLUSH_INTERVAL") or flush_interval + self.Langfuse = langfuse_client_init( + langfuse_public_key=langfuse_public_key, + langfuse_secret=langfuse_secret, + langfuse_host=langfuse_host, + flush_interval=flush_interval, ) - parameters = { - "public_key": self.public_key, - "secret_key": self.secret_key, - "host": self.langfuse_host, - "release": self.langfuse_release, - "debug": self.langfuse_debug, - "flush_interval": self.langfuse_flush_interval, # flush interval in seconds - } - - if Version(langfuse.version.__version__) >= Version("2.6.0"): - parameters["sdk_integration"] = "litellm" - - self.Langfuse = Langfuse(**parameters) - - # set the current langfuse project id in the environ - # this is used by Alerting to link to the correct project - try: - project_id = self.Langfuse.client.projects.get().data[0].id - os.environ["LANGFUSE_PROJECT_ID"] = project_id - except Exception: - project_id = None - - if os.getenv("UPSTREAM_LANGFUSE_SECRET_KEY") is not None: - upstream_langfuse_debug = ( - str_to_bool(self.upstream_langfuse_debug) - if self.upstream_langfuse_debug is not None - else None - ) - self.upstream_langfuse_secret_key = os.getenv( - "UPSTREAM_LANGFUSE_SECRET_KEY" - ) - self.upstream_langfuse_public_key = os.getenv( - "UPSTREAM_LANGFUSE_PUBLIC_KEY" - ) - self.upstream_langfuse_host = os.getenv("UPSTREAM_LANGFUSE_HOST") - self.upstream_langfuse_release = os.getenv("UPSTREAM_LANGFUSE_RELEASE") - self.upstream_langfuse_debug = os.getenv("UPSTREAM_LANGFUSE_DEBUG") - self.upstream_langfuse = Langfuse( - public_key=self.upstream_langfuse_public_key, - secret_key=self.upstream_langfuse_secret_key, - host=self.upstream_langfuse_host, - release=self.upstream_langfuse_release, - debug=( - upstream_langfuse_debug - if upstream_langfuse_debug is not None - else False - ), - ) - else: - self.upstream_langfuse = None + def _get_prompt_from_id( + self, langfuse_prompt_id: str, langfuse_client: LangfuseClass + ) -> PROMPT_CLIENT: + return langfuse_client.get_prompt(langfuse_prompt_id) def _compile_prompt( self, - metadata: dict, + langfuse_prompt_client: PROMPT_CLIENT, + langfuse_prompt_variables: Optional[dict], call_type: Union[Literal["completion"], Literal["text_completion"]], ) -> Optional[Union[str, list]]: compiled_prompt: Optional[Union[str, list]] = None - if isinstance(metadata, dict): - langfuse_prompt_id = metadata.get("langfuse_prompt_id") - langfuse_prompt_variables = metadata.get("langfuse_prompt_variables") or {} - if ( - langfuse_prompt_id - and isinstance(langfuse_prompt_id, str) - and isinstance(langfuse_prompt_variables, dict) - ): - langfuse_prompt = self.Langfuse.get_prompt(langfuse_prompt_id) - compiled_prompt = langfuse_prompt.compile(**langfuse_prompt_variables) + if langfuse_prompt_variables is None: + langfuse_prompt_variables = {} + + compiled_prompt = langfuse_prompt_client.compile(**langfuse_prompt_variables) return compiled_prompt + def _get_model_from_prompt( + self, langfuse_prompt_client: PROMPT_CLIENT, model: str + ) -> str: + config = langfuse_prompt_client.config + if "model" in config: + return config["model"] + else: + return model.replace("langfuse/", "") + async def async_pre_call_hook( self, user_api_key_dict: UserAPIKeyAuth, @@ -137,9 +154,29 @@ async def async_pre_call_hook( ) -> Union[Exception, str, dict, None]: metadata = data.get("metadata") or {} + + if isinstance(metadata, dict): + langfuse_prompt_id = cast(Optional[str], metadata.get("langfuse_prompt_id")) + + langfuse_prompt_variables = cast( + Optional[dict], metadata.get("langfuse_prompt_variables") or {} + ) + else: + return None + + if langfuse_prompt_id is None: + return None + + prompt_client = self._get_prompt_from_id( + langfuse_prompt_id=langfuse_prompt_id, langfuse_client=self.Langfuse + ) compiled_prompt: Optional[Union[str, list]] = None if call_type == "completion" or call_type == "text_completion": - compiled_prompt = self._compile_prompt(metadata, call_type) + compiled_prompt = self._compile_prompt( + langfuse_prompt_client=prompt_client, + langfuse_prompt_variables=langfuse_prompt_variables, + call_type=call_type, + ) if compiled_prompt is None: return await super().async_pre_call_hook( user_api_key_dict, cache, data, call_type @@ -161,3 +198,53 @@ async def async_pre_call_hook( return await super().async_pre_call_hook( user_api_key_dict, cache, data, call_type ) + + def get_chat_completion_prompt( + self, + model: str, + messages: List[AllMessageValues], + non_default_params: dict, + headers: dict, + prompt_id: str, + prompt_variables: Optional[dict], + dynamic_callback_params: StandardCallbackDynamicParams, + ) -> Tuple[ + str, + List[AllMessageValues], + dict, + ]: + if prompt_id is None: + raise ValueError( + "Langfuse prompt id is required. Pass in as parameter 'langfuse_prompt_id'" + ) + langfuse_client = langfuse_client_init( + langfuse_public_key=dynamic_callback_params.get("langfuse_public_key"), + langfuse_secret=dynamic_callback_params.get("langfuse_secret"), + langfuse_host=dynamic_callback_params.get("langfuse_host"), + ) + langfuse_prompt_client = self._get_prompt_from_id( + langfuse_prompt_id=prompt_id, langfuse_client=langfuse_client + ) + + ## SET PROMPT + compiled_prompt = self._compile_prompt( + langfuse_prompt_client=langfuse_prompt_client, + langfuse_prompt_variables=prompt_variables, + call_type="completion", + ) + + if compiled_prompt is None: + raise ValueError(f"Langfuse prompt not found. Prompt id={prompt_id}") + if isinstance(compiled_prompt, list): + messages = compiled_prompt + elif isinstance(compiled_prompt, str): + messages = [{"role": "user", "content": compiled_prompt}] + else: + raise ValueError( + f"Langfuse prompt is not a list or string. Prompt id={prompt_id}, compiled_prompt type={type(compiled_prompt)}" + ) + + ## SET MODEL + model = self._get_model_from_prompt(langfuse_prompt_client, model) + + return model, messages, non_default_params diff --git a/litellm/litellm_core_utils/litellm_logging.py b/litellm/litellm_core_utils/litellm_logging.py index 725ba5e8902d..a2fe21a680c2 100644 --- a/litellm/litellm_core_utils/litellm_logging.py +++ b/litellm/litellm_core_utils/litellm_logging.py @@ -34,7 +34,7 @@ redact_message_input_output_from_custom_logger, redact_message_input_output_from_logging, ) -from litellm.types.llms.openai import HttpxBinaryResponseContent +from litellm.types.llms.openai import AllMessageValues, HttpxBinaryResponseContent from litellm.types.rerank import RerankResponse from litellm.types.router import SPECIAL_MODEL_INFO_PARAMS from litellm.types.utils import ( @@ -425,6 +425,40 @@ def update_environment_variables( if "custom_llm_provider" in self.model_call_details: self.custom_llm_provider = self.model_call_details["custom_llm_provider"] + def get_chat_completion_prompt( + self, + model: str, + messages: List[AllMessageValues], + non_default_params: dict, + headers: dict, + prompt_id: str, + prompt_variables: Optional[dict], + ) -> Tuple[str, List[AllMessageValues], dict]: + for ( + custom_logger_compatible_callback + ) in litellm._known_custom_logger_compatible_callbacks: + if model.startswith(custom_logger_compatible_callback): + custom_logger = _init_custom_logger_compatible_class( + logging_integration=custom_logger_compatible_callback, + internal_usage_cache=None, + llm_router=None, + ) + if custom_logger is None: + continue + model, messages, non_default_params = ( + custom_logger.get_chat_completion_prompt( + model=model, + messages=messages, + non_default_params=non_default_params, + headers=headers, + prompt_id=prompt_id, + prompt_variables=prompt_variables, + dynamic_callback_params=self.standard_callback_dynamic_params, + ) + ) + + return model, messages, non_default_params + def _pre_call(self, input, api_key, model=None, additional_args={}): """ Common helper function across the sync + async pre-call function diff --git a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py index 344f66682f19..b8ddeb03c92b 100644 --- a/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py +++ b/litellm/llms/vertex_ai/vertex_ai_partner_models/main.py @@ -96,10 +96,10 @@ def completion( from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( VertexLLM, ) - except Exception: + except Exception as e: raise VertexAIError( status_code=400, - message="""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`""", + message=f"""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`. Got error: {e}""", ) if not ( diff --git a/litellm/llms/vertex_ai/vertex_model_garden/main.py b/litellm/llms/vertex_ai/vertex_model_garden/main.py index 20ee38e97916..7b54d4e34b9c 100644 --- a/litellm/llms/vertex_ai/vertex_model_garden/main.py +++ b/litellm/llms/vertex_ai/vertex_model_garden/main.py @@ -75,11 +75,11 @@ def completion( from litellm.llms.vertex_ai.gemini.vertex_and_google_ai_studio_gemini import ( VertexLLM, ) - except Exception: + except Exception as e: raise VertexAIError( status_code=400, - message="""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`""", + message=f"""vertexai import failed please run `pip install -U "google-cloud-aiplatform>=1.38"`. Got error: {e}""", ) if not ( diff --git a/litellm/main.py b/litellm/main.py index 0b3288accdfa..804a747aa827 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -846,6 +846,9 @@ def completion( # type: ignore # noqa: PLR0915 client = kwargs.get("client", None) ### Admin Controls ### no_log = kwargs.get("no-log", False) + ### PROMPT MANAGEMENT ### + prompt_id = cast(Optional[str], kwargs.get("prompt_id", None)) + prompt_variables = cast(Optional[dict], kwargs.get("prompt_variables", None)) ### COPY MESSAGES ### - related issue https://github.com/BerriAI/litellm/discussions/4489 messages = get_completion_messages( messages=messages, @@ -894,11 +897,26 @@ def completion( # type: ignore # noqa: PLR0915 ] default_params = openai_params + all_litellm_params + litellm_params = {} # used to prevent unbound var errors non_default_params = { k: v for k, v in kwargs.items() if k not in default_params } # model-specific params - pass them straight to the model/provider + ## PROMPT MANAGEMENT HOOKS ## + + if isinstance(litellm_logging_obj, LiteLLMLoggingObj) and prompt_id is not None: + model, messages, optional_params = ( + litellm_logging_obj.get_chat_completion_prompt( + model=model, + messages=messages, + non_default_params=non_default_params, + headers=headers, + prompt_id=prompt_id, + prompt_variables=prompt_variables, + ) + ) + try: if base_url is not None: api_base = base_url @@ -1002,9 +1020,6 @@ def completion( # type: ignore # noqa: PLR0915 and supports_system_message is False ): messages = map_system_message_pt(messages=messages) - model_api_key = get_api_key( - llm_provider=custom_llm_provider, dynamic_api_key=api_key - ) # get the api key from the environment if required for the model if dynamic_api_key is not None: api_key = dynamic_api_key diff --git a/litellm/types/utils.py b/litellm/types/utils.py index 487bc64bfe02..254395ea51e0 100644 --- a/litellm/types/utils.py +++ b/litellm/types/utils.py @@ -1361,85 +1361,6 @@ class ResponseFormatChunk(TypedDict, total=False): response_schema: dict -all_litellm_params = [ - "metadata", - "litellm_trace_id", - "tags", - "acompletion", - "aimg_generation", - "atext_completion", - "text_completion", - "caching", - "mock_response", - "api_key", - "api_version", - "api_base", - "force_timeout", - "logger_fn", - "verbose", - "custom_llm_provider", - "litellm_logging_obj", - "litellm_call_id", - "use_client", - "id", - "fallbacks", - "azure", - "headers", - "model_list", - "num_retries", - "context_window_fallback_dict", - "retry_policy", - "retry_strategy", - "roles", - "final_prompt_value", - "bos_token", - "eos_token", - "request_timeout", - "complete_response", - "self", - "client", - "rpm", - "tpm", - "max_parallel_requests", - "input_cost_per_token", - "output_cost_per_token", - "input_cost_per_second", - "output_cost_per_second", - "hf_model_name", - "model_info", - "proxy_server_request", - "preset_cache_key", - "caching_groups", - "ttl", - "cache", - "no-log", - "base_model", - "stream_timeout", - "supports_system_message", - "region_name", - "allowed_model_region", - "model_config", - "fastest_response", - "cooldown_time", - "cache_key", - "max_retries", - "azure_ad_token_provider", - "tenant_id", - "client_id", - "client_secret", - "user_continue_message", - "configurable_clientside_auth_params", - "weight", - "ensure_alternating_roles", - "assistant_continue_message", - "user_continue_message", - "fallback_depth", - "max_fallbacks", - "max_budget", - "budget_duration", -] - - class LoggedLiteLLMParams(TypedDict, total=False): force_timeout: Optional[float] custom_llm_provider: Optional[str] @@ -1646,6 +1567,87 @@ class StandardCallbackDynamicParams(TypedDict, total=False): turn_off_message_logging: Optional[bool] # when true will not log messages +all_litellm_params = [ + "metadata", + "litellm_trace_id", + "tags", + "acompletion", + "aimg_generation", + "atext_completion", + "text_completion", + "caching", + "mock_response", + "api_key", + "api_version", + "prompt_id", + "prompt_variables", + "api_base", + "force_timeout", + "logger_fn", + "verbose", + "custom_llm_provider", + "litellm_logging_obj", + "litellm_call_id", + "use_client", + "id", + "fallbacks", + "azure", + "headers", + "model_list", + "num_retries", + "context_window_fallback_dict", + "retry_policy", + "retry_strategy", + "roles", + "final_prompt_value", + "bos_token", + "eos_token", + "request_timeout", + "complete_response", + "self", + "client", + "rpm", + "tpm", + "max_parallel_requests", + "input_cost_per_token", + "output_cost_per_token", + "input_cost_per_second", + "output_cost_per_second", + "hf_model_name", + "model_info", + "proxy_server_request", + "preset_cache_key", + "caching_groups", + "ttl", + "cache", + "no-log", + "base_model", + "stream_timeout", + "supports_system_message", + "region_name", + "allowed_model_region", + "model_config", + "fastest_response", + "cooldown_time", + "cache_key", + "max_retries", + "azure_ad_token_provider", + "tenant_id", + "client_id", + "client_secret", + "user_continue_message", + "configurable_clientside_auth_params", + "weight", + "ensure_alternating_roles", + "assistant_continue_message", + "user_continue_message", + "fallback_depth", + "max_fallbacks", + "max_budget", + "budget_duration", +] + list(StandardCallbackDynamicParams.__annotations__.keys()) + + class KeyGenerationConfig(TypedDict, total=False): required_params: List[ str diff --git a/litellm/utils.py b/litellm/utils.py index 7fbd586d9812..3038598f0b30 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -2442,6 +2442,23 @@ def _remove_strict_from_schema(schema): return schema +def _remove_unsupported_params( + non_default_params: dict, supported_openai_params: Optional[List[str]] +) -> dict: + """ + Remove unsupported params from non_default_params + """ + remove_keys = [] + if supported_openai_params is None: + return {} # no supported params, so no optional openai params to send + for param in non_default_params.keys(): + if param not in supported_openai_params: + remove_keys.append(param) + for key in remove_keys: + non_default_params.pop(key, None) + return non_default_params + + def get_optional_params( # noqa: PLR0915 # use the openai defaults # https://platform.openai.com/docs/api-reference/chat/create @@ -2688,11 +2705,13 @@ def _check_valid_arg(supported_params): # Always keeps this in elif code blocks else: unsupported_params[k] = non_default_params[k] + if unsupported_params: if litellm.drop_params is True or ( drop_params is not None and drop_params is True ): - pass + for k in unsupported_params.keys(): + non_default_params.pop(k, None) else: raise UnsupportedParamsError( status_code=500, diff --git a/tests/llm_translation/test_bedrock_completion.py b/tests/llm_translation/test_bedrock_completion.py index 5aa23e2dfa23..5efb280746f3 100644 --- a/tests/llm_translation/test_bedrock_completion.py +++ b/tests/llm_translation/test_bedrock_completion.py @@ -2224,13 +2224,19 @@ def mock_transform(*args, **kwargs): captured_data = result return result - with patch('litellm.AmazonConverseConfig._transform_request', side_effect=mock_transform): + with patch( + "litellm.AmazonConverseConfig._transform_request", side_effect=mock_transform + ): litellm.completion(**data) # Assert that additionalRequestParameters exists and contains topK - assert 'additionalModelRequestFields' in captured_data - assert 'inferenceConfig' in captured_data['additionalModelRequestFields'] - assert captured_data['additionalModelRequestFields']['inferenceConfig']['topK'] == 10 + assert "additionalModelRequestFields" in captured_data + assert "inferenceConfig" in captured_data["additionalModelRequestFields"] + assert ( + captured_data["additionalModelRequestFields"]["inferenceConfig"]["topK"] + == 10 + ) + def test_bedrock_empty_content_real_call(): completion( @@ -2261,3 +2267,61 @@ def test_bedrock_process_empty_text_blocks(): } modified_message = process_empty_text_blocks(**message) assert modified_message["content"][0]["text"] == "Please continue." + + +def test_nova_optional_params_tool_choice(): + litellm.drop_params = True + litellm.set_verbose = True + litellm.completion( + messages=[ + {"role": "user", "content": "A WWII competitive game for 4-8 players"} + ], + model="bedrock/us.amazon.nova-pro-v1:0", + temperature=0.3, + tools=[ + { + "type": "function", + "function": { + "name": "GameDefinition", + "description": "Correctly extracted `GameDefinition` with all the required parameters with correct types", + "parameters": { + "$defs": { + "TurnDurationEnum": { + "enum": ["action", "encounter", "battle", "operation"], + "title": "TurnDurationEnum", + "type": "string", + } + }, + "properties": { + "id": { + "anyOf": [{"type": "integer"}, {"type": "null"}], + "default": None, + "title": "Id", + }, + "prompt": {"title": "Prompt", "type": "string"}, + "name": {"title": "Name", "type": "string"}, + "description": {"title": "Description", "type": "string"}, + "competitve": {"title": "Competitve", "type": "boolean"}, + "players_min": {"title": "Players Min", "type": "integer"}, + "players_max": {"title": "Players Max", "type": "integer"}, + "turn_duration": { + "$ref": "#/$defs/TurnDurationEnum", + "description": "how long the passing of a turn should represent for a game at this scale", + }, + }, + "required": [ + "competitve", + "description", + "name", + "players_max", + "players_min", + "prompt", + "turn_duration", + ], + "type": "object", + }, + }, + } + ], + tool_choice={"type": "function", "function": {"name": "GameDefinition"}}, + ) diff --git a/tests/local_testing/test_amazing_vertex_completion.py b/tests/local_testing/test_amazing_vertex_completion.py index 8c01a6889db3..bb7b38addc91 100644 --- a/tests/local_testing/test_amazing_vertex_completion.py +++ b/tests/local_testing/test_amazing_vertex_completion.py @@ -60,7 +60,7 @@ "gemini-1.5-flash-exp-0827", "gemini-pro-flash", "gemini-1.5-flash-exp-0827", - "gemini-2.0-flash-exp" + "gemini-2.0-flash-exp", ] @@ -308,7 +308,7 @@ async def test_vertex_ai_anthropic_async(): # ) @pytest.mark.asyncio @pytest.mark.flaky(retries=3, delay=1) -async def test_vertex_ai_anthropic_async_streaming(): +async def test_aaavertex_ai_anthropic_async_streaming(): # load_vertex_ai_credentials() try: litellm.set_verbose = True diff --git a/tests/local_testing/test_completion.py b/tests/local_testing/test_completion.py index b7d7473885fb..5902047b70ca 100644 --- a/tests/local_testing/test_completion.py +++ b/tests/local_testing/test_completion.py @@ -4513,3 +4513,23 @@ def test_openai_hallucinated_tool_call_util(function_name, expect_modification): else: assert len(response) == 1 assert response[0].function.name == function_name + + +def test_langfuse_completion(monkeypatch): + monkeypatch.setenv( + "LANGFUSE_PUBLIC_KEY", "pk-lf-b3db7e8e-c2f6-4fc7-825c-a541a8fbe003" + ) + monkeypatch.setenv( + "LANGFUSE_SECRET_KEY", "sk-lf-b11ef3a8-361c-4445-9652-12318b8596e4" + ) + monkeypatch.setenv("LANGFUSE_HOST", "https://us.cloud.langfuse.com") + litellm.set_verbose = True + resp = litellm.completion( + model="langfuse/gpt-3.5-turbo", + langfuse_public_key=os.getenv("LANGFUSE_PUBLIC_KEY"), + langfuse_secret_key=os.getenv("LANGFUSE_SECRET_KEY"), + langfuse_host="https://us.cloud.langfuse.com", + prompt_id="test-chat-prompt", + prompt_variables={"user_message": "this is used"}, + messages=[{"role": "user", "content": "this is ignored"}], + ) diff --git a/tests/local_testing/test_cost_calc.py b/tests/local_testing/test_cost_calc.py index 1831c2a45e0a..1cfc7609109a 100644 --- a/tests/local_testing/test_cost_calc.py +++ b/tests/local_testing/test_cost_calc.py @@ -92,7 +92,7 @@ def test_run(model: str): print("Non-stream cost : NONE") print(f"Non-stream cost : {completion_cost(response) * 100:.4f} (response)") - response = router.completion(**kwargs, stream=True) # type: ignore + response = router.completion(**kwargs, stream=True, stream_options={"include_usage": True}) # type: ignore response = stream_chunk_builder(list(response), messages=kwargs["messages"]) # type: ignore output = response.choices[0].message.content.replace("\n", "") # type: ignore streaming_cost_calc = completion_cost(response) * 100