Skip to main content

Python client library for the OpenPipe service

Project description

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

Tagging

OpenPipe has a concept of "tagging." This is very useful for grouping a certain set of completions together. When you're using a dataset for fine-tuning, you can select all the prompts that match a certain set of tags. Here's how you can use the tagging feature:

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "system", "content": "count to 10"}],
    openpipe={
        "tags": {"prompt_id": "counting"},
        "log_request": True, # Enable/disable data collection. Defaults to 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-3.5-turbo")\
    .with_tags(chain_name="classify", any_key="some")

# To provide the openpipe key explicitly
# llm = ChatOpenAI(model="gpt-3.5-turbo", 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"}
)

Project details


Release history Release notifications | RSS feed

This version

4.6.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openpipe-4.6.0.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openpipe-4.6.0-py3-none-any.whl (135.4 kB view details)

Uploaded Python 3

File details

Details for the file openpipe-4.6.0.tar.gz.

File metadata

  • Download URL: openpipe-4.6.0.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Darwin/23.3.0

File hashes

Hashes for openpipe-4.6.0.tar.gz
Algorithm Hash digest
SHA256 388fcdc8967d3e16d493df385c68444d7a47e60696454dd7115f8f971055d9e5
MD5 35e5597f4c1274d4ce9a3c241f1964cc
BLAKE2b-256 b7c7dbbdde9068befe1fbcf06a3522cce0e5bb9024a6e8cbd7e285ee96e04b01

See more details on using hashes here.

File details

Details for the file openpipe-4.6.0-py3-none-any.whl.

File metadata

  • Download URL: openpipe-4.6.0-py3-none-any.whl
  • Upload date:
  • Size: 135.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Darwin/23.3.0

File hashes

Hashes for openpipe-4.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f0c1161aa0e8f698b9bc1bfe26fd66da042fd149799a1fb23b0fa9a11f8a14b
MD5 af3175a36ec2bd23e3e1981a4be535de
BLAKE2b-256 42a9c93e7b3078ca52d679a1b3edfffacc610489a28ae11bd35b4e47df7fd02d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page