fix: partially working generic api prompt management

This commit is contained in:
Krrish Dholakia
2025-12-10 17:39:13 -08:00
parent 7f5a097e96
commit 5a736b74ff
4 changed files with 53 additions and 21 deletions
+2
View File
@@ -163,6 +163,8 @@ class CustomLogger: # https://docs.litellm.ai/docs/observability/custom_callbac
tools: Optional[List[Dict]] = None,
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
ignore_prompt_manager_model: Optional[bool] = False,
ignore_prompt_manager_optional_params: Optional[bool] = False,
) -> Tuple[str, List[AllMessageValues], dict]:
"""
Returns:
@@ -420,10 +420,13 @@ class GenericPromptManager(CustomPromptManagement):
tools: Optional[List[Dict]] = None,
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
ignore_prompt_manager_model: Optional[bool] = False,
ignore_prompt_manager_optional_params: Optional[bool] = False,
) -> Tuple[str, List[AllMessageValues], dict]:
"""
Get chat completion prompt and return processed model, messages, and parameters.
"""
return await PromptManagementBase.async_get_chat_completion_prompt(
self,
model,
@@ -437,6 +440,18 @@ class GenericPromptManager(CustomPromptManagement):
tools=tools,
prompt_label=prompt_label,
prompt_version=prompt_version,
ignore_prompt_manager_model=(
ignore_prompt_manager_model
or prompt_spec.litellm_params.ignore_prompt_manager_model
if prompt_spec
else False
),
ignore_prompt_manager_optional_params=(
ignore_prompt_manager_optional_params
or prompt_spec.litellm_params.ignore_prompt_manager_optional_params
if prompt_spec
else False
),
)
def get_chat_completion_prompt(
@@ -450,6 +465,8 @@ class GenericPromptManager(CustomPromptManagement):
prompt_spec: Optional[PromptSpec] = None,
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
ignore_prompt_manager_model: Optional[bool] = False,
ignore_prompt_manager_optional_params: Optional[bool] = False,
) -> Tuple[str, List[AllMessageValues], dict]:
"""
Get chat completion prompt and return processed model, messages, and parameters.
@@ -465,6 +482,18 @@ class GenericPromptManager(CustomPromptManagement):
prompt_spec=prompt_spec,
prompt_label=prompt_label,
prompt_version=prompt_version,
ignore_prompt_manager_model=(
ignore_prompt_manager_model
or prompt_spec.litellm_params.ignore_prompt_manager_model
if prompt_spec
else False
),
ignore_prompt_manager_optional_params=(
ignore_prompt_manager_optional_params
or prompt_spec.litellm_params.ignore_prompt_manager_optional_params
if prompt_spec
else False
),
)
def clear_cache(self) -> None:
+19 -19
View File
@@ -138,6 +138,8 @@ class PromptManagementBase(ABC):
messages: List[AllMessageValues],
non_default_params: dict,
model: str,
ignore_prompt_manager_model: Optional[bool] = False,
ignore_prompt_manager_optional_params: Optional[bool] = False,
):
completed_messages = prompt_template["completed_messages"] or messages
@@ -147,12 +149,19 @@ class PromptManagementBase(ABC):
updated_non_default_params = {
**non_default_params,
**prompt_template_optional_params,
**(
prompt_template_optional_params
if not ignore_prompt_manager_optional_params
else {}
),
}
model = self._get_model_from_prompt(
prompt_management_client=prompt_template, model=model
)
if not ignore_prompt_manager_model:
model = self._get_model_from_prompt(
prompt_management_client=prompt_template, model=model
)
else:
model = model
return model, completed_messages, updated_non_default_params
@@ -194,6 +203,8 @@ class PromptManagementBase(ABC):
messages=messages,
non_default_params=non_default_params,
model=model,
ignore_prompt_manager_model=ignore_prompt_manager_model,
ignore_prompt_manager_optional_params=ignore_prompt_manager_optional_params,
)
async def async_get_chat_completion_prompt(
@@ -209,6 +220,8 @@ class PromptManagementBase(ABC):
tools: Optional[List[Dict]] = None,
prompt_label: Optional[str] = None,
prompt_version: Optional[int] = None,
ignore_prompt_manager_model: Optional[bool] = False,
ignore_prompt_manager_optional_params: Optional[bool] = False,
) -> Tuple[str, List[AllMessageValues], dict]:
if not self.should_run_prompt_management(
prompt_id=prompt_id,
@@ -226,25 +239,12 @@ class PromptManagementBase(ABC):
prompt_label=prompt_label,
prompt_version=prompt_version,
)
if not ignore_prompt_manager_optional_params:
updated_non_default_params = {
**non_default_params,
**prompt_template_optional_params,
}
else:
updated_non_default_params = non_default_params
if not ignore_prompt_manager_model:
model = self._get_model_from_prompt(
prompt_management_client=prompt_template, model=model
)
else:
model = model
return self.post_compile_prompt_processing(
prompt_template=prompt_template,
messages=messages,
non_default_params=non_default_params,
model=model,
ignore_prompt_manager_model=ignore_prompt_manager_model,
ignore_prompt_manager_optional_params=ignore_prompt_manager_optional_params,
)
+3 -2
View File
@@ -24,14 +24,15 @@ class PromptInfo(BaseModel):
class PromptLiteLLMParams(BaseModel):
prompt_id: Optional[str] = None
prompt_integration: str
api_key: Optional[str] = None
api_base: Optional[str] = None
api_base: Optional[str] = None
api_key: Optional[str] = None
provider_specific_query_params: Optional[Dict[str, Any]] = None
ignore_prompt_manager_model: Optional[bool] = False
ignore_prompt_manager_optional_params: Optional[bool] = False
dotprompt_content: Optional[str] = None
"""
allows saving the dotprompt file content