This project has been archived by its maintainers, and is no longer receiving any updates.
OpenPipe Python Client
This client allows you automatically report your OpenAI calls to OpenPipe.
Installation
pip install openpipe
Usage
- Create a project at https://app.openpipe.ai
- Find your project's API key at https://app.openpipe.ai/settings
- 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"}
)
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openpipe-5.0.0.tar.gz | 98.9 kB | Without provenance | Details for openpipe-5.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openpipe-5.0.0-py3-none-any.whl | Python 3 | none | any | Details for openpipe-5.0.0-py3-none-any.whl |
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
|
Security for openpipe 5.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.