Portkey provides a robust and secure gateway to facilitate the integration of various Large Language Models (LLMs) into your applications, including all the text generation models supported by Huggingface’s Inference endpoints.
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.
Provider Slug. huggingface
Portkey SDK Integration with Huggingface
Portkey provides a consistent API to interact with models from various providers. To integrate Huggingface with Portkey:
1. Install the Portkey SDK
Add the Portkey SDK to your application to interact with Huggingface’s API through Portkey’s gateway.
npm install --save portkey-ai
2. Initialize Portkey with the Virtual Key
To use Huggingface with Portkey, get your Huggingface Access token from here, then add it to Portkey to create the virtual key.
NodeJS SDK
Python SDK
OpenAI Python SDK
OpenAI Node SDK
import Portkey from 'portkey-ai'
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY", // defaults to process.env["PORTKEY_API_KEY"]
provider:"@PROVIDER", // Your Huggingface Virtual Key
huggingfaceBaseUrl: "HUGGINGFACE_DEDICATED_URL" // Optional: Use this if you have a dedicated server hosted on Huggingface
})
3. Invoke Chat Completions with Huggingface
Use the Portkey instance to send requests to Huggingface. You can also override the virtual key directly in the API call if needed.
NodeJS SDK
Python SDK
OpenAI Python SDK
OpenAI Node SDK
OpenAI Python SDK
const chatCompletion = await portkey.chat.completions.create({
messages: [{ role: 'user', content: 'Say this is a test' }],
model: 'meta-llama/Meta-Llama-3.1-8B-Instruct', // make sure your model is hot
});
console.log(chatCompletion.choices[0].message.content);
Virtual Keys serve as Portkey’s unified authentication system for all LLM interactions, simplifying the use of multiple providers and Portkey features within your application. For self-hosted LLMs, you can configure custom authentication requirements including authorization keys, bearer tokens, or any other headers needed to access your model:
- Navigate to Virtual Keys in your Portkey dashboard
- Click “Add Key” and enable the “Local/Privately hosted provider” toggle
- Configure your deployment:
- Select the matching provider API specification (typically
OpenAI
)
- Enter your model’s base URL in the
Custom Host
field
- Add required authentication headers and their values
- Click “Create” to generate your virtual key
You can now use this virtual key in your requests:
const portkey = new Portkey({
apiKey: "PORTKEY_API_KEY",
provider:"@YOUR_SELF_HOSTED_LLM_PROVIDER"
async function main() {
const response = await client.chat.completions.create({
messages: [{ role: "user", content: "Bob the builder.." }],
model: "your-self-hosted-model-name",
});
console.log(response.choices[0].message.content);
})
For more information about managing self-hosted LLMs with Portkey, see Bring Your Own LLM.
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 Huggingface requests requests
- Tracing Huggingface requests
- Setup a fallback from OpenAI to Huggingface APIs