Skip to content

Commit

Permalink
Merge pull request #156 from Chainlit/matt/eng-2178-allow-prompt-dele…
Browse files Browse the repository at this point in the history
…tion

feat: add warning messages when getting deleted promp
  • Loading branch information
willydouhard authored Jan 9, 2025
2 parents 843de0c + c9f7514 commit 9608e6c
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 3 deletions.
4 changes: 4 additions & 0 deletions literalai/api/helpers/gql.py
Original file line number Diff line number Diff line change
Expand Up @@ -989,6 +989,7 @@
) {
id
name
deletedAt
}
}"""

Expand All @@ -999,6 +1000,7 @@
name: $name
) {
id
deletedAt
}
}"""

Expand All @@ -1023,6 +1025,7 @@
id
lineage {
name
deletedAt
}
version
createdAt
Expand Down Expand Up @@ -1083,6 +1086,7 @@
version
lineage {
name
deletedAt
}
}
}
Expand Down
39 changes: 36 additions & 3 deletions literalai/api/helpers/prompt_helpers.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import logging
from typing import TYPE_CHECKING, Optional, TypedDict, Callable

from literalai.observability.generation import GenerationMessage
Expand All @@ -12,11 +13,18 @@
from literalai.api.helpers import gql


logger = logging.getLogger(__name__)


def create_prompt_lineage_helper(name: str, description: Optional[str] = None):
variables = {"name": name, "description": description}

def process_response(response):
prompt = response["data"]["createPromptLineage"]
if prompt and prompt.get("deletedAt"):
logger.warning(
f"Prompt {name} was deleted - please update any references to use an active prompt in production"
)
return prompt

description = "create prompt lineage"
Expand All @@ -29,6 +37,10 @@ def get_prompt_lineage_helper(name: str):

def process_response(response):
prompt = response["data"]["promptLineage"]
if prompt and prompt.get("deletedAt"):
logger.warning(
f"Prompt {name} was deleted - please update any references to use an active prompt in production"
)
return prompt

description = "get prompt lineage"
Expand All @@ -52,15 +64,23 @@ def create_prompt_helper(

def process_response(response):
prompt = response["data"]["createPromptVersion"]
prompt_lineage = prompt.get("lineage")

if prompt_lineage and prompt_lineage.get("deletedAt"):
logger.warning(
f"Prompt {prompt_lineage.get('name')} was deleted - please update any references to use an active prompt in production"
)
return Prompt.from_dict(api, prompt) if prompt else None

description = "create prompt version"

return gql.CREATE_PROMPT_VERSION, description, variables, process_response


def get_prompt_cache_key(id: Optional[str], name: Optional[str], version: Optional[int]) -> str:
if id:
def get_prompt_cache_key(
id: Optional[str], name: Optional[str], version: Optional[int]
) -> str:
if id:
return id
elif name and version:
return f"{name}-{version}"
Expand Down Expand Up @@ -90,14 +110,27 @@ def get_prompt_helper(

def process_response(response):
prompt_version = response["data"]["promptVersion"]
prompt_lineage = prompt_version.get("lineage")

if prompt_lineage and prompt_lineage.get("deletedAt"):
logger.warning(
f"Prompt {name} was deleted - please update any references to use an active prompt in production"
)
prompt = Prompt.from_dict(api, prompt_version) if prompt_version else None
if cache and prompt:
put_prompt(cache, prompt)
return prompt

description = "get prompt"

return gql.GET_PROMPT_VERSION, description, variables, process_response, timeout, cached_prompt
return (
gql.GET_PROMPT_VERSION,
description,
variables,
process_response,
timeout,
cached_prompt,
)


def create_prompt_variant_helper(
Expand Down

0 comments on commit 9608e6c

Please sign in to comment.