# OpenPipe OpenPipe is a flexible playground for comparing and optimizing LLM prompts. It lets you quickly generate, test and compare candidate prompts with realistic sample data. ## Sample Experiments These are simple experiments users have created that show how OpenPipe works. - [Country Capitals](https://app.openpipe.ai/experiments/11111111-1111-1111-1111-111111111111) - [Reddit User Needs](https://app.openpipe.ai/experiments/22222222-2222-2222-2222-222222222222) - [OpenAI Function Calls](https://app.openpipe.ai/experiments/2ebbdcb3-ed51-456e-87dc-91f72eaf3e2b) - [Activity Classification](https://app.openpipe.ai/experiments/3950940f-ab6b-4b74-841d-7e9dbc4e4ff8) demo You can use our hosted version of OpenPipe at [https://openpipe.ai]. You can also clone this repository and [run it locally](#running-locally). ## High-Level Features **Configure Multiple Prompts** Set up multiple prompt configurations and compare their output side-by-side. Each configuration can be configured independently. **Visualize Responses** Inspect prompt completions side-by-side. **Test Many Inputs** OpenPipe lets you _template_ a prompt. Use the templating feature to run the prompts you're testing against many potential inputs for broader coverage of your problem space than you'd get with manual testing. **🪄 Auto-generate Test Scenarios** OpenPipe includes a tool to generate new test scenarios based on your existing prompts and scenarios. Just click "Autogenerate Scenario" to try it out! **Prompt Validation and Typeahead** We use OpenAI's OpenAPI spec to automatically provide typeahead and validate prompts. typeahead **Function Call Support** Natively supports [OpenAI function calls](https://openai.com/blog/function-calling-and-other-api-updates) on supported models. function calls ## Supported Models OpenPipe currently supports GPT-3.5 and GPT-4. Wider model support is planned. ## Running Locally 1. Install [Postgresql](https://www.postgresql.org/download/). 2. Install [NodeJS 20](https://nodejs.org/en/download/current) (earlier versions will very likely work but aren't tested). 3. Install `pnpm`: `npm i -g pnpm` 4. Clone this repository: `git clone https://github.com/openpipe/openpipe` 5. Install the dependencies: `cd openpipe && pnpm install` 6. Create a `.env` file (`cp .env.example .env`) and enter your `OPENAI_API_KEY`. 7. Update `DATABASE_URL` if necessary to point to your Postgres instance and run `pnpm prisma db push` to create the database. 8. Create a [GitHub OAuth App](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) and update the `GITHUB_CLIENT_ID` and `GITHUB_CLIENT_SECRET` values. (Note: a PR to make auth optional when running locally would be a great contribution!) 9. Start the app: `pnpm dev`. 10. Navigate to [http://localhost:3000](http://localhost:3000)