Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prompt library documentation #587

Merged
merged 1 commit into from
Nov 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
sidebar_label: Prompt Library
---

import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";

# Prompt Library

Opik provides a prompt library that you can use to manage your prompts. Storing prompts in a library allows you to version them, reuse them across projects, and manage them in a central location.

Using a prompt library does not mean you can't store your prompt in code, we have designed the prompt library to be work seamlessly with your existing prompt files while providing the benefits of a central prompt library.

## Creating prompts in Opik

### Create a prompt in the UI

You can create a prompt in the UI by navigating to the Prompt library and clicking `Create new prompt`. This will open a dialog where you can enter the prompt name, the prompt text, and optionally a description:

![Prompt library](/img/library/prompt_library.png)

You can also edit a prompt by clicking on the prompt name in the library and clicking `Edit prompt`. Once a prompt is created in the library, you can access it in code using:

```python
import opik

opik.configure()
client = opik.Opik()

prompt = client.get_prompt(name="prompt-summary")

# Print the prompt text
print(prompt.prompt)

# Build the prompt assuming the prompt template is "Write a summary of the following text: {{text}}"
print(prompt.format(text="Hello, world!"))
```

### Creating prompts using the SDK

You can create a prompt by using the `Opik.create_prompt` method:

```python
opik.configure()
client = opik.Opik()

# Create a new prompt
prompt = client.create_prompt(name="prompt-summary", prompt="Write a summary of the following text: {{text}}")

# Print the prompt text
print(prompt.prompt)

# Build the prompt
print(prompt.format(text="Hello, world!"))
```

If you are not using the SDK, you can create a prompt by using the [REST API](/reference/rest_api/create-prompt-version.api.mdx).

### Managing prompts stored in code

If you already have prompts stored in code, you can use the the `Prompt` object in the SDK to sync these prompts with the library.
This allows you to store the prompt text in your code while also having it versioned and stored in the library:

<Tabs>
<TabItem value="Prompts stored in code" title="Prompts stored in code">
```python
import opik

# Prompt text stored in a variable
PROMPT_TEXT = "Write a summary of the following text: {{text}}"

# Create a prompt
prompt = opik.Prompt(
name="prompt-summary",
prompt=PROMPT_TEXT,
)

# Print the prompt text
print(prompt.prompt)

# Build the prompt
print(prompt.format(text="Hello, world!"))
```
</TabItem>
<TabItem value="Prompts stored in a file" title="Prompts stored in a file">
```python
import opik

# Read the prompt from a file
with open("prompt.txt", "r") as f:
prompt_text = f.read()

prompt = opik.Prompt(name="prompt-summary", prompt=prompt_text)

# Print the prompt text
print(prompt.prompt)

# Build the prompt
print(prompt.format(text="Hello, world!"))
```
</TabItem>

</Tabs>

The prompt will now be stored in the library and versioned:

![Prompt library versions](/img/library/prompt_library_versions.png)

:::tip
The `Prompt` object will create a new prompt in the library if this prompt doesn't already exist, otherwise it will return the existing prompt.

This means you can safely run the above code multiple times without creating duplicate prompts.
:::

## Downloading and using prompts

Once a prompt is created in the library, you can download it in code using the `Opik.get_prompt` method:

```python
opik.configure()
client = opik.Opik()

prompt = client.get_prompt(name="prompt-summary")
```

Once a prompt is downloaded, you can build the message using the `format` method:

```python
# Print the prompt template
print(prompt.prompt)

# Build the prompt
print(prompt.format(text="Hello, world!"))
```
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Create/update dataset items based on dataset item id"
sidebar_label: "Create/update dataset items"
hide_title: true
hide_table_of_contents: true
api: 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
api: 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
sidebar_class_name: "put api-method"
info_path: reference/rest_api/opik-rest-api
custom_edit_url: null
Expand Down Expand Up @@ -211,35 +211,14 @@ Create/update dataset items based on dataset item id
>

</SchemaItem><SchemaItem
collapsible={true}
className={"schemaItem"}
collapsible={false}
name={"data"}
required={false}
schemaName={"object"}
qualifierMessage={undefined}
schema={{"type":"object","title":"JsonNode"}}
>
<details
style={{}}
className={"openapi-markdown__details"}
>
<summary
style={{}}
>
<span
className={"openapi-schema__container"}
>
<strong
className={"openapi-schema__property"}
>
data
</strong><span
className={"openapi-schema__name"}
>
object
</span>
</span>
</summary><div
style={{"marginLeft":"1rem"}}
>

</div>
</details>

</SchemaItem><li>
<div
style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
id: create-project
title: "Create project"
description: "Get project"
description: "Create project"
sidebar_label: "Create project"
hide_title: true
hide_table_of_contents: true
api: eJzNVm1v2zYQ/is3oh/aQLaTrMMAYdiQpkEXNFuDOEExRFlNS2eLNUWy5MmO6vm/D0dJjp2kxT4uHyyGPB6fe+51LUjOg0hvxaW3nzGnIO4SUWDIvXKkrBGpeIcErj0VibAOveST80KkIvcoCS+3px6/1BjojS0aka5Fbg2hIV5K57TK483R58CK1yLkJVaSV3xPeSwYiZEVMgpqHIpU2Gmn23l+mxQGvhGl0nUvFcgrMxebR+DXwkki9GzHy9/Cq7+zLBy8zLLx8CDLxv9k2fgV77wQyWNFm0SQIs1bnXmfPnpFKDYbPvMYnDWhxXJ8eMSffdpOIzWFSESJskAfJS9sS8G+zeRrTESgJj4XVOU0imSHnidG4r2MQql4sZ7KgJeSys1oeTRyXi0l4ahzWBitu9V5sRER+evDw6dg38gCrlrfieS/u+37LkLvbWt2Jye9l41IhCKswjN27ZJ+xpf/wBDkvOf89fHxU+Q3xnmbs9xUI5x2yP+nNmwSUSGVllPH2ci1k1SKVDznOw4B9MsYOrdrUXstUlESuXQ00jaXurSB0p+Ofv5xJJ0Sj/OWY01Dq0Fskl0FIR2NVqvVMLcVEv+OrFOLZ7V8cGoBp9rWhdjcJYL5u3pI8rM+DvuE7Hl4rOYhdJWZ2chbR1J84OpsfA0nl+dP7l2XCHsSoALktfdoSDegDEyRJEhTQKijC4Es5KU0cxzC+QwaW0MplwjSNBBxK2sCWA8zxGIq8wXIqa0JqETWHxJwGmVA8CjzEvjIGnin6Pd6mkLP3lxRWU8jdZHEQaUjh8PMZOZEa7CzqLF1dwCtAmHBeKlUAQqb1xUaikEJ0iPUAQuYNoCKSvTx7vjte8bJy5tzNksZQi9zgpWiMu5HaloXD+EkgASPodaUZGb39UjAFNGAdaQq9RULmLWqQ3x6kMuAgeFVyhRb4hiYtnahzDzKy04jUCmJPWEs9abJqV3ilry2MWSGHaNCqPGBRLbJSxUQJFxe/cCERTOUyXVdYABaWaikMlCg07ZhniJu9lt8uLUxwg1azUuOhELNZshREYOk5pRLWfUADg7GqGcDThYsoHsqkDQ5pgcH8JetYaW0hlh3GzCIBZMdHOZq1rT0X12ADDD5ZvKNfkFTOKsMfeKE/nXCRgZVKS39EK7Z5SpEVQXOZK17g3ovcECEYYv2IeP24D2HK4qyve+xiTkQNz5avwhO5tiGG0LbgBgH8oOVpD482xMIpa11AdOWMoDJZMKfNf8AZOI0hvhWbyZSyERjaz9Y9XsDzv9MJP0VWVNpvfoaI3zngnRqsMAmEyy42T7Gi7cWSC6Qg4qReWy9zTj3tPWol1LXzBy2cdjFT5SfvEHp0cMEnMeZuh/CtYWwUpSXzGEdOKK3DEaye7L2UjOJaZDLiC/XKl9wHLMYFopgWhNZA4UKTssGC1iVaKC0S+RqB/zt4HBO3FxdTHZkO0WeAxjKWMFUgb1nuoDoOpnMaafGvovFB67Q2aDIeu5H+8X9W+WJC7BWOZqwW7NPnMxLhOPh4Z6irknIeDq0fj7qrobRxfnp2Z/js8Hx8HBYUqVZLzeqtmgfDQ+Hh7zFPa6SZuepdiramScfjWvbtv1o7Oy6LOE9jZyWyrD6CHXdtdBbsTyK7Ts20baRbydaTlYWWcdp6cbrzYa3v9ToG5He3iViKb3iEYL/2/QzW+y7C2wYeAtscM1AWFzXcRx4PFtwo21vnOQ5Ovqu7N3OPHD5YXwtEjHtRufKFnzHyxWP1XIlUhGn71gG4/jIe2uhpZnXPF+kotXJf/8CPosbvw==
api: eJzdVm1v2zYQ/is3oh/aQLaSrMMAYdiQpkEXNFuDOEExRF1NS2eLNUWy5Mmu6vm/D0dJjvPSYp+XDxZDHo/PPfe6ESQXQWS34tLbT1hQEB8SUWIovHKkrBGZOPUoCcF1AiIR1qGXfHheikwU8fhyd+rxc4OBXtmyFdlGFNYQGuKldE6rIt5MPwXWvRGhqLCWvOJ7ymPJYIyskYFQ61Bkws563c7z26Qw8I0olW0GqUBemYXYPsC/EU4SoWdTnv8WXvyd5+HgeZ5Pxgd5PvknzycveOeZSB4q2iaCFGne6s37+N4rQrHd8pnH4KwJHZbjwyP+PMVcKRJRoSzRR8kL21Fw32byDSYiUBufC6p2GkWyR88jI/GLjEKZeLaZyYCXkqptujpKnVcrSZj2Dgvppl+dl1sRkb88PHwM9pUs4arznUj+u9u+76LClvsuUoZwgV4kYm59Lanb+vGY7akxBLn4lkNJKh2eONvz0Zn31v/Ra+lc9PL4+LGhN8Z5W7DcTCOc9ob+P0yOSqmynJjORk86SZXIxFORwQGGfhUD83YjGq9FJioil6WptoXUlQ2U/XT084+pdEo8LAwcyRo6DWKb7CsIWZqu1+txYWsk/k2tU8sntbxzagmn2jal2H5IBNN9dVdCzoYoH9J9oOGhmjvmlJnbSFtPUnzg6mxyDSeX54/uXVcI9yRABSga79GQbkEZmCFJkKaE0ESPA1koKmkWOIbzObS2gUquEKRpIeJW1gSwHuaI5UwWS5Az2xBQhaw/JOA0yoDgURYV8JE18EbR780sg4G9haKqmUXqIomjWkcOx7nJzYnWYOdRY+fuAFoFwpLxUqUClLZoajQUYxikR2gCljBrARVV6OPdyeu3jJOXN+dsFgerlwXBWlEV9yM1nYvHcBJAgsfQaEpys/96JGCGaMA6UrX6iiXMO9UhPj0qZMDA8Gplyh1xDExbu1RmEeVlrxGoksSeMJYG0+TMrnBHXtd2csOOUSE0eEci2+SlCggSLq9+YMKiGcoUuikxAK0t1FIZKNFp2zJPETf7LT7c2RjhBq0WFUdCqeZz5KiIQdJwymWsegQHBxPU8xEnC5bQPxVImgKzgwP4yzawVlpDrOotGMSSyQ4OCzVvO/qvLkAGmH4z+dJf0JTOKkMfOaF/nbKRQdVKSz+Ga3a5ClFViXPZ6MGgwQscEGHcob3LuHvwnsIVRdnet9jGHIgb761fBicL7MINoWtvjAOhK3NDeHYnECrb6BJmHWUA0+mUPxv+AcjFaQzxnd5cZJCL1jZ+tB72Rpz/uUiGK7Khynr1NUb43gXp1GiJbS5YcLt7jBevLZBcIgcVI/PYeZtx3tM2oF5J3TBz2MVhHz9RfvoKpUcPU3Ae5+rLGK4thLWiomIOm8ARvWMwkj2QdS81k5gGhYz4Cq2KJccxi2GpCGYNkTVQquC0bLGEdYUGKrtCrnbA3x4O58TN1cV0T7ZX5DmAoYoVTJU4eKYPiL7xyYL2auybWHzgCp0NiqxvRfKguH+rPHEB1qpAE/Zr9omTRYVwPD68p6hvEjKejq1fpP3VkF6cn579OTkbHY8PxxXVmvVyo+qK9tH4cHzIW9zjamn2nno0rT4YBndd/rFk32cJv1DqtFSGX4hoN30XvRWro9jwYx/tWv9uauZ8ZZFNHMduvN5ueftzg74V2e2HRKykVzx08H/bYSiMrXeJLSPqsI2uGQiL64YBPZpGuNd2N06KAh19V/bD3khw+W5yLRIx62fzOo4qwss1z+1yLTIRx/tYCeN8ynsboaVZNHFQEZ1O/vsXnSg82w==
sidebar_class_name: "post api-method"
info_path: reference/rest_api/opik-rest-api
custom_edit_url: null
Expand Down Expand Up @@ -41,7 +41,7 @@ import TabItem from "@theme/TabItem";



Get project
Create project

<Heading
id={"request"}
Expand Down Expand Up @@ -202,11 +202,29 @@ Get project
>
<SchemaItem
collapsible={false}
name={"errors"}
name={"code"}
required={false}
schemaName={"string[]"}
schemaName={"int32"}
qualifierMessage={undefined}
schema={{"type":"array","items":{"type":"string"}}}
schema={{"type":"integer","format":"int32"}}
>

</SchemaItem><SchemaItem
collapsible={false}
name={"message"}
required={false}
schemaName={"string"}
qualifierMessage={undefined}
schema={{"type":"string"}}
>

</SchemaItem><SchemaItem
collapsible={false}
name={"details"}
required={false}
schemaName={"string"}
qualifierMessage={undefined}
schema={{"type":"string"}}
>

</SchemaItem>
Expand All @@ -217,7 +235,7 @@ Get project
value={"Example (from schema)"}
>
<ResponseSamples
responseExample={"{\n \"errors\": [\n \"string\"\n ]\n}"}
responseExample={"{\n \"code\": 0,\n \"message\": \"string\",\n \"details\": \"string\"\n}"}
language={"json"}
>

Expand Down Expand Up @@ -275,11 +293,29 @@ Get project
>
<SchemaItem
collapsible={false}
name={"errors"}
name={"code"}
required={false}
schemaName={"int32"}
qualifierMessage={undefined}
schema={{"type":"integer","format":"int32"}}
>

</SchemaItem><SchemaItem
collapsible={false}
name={"message"}
required={false}
schemaName={"string"}
qualifierMessage={undefined}
schema={{"type":"string"}}
>

</SchemaItem><SchemaItem
collapsible={false}
name={"details"}
required={false}
schemaName={"string[]"}
schemaName={"string"}
qualifierMessage={undefined}
schema={{"type":"array","items":{"type":"string"}}}
schema={{"type":"string"}}
>

</SchemaItem>
Expand All @@ -290,7 +326,7 @@ Get project
value={"Example (from schema)"}
>
<ResponseSamples
responseExample={"{\n \"errors\": [\n \"string\"\n ]\n}"}
responseExample={"{\n \"code\": 0,\n \"message\": \"string\",\n \"details\": \"string\"\n}"}
language={"json"}
>

Expand Down
Loading