diff --git a/examples/prompt.py b/examples/prompt.py index 7ac8e8c..8d29e87 100644 --- a/examples/prompt.py +++ b/examples/prompt.py @@ -1,26 +1,11 @@ from dotenv import load_dotenv -from openai import OpenAI from literalai import LiteralClient load_dotenv() -openai = OpenAI() - client = LiteralClient() -client.instrument_openai() - -prompt = client.api.create_prompt( - name="hello", - template_messages=[{"role": "user", "content": "Hello, how are you {{name}}?"}], -) -messages = prompt.format_messages(name="Alice") - - -res = openai.chat.completions.create( - model="gpt-3.5-turbo", - messages=messages, -) +prompt = client.api.get_prompt(name="Default", version=0) -print(res) +print(prompt) diff --git a/literalai/api/gql.py b/literalai/api/gql.py index 2058ae4..7ad4713 100644 --- a/literalai/api/gql.py +++ b/literalai/api/gql.py @@ -1034,6 +1034,7 @@ variables variablesDefaultValues version + url lineage { name } diff --git a/literalai/prompt_engineering/prompt.py b/literalai/prompt_engineering/prompt.py index 19e3933..1527d1b 100644 --- a/literalai/prompt_engineering/prompt.py +++ b/literalai/prompt_engineering/prompt.py @@ -49,6 +49,7 @@ class PromptDict(TypedDict, total=False): type: "GenerationType" name: str version: int + url: str versionDesc: Optional[str] templateMessages: List["GenerationMessage"] tools: Optional[List[Dict]] @@ -67,6 +68,7 @@ class Prompt(Utils): type: "GenerationType" name: str version: int + url: str version_desc: Optional[str] template_messages: List["GenerationMessage"] tools: Optional[List[Dict]] @@ -84,6 +86,7 @@ def to_dict(self) -> PromptDict: "type": self.type, "name": self.name, "version": self.version, + "url": self.url, "versionDesc": self.version_desc, "templateMessages": self.template_messages, # Assuming this is a list of dicts or similar serializable objects "tools": self.tools, @@ -104,6 +107,7 @@ def from_dict(cls, api: "LiteralAPI", prompt_dict: PromptDict) -> "Prompt": id=prompt_dict.get("id", ""), name=prompt_dict.get("lineage", {}).get("name", ""), version=prompt_dict.get("version", 0), + url=prompt_dict.get("url", ""), created_at=prompt_dict.get("createdAt", ""), updated_at=prompt_dict.get("updatedAt", ""), type=prompt_dict.get("type", GenerationType.CHAT), diff --git a/tests/e2e/test_e2e.py b/tests/e2e/test_e2e.py index 1137878..c858ae6 100644 --- a/tests/e2e/test_e2e.py +++ b/tests/e2e/test_e2e.py @@ -594,10 +594,13 @@ async def test_dataset_sync( @pytest.mark.timeout(5) async def test_prompt(self, async_client: AsyncLiteralClient): prompt = await async_client.api.get_prompt(name="Default", version=0) + project = await async_client.api.get_my_project_id() + assert prompt is not None assert prompt.name == "Default" assert prompt.version == 0 assert prompt.provider == "openai" + assert prompt.url.endswith(f"projects/{project}/playground?name=Default&version=0") prompt = await async_client.api.get_prompt(id=prompt.id, version=0) assert prompt is not None