diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/sdk/asnyc_methods/prompts.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/sdk/asnyc_methods/prompts.py | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/prompts.py b/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/prompts.py new file mode 100644 index 00000000..c7cdb50a --- /dev/null +++ b/.venv/lib/python3.12/site-packages/sdk/asnyc_methods/prompts.py @@ -0,0 +1,128 @@ +import json +from typing import Any, Optional + +from shared.api.models import ( + WrappedBooleanResponse, + WrappedGenericMessageResponse, + WrappedPromptResponse, + WrappedPromptsResponse, +) + + +class PromptsSDK: + def __init__(self, client): + self.client = client + + async def create( + self, name: str, template: str, input_types: dict + ) -> WrappedGenericMessageResponse: + """Create a new prompt. + + Args: + name (str): The name of the prompt + template (str): The template string for the prompt + input_types (dict): A dictionary mapping input names to their types + Returns: + dict: Created prompt information + """ + data: dict[str, Any] = { + "name": name, + "template": template, + "input_types": input_types, + } + response_dict = await self.client._make_request( + "POST", + "prompts", + json=data, + version="v3", + ) + + return WrappedGenericMessageResponse(**response_dict) + + async def list(self) -> WrappedPromptsResponse: + """List all available prompts. + + Returns: + dict: List of all available prompts + """ + response_dict = await self.client._make_request( + "GET", + "prompts", + version="v3", + ) + + return WrappedPromptsResponse(**response_dict) + + async def retrieve( + self, + name: str, + inputs: Optional[dict] = None, + prompt_override: Optional[str] = None, + ) -> WrappedPromptResponse: + """Get a specific prompt by name, optionally with inputs and override. + + Args: + name (str): The name of the prompt to retrieve + inputs (Optional[dict]): JSON-encoded inputs for the prompt + prompt_override (Optional[str]): An override for the prompt template + Returns: + dict: The requested prompt with applied inputs and/or override + """ + params = {} + if inputs: + params["inputs"] = json.dumps(inputs) + if prompt_override: + params["prompt_override"] = prompt_override + response_dict = await self.client._make_request( + "POST", + f"prompts/{name}", + params=params, + version="v3", + ) + + return WrappedPromptResponse(**response_dict) + + async def update( + self, + name: str, + template: Optional[str] = None, + input_types: Optional[dict] = None, + ) -> WrappedGenericMessageResponse: + """Update an existing prompt's template and/or input types. + + Args: + name (str): The name of the prompt to update + template (Optional[str]): The updated template string for the prompt + input_types (Optional[dict]): The updated dictionary mapping input names to their types + Returns: + dict: The updated prompt details + """ + data: dict = {} + if template: + data["template"] = template + if input_types: + data["input_types"] = json.dumps(input_types) + response_dict = await self.client._make_request( + "PUT", + f"prompts/{name}", + json=data, + version="v3", + ) + + return WrappedGenericMessageResponse(**response_dict) + + async def delete(self, name: str) -> WrappedBooleanResponse: + """Delete a prompt by name. + + Args: + name (str): The name of the prompt to delete + Returns: + bool: True if deletion was successful + """ + response_dict = await self.client._make_request( + "DELETE", + f"prompts/{name}", + version="v3", + ) + + return WrappedBooleanResponse(**response_dict) |