Skip to main content


PromptTools

:wrench: Test and experiment with prompts, LLMs, and vector databases. :hammer:

Total Downloads

Welcome to prompttools created by Hegel AI! This repo offers a set of open-source, self-hostable tools for experimenting with, testing, and evaluating LLMs, vector databases, and prompts. The core idea is to enable developers to evaluate using familiar interfaces like code, notebooks, and a local playground.

In just a few lines of code, you can test your prompts and parameters across different models (whether you are using OpenAI, Anthropic, or LLaMA models). You can even evaluate the retrieval accuracy of vector databases.

from prompttools.experiment import OpenAIChatExperiment

messages = [
    [{"role": "user", "content": "Tell me a joke."},],
    [{"role": "user", "content": "Is 17077 a prime number?"},],
]

models = ["gpt-3.5-turbo", "gpt-4"]
temperatures = [0.0]
openai_experiment = OpenAIChatExperiment(models, messages, temperature=temperatures)
openai_experiment.run()
openai_experiment.visualize()

image

To stay in touch with us about issues and future updates, join the Discord.

Quickstart

To install prompttools, you can use pip:

pip install prompttools

You can run a simple example of a prompttools locally with the following

git clone https://github.com/hegelai/prompttools.git
cd prompttools && jupyter notebook examples/notebooks/OpenAIChatExperiment.ipynb

You can also run the notebook in Google Colab

Playground

If you want to interact with prompttools using our playground interface, you can launch it with the following commands.

First, install prompttools:

pip install prompttools

Then, clone the git repo and launch the streamlit app:

git clone https://github.com/hegelai/prompttools.git
cd prompttools && streamlit run prompttools/playground/playground.py

You can also access a hosted version of the playground on the Streamlit Community Cloud.

Note: The hosted version does not support LlamaCpp

Documentation

Our documentation website contains the full API reference and more description of individual components. Check it out!

Supported Integrations

Here is a list of APIs that we support with our experiments:

LLMs

  • OpenAI (Completion, ChatCompletion, Fine-tuned models) - Supported
  • LLaMA.Cpp (LLaMA 1, LLaMA 2) - Supported
  • HuggingFace (Hub API, Inference Endpoints) - Supported
  • Anthropic - Supported
  • Mistral AI - Supported
  • Google Gemini - Supported
  • Google PaLM (legacy) - Supported
  • Google Vertex AI - Supported
  • Azure OpenAI Service - Supported
  • Replicate - Supported
  • Ollama - In Progress

Vector Databases and Data Utility

  • Chroma - Supported
  • Weaviate - Supported
  • Qdrant - Supported
  • LanceDB - Supported
  • Milvus - Exploratory
  • Pinecone - Supported
  • Epsilla - In Progress

Frameworks

  • LangChain - Supported
  • MindsDB - Supported
  • LlamaIndex - Exploratory

Computer Vision

  • Stable Diffusion - Supported
  • Replicate's hosted Stable Diffusion - Supported

If you have any API that you'd like to see being supported soon, please open an issue or a PR to add it. Feel free to discuss in our Discord channel as well.

Frequently Asked Questions (FAQs)

  1. Will this library forward my LLM calls to a server before sending it to OpenAI, Anthropic, and etc.?

    • No, the source code will be executed on your machine. Any call to LLM APIs will be directly executed from your machine without any forwarding.
  2. Does prompttools store my API keys or LLM inputs and outputs to a server?

    • No, all of those data stay on your local machine. We do not collect any PII (personally identifiable information).
  3. How do I persist my results?

    • To persist the results of your tests and experiments, you can export your Experiment with the methods to_csv, to_json, to_lora_json, or to_mongo_db. We are building more persistence features and we will be happy to further discuss your use cases, pain points, and what export options may be useful for you.

Sentry

Usage Tracking

Since we are changing our API rapidly, there are some errors caused by our negligence or out of date documentation. To improve user experience, we collect data from normal package usage that helps us understand the errors that are raised. This data is collected and sent to Sentry, a third-party error tracking service, commonly used in open-source softwares. It only logs this library's own actions.

You can easily opt-out by defining an environment variable called SENTRY_OPT_OUT.

Contributing

We welcome PRs and suggestions! Don't hesitate to open a PR/issue or to reach out to us via email. Please have a look at our contribution guide and "Help Wanted" issues to get started!

Usage and Feedback

We will be delighted to work with early adopters to shape our designs. Please reach out to us via email if you're interested in using this tooling for your project or have any feedback.

License

We will be gradually releasing more components to the open-source community. The current license can be found in the LICENSE file. If there is any concern, please contact us and we will be happy to work with you.

Metadata

Release files for prompttools 0.0.46

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for prompttools 0.0.46
File Size Uploaded
prompttools-0.0.46.tar.gz 80.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for prompttools 0.0.46
File Interpreter ABI Platform
prompttools-0.0.46-py3-none-any.whl Python 3 none any Details

Total release size: 201.0 kB

Release files / prompttools-0.0.46.tar.gz

Download URL prompttools-0.0.46.tar.gz
Size 80.3 kB
Tags Source
SHA-256 checksum
How to use checksums
78673db78c46b3ebaf60a92cec605b4370611d441a64c93d8fda98abd22f5d08
BLAKE2b-256 checksum
How to use checksums
42323f38d4ace2a5f9c87d6af5e296a791cc5c7240ced5f6e5bc61c589ea1311
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.4

Release files / prompttools-0.0.46-py3-none-any.whl

Download URL prompttools-0.0.46-py3-none-any.whl
Size 120.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d1a4538fe6d52b9408edf2a9266379e1176125b65256c6dd5be4d5b1544483f
BLAKE2b-256 checksum
How to use checksums
3608539485cd42bb79d72c7ca90940916b75eec8619c597b117b14c2d3a86600
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.0.46 This release

2 release files

0.0.45

2 release files

0.0.44

2 release files

0.0.38

2 release files

0.0.37

2 release files

0.0.34

2 release files

0.0.33

2 release files

0.0.19

2 release files

0.0.18

2 release files

0.0.17

2 release files

0.0.16

2 release files

0.0.15

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page