Portkey provides a robust and secure gateway to facilitate the integration of various Large Language Models (LLMs) into your applications, including Lepton AI APIs.
With Portkey, you can take advantage of features like fast AI gateway access, observability, prompt management, and more, all while ensuring the secure management of your LLM API keys through a virtual key system.
Portkey SDK Integration with Lepton AI Models
Portkey provides a consistent API to interact with models from various providers. To integrate Lepton AI with Portkey:
1. Install the Portkey SDK
Add the Portkey SDK to your application to interact with Lepton AI’s API through Portkey’s gateway.
npm install --save portkey-ai
npm install --save portkey-ai
2. Initialize Portkey with the Virtual Key
To use Lepton AI with Portkey, get your API key from Lepton AI, then add it to Portkey to create the virtual key.
import Portkey from 'portkey-ai'
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"]
virtualKey: "VIRTUAL_KEY" // Your Lepton AI Virtual Key
})
import Portkey from 'portkey-ai'
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"]
virtualKey: "VIRTUAL_KEY" // Your Lepton AI Virtual Key
})
from portkey_ai import Portkey
portkey = Portkey(
api_key="PORTKEY_API_KEY", # Replace with your Portkey API key
virtual_key="VIRTUAL_KEY" # Replace with your virtual key for Lepton
)
3. Invoke Chat Completions with Lepton AI
Use the Portkey instance to send requests to Lepton AI. You can also override the virtual key directly in the API call if needed.
const chatCompletion = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'llama-3-8b-sft-v1',
});
console.log(chatCompletion.choices);
const chatCompletion = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'llama-3-8b-sft-v1',
});
console.log(chatCompletion.choices);
completion = portkey.chat.completions.create(
messages= [{ "role": 'user', "content": 'Say this is a test' }],
model= 'llama-3-8b-sft-v1'
)
print(completion)
curl --location 'https://api.portkey.ai/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H 'x-portkey-api-key: PORTKEY_API_KEY' \
-H 'x-portkey-virtual-key: VIRTUAL_KEY' \
--data '{
"model": "llama-3-8b-sft-v1",
"messages": [
{
"role": "user",
"content": "Say this is a test"
}
]
}'
Speech-to-Text (Transcription)
Lepton AI provides speech-to-text capabilities through Portkey’s unified API:
import fs from 'fs';
const transcription = await portkey.audio.transcriptions.create({
file: fs.createReadStream('audio.mp3'),
model: 'whisper-large-v3',
});
console.log(transcription.text);
import fs from 'fs';
const transcription = await portkey.audio.transcriptions.create({
file: fs.createReadStream('audio.mp3'),
model: 'whisper-large-v3',
});
console.log(transcription.text);
with open("audio.mp3", "rb") as audio_file:
transcription = portkey.audio.transcriptions.create(
file=audio_file,
model="whisper-large-v3"
)
print(transcription.text)
Advanced Features
Streaming Responses
Lepton AI supports streaming responses to provide real-time generation:
const stream = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Write a story about a robot' }],
model: 'llama-3-8b-sft-v1',
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
const stream = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Write a story about a robot' }],
model: 'llama-3-8b-sft-v1',
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
stream = portkey.chat.completions.create(
messages=[{"role": "user", "content": "Write a story about a robot"}],
model="llama-3-8b-sft-v1",
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Managing Lepton AI Prompts
You can manage all prompts to Lepton AI in the Prompt Library. All the current models of Lepton AI are supported and you can easily start testing different prompts.
Once you’re ready with your prompt, you can use the portkey.prompts.completions.create
interface to use the prompt in your application.
Next Steps
The complete list of features supported in the SDK are available on the link below.
You’ll find more information in the relevant sections:
- Add metadata to your requests
- Add gateway configs to your Lepton AI requests
- Tracing Lepton AI requests
- Setup a fallback from OpenAI to Lepton AI APIs