Skip to content

Latest commit

 

History

History
286 lines (223 loc) · 7.92 KB

File metadata and controls

286 lines (223 loc) · 7.92 KB
title
OVHcloud AI Endpoints

Portkey provides a robust and secure gateway to facilitate the integration of various Large Language Models (LLMs) into your applications, including OVHcloud AI 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. ovhcloud

Portkey SDK Integration with OVHcloud AI Endpoints Models

Portkey provides a consistent API to interact with models from various providers. To integrate AI Endpoints with Portkey:

1. Install the Portkey SDK

Add the Portkey SDK to your application to interact with AI Endpoints's API through Portkey's gateway.

```sh npm install --save portkey-ai ``` ```sh pip install portkey-ai ```

2. Initialize Portkey with the Virtual Key

To use AI Endpoints with Portkey, navigate to OVHcloud control panel, in the Public Cloud section, then in AI & Machine Learning in AI Endpoints > API key. You can 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"]
    provider:"@PROVIDER" // Your AI Endpoints Virtual Key
})
</Tab>
<Tab title="Python SDK">
    ```python
    from portkey_ai import Portkey

    portkey = Portkey(
        api_key="PORTKEY_API_KEY",  # Replace with your Portkey API key
        provider="@PROVIDER"   # Replace with your virtual key for AI Endpoints
    )
    ```

</Tab>

3. Invoke Chat Completions with AI Endpoints

Use the Portkey instance to send requests to AI Endpoints. You can also override the virtual key directly in the API call if needed.

    ```js
    const chatCompletion = await portkey.chat.completions.create({
        messages: [{ role: 'user', content: 'Say this is a test' }],
        model: 'mixtral-8x7b-32768',
    });

    console.log(chatCompletion.choices);
    ```
</Tab>
<Tab title="Python SDK">
completion = portkey.chat.completions.create(
    messages= [{ "role": 'user', "content": 'Say this is a test' }],
    model= 'mistral-medium'
)

print(completion)
</Tab>

Managing OVHcloud AI Endpoints Prompts

You can manage all prompts to AI Endpoints in the Prompt Library. All the current models of AI Endpoints 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.

AI Endpoints Tool Calling

Tool calling feature lets models trigger external tools based on conversation context. You define available functions, the model chooses when to use them, and your application executes them and returns results.

Portkey supports AI Endpoints Tool Calling and makes it interoperable across multiple providers. With Portkey Prompts, you can templatize various your prompts & tool schemas as well.

```javascript Get Weather Tool let tools = [{ type: "function", function: { name: "getWeather", description: "Get the current weather", parameters: { type: "object", properties: { location: { type: "string", description: "City and state" }, unit: { type: "string", enum: ["celsius", "fahrenheit"] } }, required: ["location"] } } }];

let response = await portkey.chat.completions.create({ model: "gpt-oss-120b", messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: "What's the weather like in Delhi - respond in JSON" } ], tools, tool_choice: "auto", });

console.log(response.choices[0].finish_reason);

</Tab>
<Tab title="Python">
```python Get Weather Tool
tools = [{
    "type": "function",
    "function": {
        "name": "getWeather",
        "description": "Get the current weather",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string", "description": "City and state"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["location"]
        }
    }
}]

response = portkey.chat.completions.create(
    model="gpt-oss-120b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What's the weather like in Delhi - respond in JSON"}
    ],
    tools=tools,
    tool_choice="auto"
)

print(response.choices[0].finish_reason)
```curl Get Weather Tool curl -X POST "https://api.portkey.ai/v1/chat/completions" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_PORTKEY_API_KEY" \ -d '{ "model": "gpt-oss-120b", "messages": [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What'\''s the weather like in Delhi - respond in JSON"} ], "tools": [{ "type": "function", "function": { "name": "getWeather", "description": "Get the current weather", "parameters": { "type": "object", "properties": { "location": {"type": "string", "description": "City and state"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location"] } } }], "tool_choice": "auto" }' ```

AI Endpoints Speech to Text (Whisper)

OpenAI's Audio API converts speech to text using the Whisper model. It offers transcription in the original language and translation to English, supporting multiple file formats and languages with high accuracy.

```python Python audio_file= open("/path/to/file.mp3", "rb")

Transcription

transcription = portkey.audio.transcriptions.create( model="whisper-large-v3", file=audio_file ) print(transcription.text)

Translation

translation = portkey.audio.translations.create( model="whisper-large-v3", file=audio_file ) print(translation.text)


```javascript Node.js
import fs from "fs";

// Transcription
async function transcribe() {
  const transcription = await portkey.audio.transcriptions.create({
    file: fs.createReadStream("/path/to/file.mp3"),
    model: "whisper-large-v3",
  });
  console.log(transcription.text);
}
transcribe();

// Translation
async function translate() {
    const translation = await portkey.audio.translations.create({
        file: fs.createReadStream("/path/to/file.mp3"),
        model: "whisper-large-v3",
    });
    console.log(translation.text);
}
translate();
# Transcription
curl -X POST "https://api.portkey.ai/v1/audio/transcriptions" \
     -H "Authorization: Bearer YOUR_PORTKEY_API_KEY" \
     -H "Content-Type: multipart/form-data" \
     -F "file=@/path/to/file.mp3" \
     -F "model=whisper-large-v3"

# Translation
curl -X POST "https://api.portkey.ai/v1/audio/translations" \
     -H "Authorization: Bearer YOUR_PORTKEY_API_KEY" \
     -H "Content-Type: multipart/form-data" \
     -F "file=@/path/to/file.mp3" \
     -F "model=whisper-large-v3"