Getting Started
Delphyne is a programming framework for building reliable and modular LLM applications. It is based on a new paradigm named oracular programming, where high-level problem-solving strategies are expressed as nondeterministic programs whose choice points are annotated with examples and resolved by LLMs. Delphyne combines three languages:
- A strategy language embedded in Python that allows writing nondeterministic programs that can be reified into (modular) search trees.
- A policy language for specifying ways to navigate such trees (with LLM guidance) by composing reusable search primitives.
- A demonstration language for describing successful and unsuccessful search scenarios to be used as training or prompting examples. A dedicated language server allows writing demonstrations interactively and keeping them synchronized with evolving strategies.
Installation
First, download the Delphyne repository and enter it:
git clone git@github.com:jonathan-laurent/delphyne.git
cd delphyne
git checkout v0.7.0 # latest stable version
Then, to install the Delphyne library in your current Python environment:
pip install -e .
Note that Python 3.12 (or more recent) is required. Once this is done, it should be possible to run import delphyne
inside a Python interpreter. Next, you should build the Delphyne vscode extension. For this, assuming you have Node.js installed (version 22 or later), run:
cd vscode-ui
npm install
npx vsce package
The last command should create a delphyne-xxx.vsix
extensions archive, which can be installed in vscode using the Extensions: Install from VSIX
command (use Ctrl+Shift+P
to search for this command).
Testing your installation
To test your installation, open VSCode and set the examples/find_invariants
folder as your workspace root. Click on the Delphyne logo on the Activity Bar to start the Delphyne extension, and open the demonstration file abduct_and_branch.demo.yaml
. Then, open the command palette (Ctrl+Shift+P
) and run the command Delphyne: Evaluate All Demonstrations in File
. Diagnostics should then appear to indicate that all tests passed (but no warning or error). Note that adding new demonstrations requires installing why3py
, as explained in the example's README.