To get started, create an account by clicking “Log in” on PromptLayer. Once logged in, click the button to create an API key and save this in a secure location (Guide to Using Env Vars).
In the Python file where you use OpenAI APIs, add the following. This allows us to keep track of your requests without needing any other code changes.
Copy
Ask AI
from promptlayer import PromptLayerpromptlayer_client = PromptLayer()OpenAI = promptlayer_client.openai.OpenAIclient = OpenAI()
You can then use openai as you would if you had imported it directly.
Your OpenAI API Key is never sent to our servers. All OpenAI requests are made locally from your machine, PromptLayer just logs the request.
There is only one difference… PromptLayer allows you to add tags through the pl_tags argument. This allows you to track and group requests in the dashboard.
Tags are not required but we recommend them!
Copy
Ask AI
completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are an AI."}, {"role": "user", "content": "Compose a poem please."} ], pl_tags=["getting-started"])
After making your first few requests, you should be able to see them in the PromptLayer dashboard!
Here is a complete code snippet:
Copy
Ask AI
from promptlayer import PromptLayerpromptlayer_client = PromptLayer()# Swap out 'from openai import OpenAI'OpenAI = promptlayer_client.openai.OpenAIclient = OpenAI()completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are an AI."}, {"role": "user", "content": "Compose a poem please."} ], pl_tags=["getting-started"])print(completion.choices[0].message)
PromptLayer supports asynchronous operations, ideal for managing concurrent tasks in non-blocking environments like web servers, microservices, or Jupyter notebooks.
To use asynchronous non-blocking methods, initialize AsyncPromptLayer as shown:
Copy
Ask AI
from promptlayer import AsyncPromptLayer# Initialize an asynchronous client with your API keyasync_promptlayer_client = AsyncPromptLayer(api_key="pl_****")
The following table provides an overview of the methods currently available in both synchronous and asynchronous versions of the PromptLayer client:
Method
Description
Synchronous Version
Asynchronous Version
templates.get()
Retrieves a template by name.
promptlayer_client.templates.get()
async_promptlayer_client.templates.get()
templates.all()
Retrieves all templates.
promptlayer_client.templates.all()
async_promptlayer_client.templates.all()
run()
Executes a prompt template.
promptlayer_client.run()
async_promptlayer_client.run()
run_workflow()
Executes an Agent.
promptlayer_client.run_workflow()
async_promptlayer_client.run_workflow()
track.metadata()
Tracks metadata.
promptlayer_client.track.metadata()
async_promptlayer_client.track.metadata()
track.group()
Tracks a group.
promptlayer_client.track.group()
async_promptlayer_client.track.group()
track.prompt()
Tracks a prompt.
promptlayer_client.track.prompt()
async_promptlayer_client.track.prompt()
track.score()
Tracks a score.
promptlayer_client.track.score()
async_promptlayer_client.track.score()
group.create()
Creates a new group.
promptlayer_client.group.create()
async_promptlayer_client.group.create()
log_request()
Logs a request.
promptlayer_client.log_request()
async_promptlayer_client.log_request()
Note: All asynchronous methods require an active event loop. Use them within an async function and run the function using asyncio.run() or another method suitable for managing event loops (e.g., await in Jupyter notebooks).
Want to say hi 👋, submit a feature request, or report a bug? ✉️ Contact us