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
- 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
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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for openpipe-4.26.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3f62e41a7add403d8889e0757b16b704f2833f120448d81427f909b8897c5f2 |
|
MD5 | 1377a272521ef863f7718ff1386f3b1a |
|
BLAKE2b-256 | 8080e2e5add2e78c40f892e267c156dc9f1a42c363b6809e6d76cfe4e758c14b |