Skip to main content

OpenPipe Python Client

This client allows you automatically report your OpenAI calls to OpenPipe.

Installation

pip install openpipe

Usage

  1. Create a project at https://app.openpipe.ai
  2. Find your project's API key at https://app.openpipe.ai/settings
  3. Configure the OpenPipe client as shown below.
from openpipe import OpenAI
import os

client = OpenAI(
    # defaults to os.environ.get("OPENAI_API_KEY")
    api_key="My API Key",
    openpipe={
        # Set the OpenPipe API key you got in step (2) above.
        # If you have the `OPENPIPE_API_KEY` environment variable set we'll read from it by default
        "api_key": "My OpenPipe API Key",
    }
)

You can now use your new OpenAI client, which functions identically to the generic OpenAI client while also reporting calls to your OpenPipe instance.

Special Features

Metadata Tagging

OpenPipe follows OpenAI’s concept of metadata tagging for requests. This is very useful for grouping a certain set of completions together. These tags will help you find all the input/output pairs associated with a certain prompt and fine-tune a model to replace it. Here's how you can use the tagging feature:

completion = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "system", "content": "count to 10"}],
    metadata={"prompt_id": "counting"},
    store=True,
)

Should I Wait to Enable Logging?

We recommend keeping request logging turned on from the beginning. If you change your prompt you can just set a new prompt_id tag so you can select just the latest version when you're ready to create a dataset.

Usage with langchain

Assuming you have created a project and have the openpipe key.

from openpipe.langchain_llm import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema.runnable import RunnableSequence

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "Classify user query into positive, negative or neutral.",
        ),
        ("human", "{query}"),
    ]
)
llm = ChatOpenAI(model="gpt-4o")
    .with_tags(chain_name="classify", any_key="some")

# To provide the openpipe key explicitly
# llm = ChatOpenAI(model="gpt-4o", openpipe_kwargs={"api_key": "My OpenPipe API Key"})\
#     .with_tags(chain_name="classify", any_key="some")

chain: RunnableSequence = prompt | llm
res = chain.invoke(
    {"query": "this is good"}
)

Release files for openpipe 5.0.0

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

Source distribution (sdist)

Source distribution for openpipe 5.0.0
File Size Uploaded
openpipe-5.0.0.tar.gz 98.9 kB Details

Built distribution (wheel)

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

Total release size: 538.9 kB

Release files / openpipe-5.0.0.tar.gz

Download URL openpipe-5.0.0.tar.gz
Size 98.9 kB
Tags Source
SHA-256 checksum
How to use checksums
040acc526fece42ba505fcedd8cd584f42482c9bd01f16b2538c9ea9c82882f4
BLAKE2b-256 checksum
How to use checksums
7c34b487bc0ff60d3ed634e6f7bc34b5138f04e6ae319cc6578001822df93901
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.11.0 Darwin/24.5.0

Release files / openpipe-5.0.0-py3-none-any.whl

Download URL openpipe-5.0.0-py3-none-any.whl
Size 440.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c04af7afb4d9bcd52e1250757dd93d0e0ed19c9ff4b524f131dd94aadf4c1a9b
BLAKE2b-256 checksum
How to use checksums
7a5e516010c25a32884a87e1f8303a292f3981fa382cc7570a9ed88fb28681d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.11.0 Darwin/24.5.0

Release history Release notifications | RSS feed

This release

5.0.0 This release

2 release files

4.50.0

2 release files

4.49.0

2 release files

4.48.0

2 release files

4.47.0

2 release files

4.43.0

2 release files

4.42.0

2 release files

4.41.0

2 release files

4.40.0

2 release files

4.39.0

2 release files

4.36.0

2 release files

4.35.0

2 release files

4.32.0

2 release files

4.31.0

2 release files

4.30.0

2 release files

4.27.0

2 release files

4.25.0

2 release files

4.24.0

2 release files

4.23.0

2 release files

4.22.0

2 release files

4.19.0

2 release files

4.16.0

2 release files

4.15.0

2 release files

4.14.0

2 release files

4.13.0

2 release files

4.12.0

2 release files

4.10.0

2 release files

4.9.0

2 release files

4.8.0

2 release files

4.7.0

2 release files

4.6.0

2 release files

4.4.2

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.4.0

2 release files

3.3.6

2 release files

3.3.5

2 release files

3.3.4

2 release files

3.3.3

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

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