using MeetKai.MKA1;
using MeetKai.MKA1.Types.Components;
using System.Collections.Generic;
var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");
var res = await sdk.Serving.Recipes.RegisterAsync(
name: "<value>",
body: new ServingRecipeManifest() {
Accelerators = new Dictionary<string, ServingRecipeAccelerator>() {
{ "key", new ServingRecipeAccelerator() {
Image = "https://loremflickr.com/3488/2020?lock=1236590378159766",
} },
},
ApiFormat = ApiFormat.Images,
ModelSelectors = new List<ServingRecipeModelSelector>() {
new ServingRecipeModelSelector() {
Modality = "text-generation",
},
},
Name = "vllm-openai",
Port = 275465,
Version = 572385,
}
);
// handle responsefrom meetkai_mka1 import SDK
with SDK(
bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
) as sdk:
res = sdk.serving.recipes.register(name_param="<value>", accelerators={
"key": {
"image": "https://loremflickr.com/3488/2020?lock=1236590378159766",
},
}, api_format="images", model_selectors=[
{
"modality": "text-generation",
},
], name="vllm-openai", port=275465, version=572385, engine="vllm")
# Handle response
print(res)import { SDK } from "@meetkai/mka1";
const sdk = new SDK({
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await sdk.serving.recipes.register({
name: "<value>",
servingRecipeManifest: {
accelerators: {
"key": {
image: "https://loremflickr.com/3488/2020?lock=1236590378159766",
},
},
apiFormat: "images",
modelSelectors: [
{
modality: "text-generation",
},
],
name: "vllm-openai",
port: 275465,
version: 572385,
},
});
console.log(result);
}
run();curl --request PUT \
--url https://apigw.mka1.com/api/v1/serving/recipes/{name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accelerators": {},
"model_selectors": [
{
"modality": "<string>",
"architecture": "<string>",
"family": "<string>"
}
],
"name": "<string>",
"port": 32768,
"version": 2,
"apiProviderType": "<string>",
"capabilities": {},
"description": "<string>",
"engine": "vllm",
"readiness": {},
"runtime": {
"args": [
"<string>"
],
"env": {}
}
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accelerators: {},
model_selectors: [{modality: '<string>', architecture: '<string>', family: '<string>'}],
name: '<string>',
port: 32768,
version: 2,
apiProviderType: '<string>',
capabilities: {},
description: '<string>',
engine: 'vllm',
readiness: {},
runtime: {args: ['<string>'], env: {}}
})
};
fetch('https://apigw.mka1.com/api/v1/serving/recipes/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apigw.mka1.com/api/v1/serving/recipes/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'accelerators' => [
],
'model_selectors' => [
[
'modality' => '<string>',
'architecture' => '<string>',
'family' => '<string>'
]
],
'name' => '<string>',
'port' => 32768,
'version' => 2,
'apiProviderType' => '<string>',
'capabilities' => [
],
'description' => '<string>',
'engine' => 'vllm',
'readiness' => [
],
'runtime' => [
'args' => [
'<string>'
],
'env' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apigw.mka1.com/api/v1/serving/recipes/{name}"
payload := strings.NewReader("{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://apigw.mka1.com/api/v1/serving/recipes/{name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.mka1.com/api/v1/serving/recipes/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"definition": {
"accelerators": {},
"model_selectors": [
{
"modality": "<string>",
"architecture": "<string>",
"family": "<string>"
}
],
"name": "<string>",
"port": 32768,
"version": 2,
"apiProviderType": "<string>",
"capabilities": {},
"description": "<string>",
"engine": "vllm",
"readiness": {},
"runtime": {
"args": [
"<string>"
],
"env": {}
}
},
"disabled_at": "2023-11-07T05:31:56Z",
"enabled": true,
"enabled_at": "2023-11-07T05:31:56Z",
"enabled_by": "<string>",
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Registrar uma receita de porção
Registre (ou registre novamente) um manifesto de receita fixado por digest no catálogo. Uma nova receita é registrada desabilitada; o registro מחדש substitui o manifesto e preserva a habilitação. Apenas administradores do cluster.
using MeetKai.MKA1;
using MeetKai.MKA1.Types.Components;
using System.Collections.Generic;
var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");
var res = await sdk.Serving.Recipes.RegisterAsync(
name: "<value>",
body: new ServingRecipeManifest() {
Accelerators = new Dictionary<string, ServingRecipeAccelerator>() {
{ "key", new ServingRecipeAccelerator() {
Image = "https://loremflickr.com/3488/2020?lock=1236590378159766",
} },
},
ApiFormat = ApiFormat.Images,
ModelSelectors = new List<ServingRecipeModelSelector>() {
new ServingRecipeModelSelector() {
Modality = "text-generation",
},
},
Name = "vllm-openai",
Port = 275465,
Version = 572385,
}
);
// handle responsefrom meetkai_mka1 import SDK
with SDK(
bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
) as sdk:
res = sdk.serving.recipes.register(name_param="<value>", accelerators={
"key": {
"image": "https://loremflickr.com/3488/2020?lock=1236590378159766",
},
}, api_format="images", model_selectors=[
{
"modality": "text-generation",
},
], name="vllm-openai", port=275465, version=572385, engine="vllm")
# Handle response
print(res)import { SDK } from "@meetkai/mka1";
const sdk = new SDK({
bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
const result = await sdk.serving.recipes.register({
name: "<value>",
servingRecipeManifest: {
accelerators: {
"key": {
image: "https://loremflickr.com/3488/2020?lock=1236590378159766",
},
},
apiFormat: "images",
modelSelectors: [
{
modality: "text-generation",
},
],
name: "vllm-openai",
port: 275465,
version: 572385,
},
});
console.log(result);
}
run();curl --request PUT \
--url https://apigw.mka1.com/api/v1/serving/recipes/{name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"accelerators": {},
"model_selectors": [
{
"modality": "<string>",
"architecture": "<string>",
"family": "<string>"
}
],
"name": "<string>",
"port": 32768,
"version": 2,
"apiProviderType": "<string>",
"capabilities": {},
"description": "<string>",
"engine": "vllm",
"readiness": {},
"runtime": {
"args": [
"<string>"
],
"env": {}
}
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accelerators: {},
model_selectors: [{modality: '<string>', architecture: '<string>', family: '<string>'}],
name: '<string>',
port: 32768,
version: 2,
apiProviderType: '<string>',
capabilities: {},
description: '<string>',
engine: 'vllm',
readiness: {},
runtime: {args: ['<string>'], env: {}}
})
};
fetch('https://apigw.mka1.com/api/v1/serving/recipes/{name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apigw.mka1.com/api/v1/serving/recipes/{name}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'accelerators' => [
],
'model_selectors' => [
[
'modality' => '<string>',
'architecture' => '<string>',
'family' => '<string>'
]
],
'name' => '<string>',
'port' => 32768,
'version' => 2,
'apiProviderType' => '<string>',
'capabilities' => [
],
'description' => '<string>',
'engine' => 'vllm',
'readiness' => [
],
'runtime' => [
'args' => [
'<string>'
],
'env' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apigw.mka1.com/api/v1/serving/recipes/{name}"
payload := strings.NewReader("{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://apigw.mka1.com/api/v1/serving/recipes/{name}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.mka1.com/api/v1/serving/recipes/{name}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accelerators\": {},\n \"model_selectors\": [\n {\n \"modality\": \"<string>\",\n \"architecture\": \"<string>\",\n \"family\": \"<string>\"\n }\n ],\n \"name\": \"<string>\",\n \"port\": 32768,\n \"version\": 2,\n \"apiProviderType\": \"<string>\",\n \"capabilities\": {},\n \"description\": \"<string>\",\n \"engine\": \"vllm\",\n \"readiness\": {},\n \"runtime\": {\n \"args\": [\n \"<string>\"\n ],\n \"env\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"created_at": "2023-11-07T05:31:56Z",
"definition": {
"accelerators": {},
"model_selectors": [
{
"modality": "<string>",
"architecture": "<string>",
"family": "<string>"
}
],
"name": "<string>",
"port": 32768,
"version": 2,
"apiProviderType": "<string>",
"capabilities": {},
"description": "<string>",
"engine": "vllm",
"readiness": {},
"runtime": {
"args": [
"<string>"
],
"env": {}
}
},
"disabled_at": "2023-11-07T05:31:56Z",
"enabled": true,
"enabled_at": "2023-11-07T05:31:56Z",
"enabled_by": "<string>",
"name": "<string>",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "<string>",
"message": "<string>",
"type": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Autorizações
Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.
Cabeçalhos
Optional external end-user identifier forwarded by the API gateway.
Parâmetros de caminho
Corpo
Uma definição de receita do serving-runtime (o manifesto recipe.yaml): qual imagem é executada em qual hardware, seu contrato de prontidão e quais modelos ela pode atender.
Show child attributes
Show child attributes
responses, completions, embeddings, images, transcriptions, tts 1Show child attributes
Show child attributes
"vllm-openai"
1 <= x <= 65535x >= 1Lançar a criação de modelos (argumentos ou ambiente) de um manifesto de receita.
Show child attributes
Show child attributes
Resposta
Resposta Bem-Sucedida
Uma receita de serviço registrada com seu estado de habilitação em todo o cluster. Somente receitas habilitadas podem ser implantadas.
Uma definição de receita do serving-runtime (o manifesto recipe.yaml): qual imagem é executada em qual hardware, seu contrato de prontidão e quais modelos ela pode atender.
Show child attributes
Show child attributes
"vllm-openai"
Esta página foi útil?