Skip to content
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
13 changes: 13 additions & 0 deletions examples/tutorial/independent.pdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
description: Independent example -- hello * ( ' in French' + ' en Espanol') * Goodbye!
text:
- hello
- context: independent
text:
- text:
- " in French!"
- model: ollama_chat/granite3.2:2b
- text:
- " en Espanol!"
- model: ollama_chat/granite3.2:2b
- "Goodbye!"
- model: ollama_chat/granite3.2:2b
9 changes: 9 additions & 0 deletions examples/tutorial/independent_docs.pdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
defs:
doc1: "Hello world!"
doc2: "Goodbye world!"
text:
- context: independent
text:
- ${ doc1 }
- ${ doc2 }
- model: ollama_chat/granite3.2:2b
16 changes: 16 additions & 0 deletions examples/tutorial/independent_for.pdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
description: Independent For loop example
defs:
list:
data: ["in French", "en Espanol"]
text:
- "Hello "
- for:
elem: ${list}
repeat:
text:
- ${ elem }
- model: ollama_chat/granite3.2:2b
context: independent
- "Goodbye!"
- model: ollama_chat/granite3.2:2b

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo1.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"kind": "text", "pdl__id": "text", "description": "Simple LLM interaction", "defs": {}, "text": [{"kind": "data", "pdl__id": "text.0", "defs": {}, "data": {"pdl__expr": "write a hello world example, and explain to me how to run it", "pdl__result": "write a hello world example, and explain to me how to run it"}, "pdl__result": "write a hello world example, and explain to me how to run it", "pdl__timing": {"start_nanos": 1742523918021192000, "end_nanos": 1742523918022233000, "timezone": "EDT"}, "pdl__is_leaf": true}, {"kind": "model", "pdl__id": "text.1.model", "context": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}], "defs": {}, "platform": "litellm", "model": {"pdl__expr": "ollama_chat/granite3.2:2b", "pdl__result": "ollama_chat/granite3.2:2b"}, "input": {"kind": "data", "pdl__id": "text.1.model", "defs": {}, "data": {"pdl__expr": "${ pdl_context }", "pdl__result": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}]}, "pdl__result": "[{\"role\": \"user\", \"content\": \"write a hello world example, and explain to me how to run it\", \"defsite\": \"text.0\"}]", "pdl__timing": {"start_nanos": 1742523918129394000, "end_nanos": 1742523918130174000, "timezone": "EDT"}, "pdl__is_leaf": true}, "parameters": {"pdl__expr": null}, "pdl__usage": {"completion_tokens": 489, "prompt_tokens": 24}, "pdl__model_input": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}], "pdl__result": "Sure, I'll provide an example of a \"Hello, World!\" program in two popular programming languages: Python and JavaScript (using Node.js).\n\n**Python:**\n\n```python\n# This is a simple Python script to print \"Hello, World!\"\n\nprint(\"Hello, World!\")\n```\n\nTo run this Python code:\n\n1. Open your preferred text editor or an Integrated Development Environment (IDE) like Visual Studio Code, PyCharm, or Jupyter Notebook.\n2. Copy and paste the above code snippet into a new file with a `.py` extension, e.g., `hello_world.py`.\n3. Save the file in a directory where Python is installed on your system (usually it's located at `C:\\Python39\\` for Python 3.9 or similar).\n4. Open a terminal/command prompt and navigate to the directory containing your `.py` file using the `cd` command, e.g., `cd path/to/your/directory`.\n5. Run the script by typing `python hello_world.py` and pressing Enter. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\n**JavaScript (Node.js):**\n\n```javascript\n// This is a simple JavaScript script to print \"Hello, World!\" using Node.js\n\nconsole.log(\"Hello, World!\");\n```\n\nTo run this JavaScript code on a system that has Node.js installed:\n\n1. Install Node.js from https://nodejs.org/ if you haven't already (it's recommended for running JavaScript on the command line).\n2. Open your terminal or command prompt.\n3. Navigate to the directory where you want to run this script using `cd` command, e.g., `cd path/to/your/directory`.\n4. Create a new file named `hello_world.js` by typing `touch hello_world.js`, then open it with your text editor:\n ```\n nano hello_world.js\n ```\n5. Paste the above JavaScript code into this file, save it (press `Ctrl+X`, then `Y` to confirm, and finally `Enter`).\n6. To run the script from the command line, type `node hello_world.js`. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\nBoth Python and JavaScript scripts achieve the same output \u2013 printing \"Hello, World!\" \u2013 but they're written in different languages and use distinct methods to execute them on a computer system.", "pdl__timing": {"start_nanos": 1742523918129200000, "end_nanos": 1742523958045772000, "timezone": "EDT"}, "pdl__is_leaf": true}], "pdl__result": "write a hello world example, and explain to me how to run itSure, I'll provide an example of a \"Hello, World!\" program in two popular programming languages: Python and JavaScript (using Node.js).\n\n**Python:**\n\n```python\n# This is a simple Python script to print \"Hello, World!\"\n\nprint(\"Hello, World!\")\n```\n\nTo run this Python code:\n\n1. Open your preferred text editor or an Integrated Development Environment (IDE) like Visual Studio Code, PyCharm, or Jupyter Notebook.\n2. Copy and paste the above code snippet into a new file with a `.py` extension, e.g., `hello_world.py`.\n3. Save the file in a directory where Python is installed on your system (usually it's located at `C:\\Python39\\` for Python 3.9 or similar).\n4. Open a terminal/command prompt and navigate to the directory containing your `.py` file using the `cd` command, e.g., `cd path/to/your/directory`.\n5. Run the script by typing `python hello_world.py` and pressing Enter. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\n**JavaScript (Node.js):**\n\n```javascript\n// This is a simple JavaScript script to print \"Hello, World!\" using Node.js\n\nconsole.log(\"Hello, World!\");\n```\n\nTo run this JavaScript code on a system that has Node.js installed:\n\n1. Install Node.js from https://nodejs.org/ if you haven't already (it's recommended for running JavaScript on the command line).\n2. Open your terminal or command prompt.\n3. Navigate to the directory where you want to run this script using `cd` command, e.g., `cd path/to/your/directory`.\n4. Create a new file named `hello_world.js` by typing `touch hello_world.js`, then open it with your text editor:\n ```\n nano hello_world.js\n ```\n5. Paste the above JavaScript code into this file, save it (press `Ctrl+X`, then `Y` to confirm, and finally `Enter`).\n6. To run the script from the command line, type `node hello_world.js`. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\nBoth Python and JavaScript scripts achieve the same output \u2013 printing \"Hello, World!\" \u2013 but they're written in different languages and use distinct methods to execute them on a computer system.", "pdl__timing": {"start_nanos": 1742523918021087000, "end_nanos": 1742523958045857000, "timezone": "EDT"}, "pdl__is_leaf": false}
{"kind": "text", "pdl__id": "text", "description": "Simple LLM interaction", "defs": {}, "text": [{"kind": "data", "pdl__id": "text.0", "defs": {}, "data": {"pdl__expr": "write a hello world example, and explain to me how to run it", "pdl__result": "write a hello world example, and explain to me how to run it"}, "pdl__result": "write a hello world example, and explain to me how to run it", "pdl__timing": {"start_nanos": 1742523918021192000, "end_nanos": 1742523918022233000, "timezone": "EDT"}, "pdl__is_leaf": true}, {"kind": "model", "pdl__id": "text.1.model", "pdl__context": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}], "defs": {}, "platform": "litellm", "model": {"pdl__expr": "ollama_chat/granite3.2:2b", "pdl__result": "ollama_chat/granite3.2:2b"}, "input": {"kind": "data", "pdl__id": "text.1.model", "defs": {}, "data": {"pdl__expr": "${ pdl_context }", "pdl__result": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}]}, "pdl__result": "[{\"role\": \"user\", \"content\": \"write a hello world example, and explain to me how to run it\", \"defsite\": \"text.0\"}]", "pdl__timing": {"start_nanos": 1742523918129394000, "end_nanos": 1742523918130174000, "timezone": "EDT"}, "pdl__is_leaf": true}, "parameters": {"pdl__expr": null}, "pdl__usage": {"completion_tokens": 489, "prompt_tokens": 24}, "pdl__model_input": [{"role": "user", "content": "write a hello world example, and explain to me how to run it", "defsite": "text.0"}], "pdl__result": "Sure, I'll provide an example of a \"Hello, World!\" program in two popular programming languages: Python and JavaScript (using Node.js).\n\n**Python:**\n\n```python\n# This is a simple Python script to print \"Hello, World!\"\n\nprint(\"Hello, World!\")\n```\n\nTo run this Python code:\n\n1. Open your preferred text editor or an Integrated Development Environment (IDE) like Visual Studio Code, PyCharm, or Jupyter Notebook.\n2. Copy and paste the above code snippet into a new file with a `.py` extension, e.g., `hello_world.py`.\n3. Save the file in a directory where Python is installed on your system (usually it's located at `C:\\Python39\\` for Python 3.9 or similar).\n4. Open a terminal/command prompt and navigate to the directory containing your `.py` file using the `cd` command, e.g., `cd path/to/your/directory`.\n5. Run the script by typing `python hello_world.py` and pressing Enter. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\n**JavaScript (Node.js):**\n\n```javascript\n// This is a simple JavaScript script to print \"Hello, World!\" using Node.js\n\nconsole.log(\"Hello, World!\");\n```\n\nTo run this JavaScript code on a system that has Node.js installed:\n\n1. Install Node.js from https://nodejs.org/ if you haven't already (it's recommended for running JavaScript on the command line).\n2. Open your terminal or command prompt.\n3. Navigate to the directory where you want to run this script using `cd` command, e.g., `cd path/to/your/directory`.\n4. Create a new file named `hello_world.js` by typing `touch hello_world.js`, then open it with your text editor:\n ```\n nano hello_world.js\n ```\n5. Paste the above JavaScript code into this file, save it (press `Ctrl+X`, then `Y` to confirm, and finally `Enter`).\n6. To run the script from the command line, type `node hello_world.js`. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\nBoth Python and JavaScript scripts achieve the same output \u2013 printing \"Hello, World!\" \u2013 but they're written in different languages and use distinct methods to execute them on a computer system.", "pdl__timing": {"start_nanos": 1742523918129200000, "end_nanos": 1742523958045772000, "timezone": "EDT"}, "pdl__is_leaf": true}], "pdl__result": "write a hello world example, and explain to me how to run itSure, I'll provide an example of a \"Hello, World!\" program in two popular programming languages: Python and JavaScript (using Node.js).\n\n**Python:**\n\n```python\n# This is a simple Python script to print \"Hello, World!\"\n\nprint(\"Hello, World!\")\n```\n\nTo run this Python code:\n\n1. Open your preferred text editor or an Integrated Development Environment (IDE) like Visual Studio Code, PyCharm, or Jupyter Notebook.\n2. Copy and paste the above code snippet into a new file with a `.py` extension, e.g., `hello_world.py`.\n3. Save the file in a directory where Python is installed on your system (usually it's located at `C:\\Python39\\` for Python 3.9 or similar).\n4. Open a terminal/command prompt and navigate to the directory containing your `.py` file using the `cd` command, e.g., `cd path/to/your/directory`.\n5. Run the script by typing `python hello_world.py` and pressing Enter. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\n**JavaScript (Node.js):**\n\n```javascript\n// This is a simple JavaScript script to print \"Hello, World!\" using Node.js\n\nconsole.log(\"Hello, World!\");\n```\n\nTo run this JavaScript code on a system that has Node.js installed:\n\n1. Install Node.js from https://nodejs.org/ if you haven't already (it's recommended for running JavaScript on the command line).\n2. Open your terminal or command prompt.\n3. Navigate to the directory where you want to run this script using `cd` command, e.g., `cd path/to/your/directory`.\n4. Create a new file named `hello_world.js` by typing `touch hello_world.js`, then open it with your text editor:\n ```\n nano hello_world.js\n ```\n5. Paste the above JavaScript code into this file, save it (press `Ctrl+X`, then `Y` to confirm, and finally `Enter`).\n6. To run the script from the command line, type `node hello_world.js`. You should see \"Hello, World!\" printed in the terminal or command prompt.\n\nBoth Python and JavaScript scripts achieve the same output \u2013 printing \"Hello, World!\" \u2013 but they're written in different languages and use distinct methods to execute them on a computer system.", "pdl__timing": {"start_nanos": 1742523918021087000, "end_nanos": 1742523958045857000, "timezone": "EDT"}, "pdl__is_leaf": false}
2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo2.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo3.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo4.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo7.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo8.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pdl-live-react/src/demos/demo9.json

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions pdl-live-react/src/helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ export type WithTiming = Required<

export type PdlBlockWithTiming = NonScalarPdlBlock & { pdl__timing: WithTiming }

export type PdlBlockWithContext = Omit<PdlBlockWithTiming, "context"> & {
context: { role: string; content: string; defsite?: string }[]
export type PdlBlockWithContext = Omit<PdlBlockWithTiming, "pdl__context"> & {
pdl__context: { role: string; content: string; defsite?: string }[]
}

/** Does the given block have a `pdl__result` field? */
Expand Down Expand Up @@ -206,8 +206,8 @@ export function hasContextInformation(
): block is PdlBlockWithContext {
return (
hasTimingInformation(block) &&
block.context !== null &&
Array.isArray(block.context)
block.pdl__context !== null &&
Array.isArray(block.pdl__context)
)
}

Expand Down
Loading