Benutzerdefinierte Modell-API erstellen
- Zuletzt aktualisiert2025/07/07
Die Create Custom Model API bietet Entwicklern und Administratoren die Möglichkeit, proprietäre oder externe Large Language Models (LLMs) und andere KI-Modelle nahtlos direkt in AI Agent Studio zu integrieren.
- Es erfordert ein JSON-Payload-Schema, das Informationen über das Modell enthält. Das Schema definiert Attribute wie den Namen des Anbieters, den Namen des spezifischen Modells, Authentifizierungsprotokolle, Details zum API-Endpunkt (einschließlich Pfadparameter, Abfrageparameter und erforderliche Header) sowie die Struktur der Anforderungs- und Antwortkörper.
- Mit der API können Nutzer, Variablen innerhalb der Anforderungs- und Antwortkörper definieren, die zur Laufzeit dynamisch befüllt werden können. Diese Variablen können mithilfe spezifischer Anmerkungen für verschiedene Zwecke bestimmt werden:
-
PROMPT_QUERY
(Pflicht): Diese Anmerkung bedeutet, dass die entsprechende Variable durch die vom Nutzer auf der Seite AI Skills bereitgestellte Eingabe ersetzt werden sollte. Dies ist wesentlich, um Benutzereingabeaufforderungen an das Modell weiterzugeben. -
REQUEST_PARAMETER
(Pflicht): Diese Anmerkung gibt an, dass die Variable als konfigurierbarer Parameter auf der Seite Model connections angezeigt werden soll. -
MODEL_PARAMETER
: Ähnlich wieANFRAGE_PARAMETER
kennzeichnet diese Anmerkung die Variable zur Konfiguration auf der AI Skills-Seite. -
RESPONSE_PARAMETER
(Pflicht): Diese Anmerkung bedeutet, dass die Variable in der Antwort des KI-Modells zurückgegeben wird.
-
- Die API gibt eine
200 OK
-Antwort mit dem erstellten Modell bei erfolgreicher Erstellung zurück.
POST https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel
Anforderungstext:
Anforderungsparameter
{
"name":"Azure OpenAI reasoning models",
"version":"0",
"authAction":{
"authType":"CUSTOM_KEYS",
"customKeys":{
"keys":[
{
"location":"header",
"keyName":"Authorization",
"prefix":"Bearer "
}
]
}
},
"apiType":"REST",
"actions":[
{
"name":"o3-mini",
"displayName":"o3-mini",
"description":"The o1 and o3 series models are specifically designed to tackle reasoning
and problem-solving tasks with increased focus and capability. These models spend more time
processing and understanding the user's request, making them exceptionally strong in areas
like science, coding, math and similar fields. For example, o1 can be used by healthcare researchers
to annotate cell sequencing data, by physicists to generate complicated mathematical formulas needed
for quantum optics, and by developers in all fields to build and execute multi-step workflows.",
"method":"POST",
"uri":"https://{deployment}.openai.azure.com/openai/deployments/o3-mini/chat/completions?api-version=2025-01-01-preview",
"params":[
{
"type":"HEADERS"
},
{
"type":"PATH_PARAM",
"attribute":[
{
"name":"deployment",
"label":"Deployment",
"value":{
"type":"TEXT",
"string":"aai-openai2"
}
}
]
}
],
"request":{
"raw":{
"body":"{\n \"messages\": [\n {\n \"role\": \"user\",
\n \"content\": \"I am going to Paris, what should I see?\"\n
}\n ],\n \"max_completion_tokens\": 100000,\n \"model\": \"o3-mini\"\n }",
"variables":[
{
"path":"$.max_completion_tokens",
"attribute":{
"name":"max_completion_tokens",
"label":"max_completion_tokens",
"value":{
"type":"INTEGER",
"number":"100000"
},
"annotations":[
"REQUEST_PARAMETER"
]
}
},
{
"path":"$.messages.content",
"attribute":{
"name":"prompt",
"label":"prompt",
"value":{
"type":"TEXT"
},
"annotations":[
"PROMPT_QUERY"
]
}
}
]
}
},
"response":{
"body":"{\n \"id\": \"chatcmpl-APwQdLa9WCQAdZg0dO5OjGr2ER4sX\",\n \"object\": \"chat.completion\",\n
\"created\": 1730746163,\n \"model\": \"o3-mini-2025-01-31\",\n \"choices\": [\n {\n
\"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n
\"content\": \"Sure! They are one of the most mysterious and exciting objects in space.\",\n
\"refusal\": null\n },\n \"finish_reason\": \"stop\"\n }\n ],\n
\"usage\": {\n \"prompt_tokens\": 17,\n \"completion_tokens\": 959,\n
\"total_tokens\": 976,\n \"prompt_tokens_details\": {\n \"cached_tokens\": 0\n
},\n \"completion_tokens_details\": {\n \"reasoning_tokens\": 64\n }\n
},\n \"system_fingerprint\": \"fp_35c19d48ca\"\n}",
"variables":[
{
"path":"$.usage.completion_tokens",
"attribute":{
"name":"completion_tokens",
"label":"completion_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].completionTokens"
}
},
{
"path":"$.choices.message.content",
"attribute":{
"name":"content",
"label":"content",
"value":{
"type":"TEXT",
"string":"Some response from LLM"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].value"
}
},
{
"path":"$.model",
"attribute":{
"name":"model",
"label":"model",
"value":{
"type":"TEXT"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"model_name"
}
},
{
"path":"$.usage.prompt_tokens",
"attribute":{
"name":"prompt_tokens",
"label":"prompt_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].promptTokens"
}
},
{
"path":"$.usage.total_tokens",
"attribute":{
"name":"total_tokens",
"label":"total_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].totalTokens"
}
}
]
}
}
]
}
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
name | Zeichenfolge | Ja | Name des benutzerdefinierten Modells |
description | Zeichenfolge | Nein | Beschreibung des benutzerdefinierten Modells |
authAction | Objekt | Ja | Definiert die Authentifizierungsoptionen für den Aufruf des KI-Modells. Weitere Details finden Sie unten. |
apiType | Zeichenfolge | Ja | Gibt den API-Typ an (z. B. „REST“) |
Aktionen | Array | Ja | Enthält ein Array von Objekten, wobei jedes Objekt einen spezifischen Modellendpunkt oder eine Aktion innerhalb des benutzerdefinierten Modells definiert. |
authAction
-Objekt
{
"name":"Azure OpenAI reasoning models",
"description":"string",
"version":"0",
"authAction":{
"authType":"CUSTOM_KEYS",
"customKeys":{
"keys":[
{
"location":"header",
"keyName":"Authorization",
"prefix":"Bearer "
}
]
}
}
{
"name":"Bedrock - Claude2.1",
"description":"string",
"version":"string",
"authAction":{
"authType":"AWS_SIGNATURE_V4",
"awsSignatureV4":{
"accessKey":{
"location":"header",
"keyName":"aws_sign_access_key"
},
"secretkey":{
"location":"header",
"keyName":"aws_sign_access_key"
},
"sessionkey":{
"location":"header",
"keyName":"aws_sign_session_key"
}
}
},
"api_type":"REST",
"actions":[
{
....
}
]
}
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
authType | Zeichenfolge | Ja | Art der Authentifizierung. API_KEY für API-Schlüssel, OAUTH2 für OAuth2, CUSTOM_KEYS für mehrere Schlüssel und AWS_SIGNATURE_V4 für AWS-spezifische Authentifizierung. |
API_KEY, OAUTH2 oder CUSTOM_KEYS | Objekt | Ja | Definiert die benutzerdefinierten Authentifizierungsschlüssel. Seine Attribute werden unten unter keys beschrieben.
|
↳↳ keys
|
Array | Ja | Ein Array von Schlüsselobjekten zur Authentifizierung. |
↳↳↳ location
|
Zeichenfolge | Ja | Wo der Schlüssel platziert werden sollte (z. B. „header“). |
↳↳↳keyName
|
Zeichenfolge | Ja | Der Name des Schlüssels (z. B. „Authorization“, „x-api-key“). |
↳↳↳ prefix
|
Objekt | Nein | Ein optionales Präfix, das dem Schlüsselwert hinzugefügt werden soll (z. B. „Bearer “ für Bearer-Tokens). |
awsSignatureV4 | Objekt | Ja |
AWS_SIGNATURE_V4 ist erforderlich, wenn authType
AWS_SIGNATURE_V4 ist. Dieses Objekt definiert die AWS-Anmeldeinformationen (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel, Sitzungsschlüssel) für die AWS-Signaturauthentifizierung. |
↳↳ accessKey
|
Objekt | Ja | Definiert die AWS-Zugriffsschlüssel-ID. |
↳↳↳ location
|
Zeichenfolge | Ja | Wo der Zugriffsschlüssel platziert werden sollte (z. B. „header“, „query“). |
↳↳↳ keyName
|
Zeichenfolge | Ja | Der Name des Parameters für den Zugriffsschlüssel (z. B. „aws_sign_access_key“). |
↳↳ secretkey
|
Objekt | Ja | Definiert den AWS Secret Access Key. |
↳↳↳ location
|
Zeichenfolge | Ja | Wo der geheime Schlüssel platziert werden sollte. |
↳↳↳ keyName
|
Zeichenfolge | Ja | Der Name des Parameters für den geheimen Schlüssel. |
↳↳ sessionkey
|
Objekt | Nein | Definiert den AWS Session Key (optional). |
↳↳↳ location
|
Zeichenfolge | Ja | Wo der Sitzungsschlüssel platziert werden sollte. |
↳↳↳ keyName
|
Zeichenfolge | Ja | Der Name des Parameters für den Sitzungsschlüssel. |
actions
Array
{
"actions":[
{
"name":"o3-mini",
"displayName":"o3-mini",
"description":"The o1 and o3 series models are specifically designed to tackle reasoning
and problem-solving tasks with increased focus and capability. These models spend more time
processing and understanding the user's request, making them exceptionally strong in areas
like science, coding, math and similar fields. For example, o1 can be used by healthcare researchers
to annotate cell sequencing data, by physicists to generate complicated mathematical formulas needed
for quantum optics, and by developers in all fields to build and execute multi-step workflows.",
"method":"POST",
"uri":"https://{deployment}.openai.azure.com/openai/deployments/o3-mini/chat/completions?api-version=2025-01-01-preview",
"params":[
{
"type":"string",
"attribute":[
{
"name":"string",
"label":"string",
"value":{
"type":"string",
"string":"string",
"number":"string"
}
}
]
}
],
"request":{
"raw":{
"body":"string",
"variables":[
{
....
}
]
}
},
"response":{
"body":"string",
"variables":[
{
....
}
]
}
}
]
}
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
name | Zeichenfolge | Ja | Der programmatische Name des spezifischen Modellendpunkts/-aktion. |
displayName | Zeichenfolge | Ja | Ein benutzerfreundlicher Name für den Modellendpunkt, der in der Benutzeroberfläche angezeigt wird. |
description | Zeichenfolge | Nein | Eine detaillierte Beschreibung des Modellendpunkts und seiner Fähigkeiten. |
Methode | Zeichenfolge | Ja | Die HTTP-Methode für den API-Call. Sollte typischerweise POST für die meisten Generative KI-Modelle sein. |
uri | Zeichenfolge | Ja | Der vollständige URI des KI-Modellendpunkts. Dynamische Parameter im URI. |
params | Array | Nein | Enthält eine Sammlung von Parametern, die beim Konfigurieren des Model connection verwendet werden und zum URI hinzugefügt werden, wenn die KI-Modell-API zur Laufzeit aufgerufen wird. Parameter kann entweder eine PATH_PARAM -Variable oder eine QUERY_PARAM -Variable sein. Sie können auch HEADERS hinzufügen, die mit dieser API-Anfrage verknüpft sind. Im Beispiel sind deploymentId und projectId eine PATH_PARAM-Variable und apiVersion ist eine QUERY_PARAM-Variable. |
Anforderung | Objekt | Ja | Definiert das Format und die Struktur der Daten, die an das Modell gesendet werden müssen, einschließlich Variablen und deren Anmerkungen. Der body gibt die Struktur und den Inhalt der Anforderung an. Das variables -Array definiert die dynamischen Elemente innerhalb des Bodys und verwendet path, um den Speicherort der Variablen in der JSON-Struktur anzugeben. |
Antwort | Objekt | Gibt das Format und die Struktur der Daten an, die das Modell zurückgeben wird, einschließlich Variablen, deren Anmerkungen und deren kanonische Name. Der body gibt die Struktur und den Inhalt der Antwort an. Das variables -Array definiert die dynamischen Elemente innerhalb des Bodys und verwendet path, um den Speicherort der Variablen in der JSON-Struktur anzugeben. |
params
Array
{
"params":[
{
"type":"HEADERS"
},
{
"type":"PATH_PARAM",
"attribute":[
{
"name":"deployment",
"label":"Deployment",
"value":{
"type":"TEXT",
"string":"aai-openai2"
}
}
]
}
]
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
type | Zeichenfolge | Ja | Der Typ des Parameters (z. B. HEADERS , PATH_PARAM , QUERY_PARAM ). |
Attribut | Array | Ja | Ein Array von Attributobjekten, das die Parameterdetails definiert. Erforderlich für PATH_PARAM und QUERY_PARAM . |
↳ name
|
Zeichenfolge | Ja | Der Name des Parameters (z. B. „deployment“, „api-version“). |
↳ label
|
Zeichenfolge | Nein | Ein benutzerfreundliches Label für den Parameter, das in der UI angezeigt wird. |
↳value
|
Objekt | Nein | Ein Objekt, das den Standard- oder Anfangswert des Parameters enthält. Im Folgenden finden Sie die Attribute:
|
request
Objekt
{
"request":{
"raw":{
"body":"{\n \"messages\": [\n {\n \"role\": \"user\",
\n \"content\": \"I am going to Paris, what should I see?\"\n
}\n ],\n \"max_completion_tokens\": 100000,\n \"model\": \"o3-mini\"\n }",
"variables":[
{
"path":"$.max_completion_tokens",
"attribute":{
"name":"max_completion_tokens",
"label":"max_completion_tokens",
"value":{
"type":"INTEGER",
"number":"100000"
},
"annotations":[
"REQUEST_PARAMETER"
]
}
},
{
"path":"$.messages.content",
"attribute":{
"name":"prompt",
"label":"prompt",
"value":{
"type":"TEXT"
},
"annotations":[
"PROMPT_QUERY"
]
}
}
]
}
}
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
roh | Objekt | Ja | Definiert den rohen Anforderungstext und seine dynamischen Variablen. |
↳ body
|
Zeichenfolge | Ja | Der rohe JSON-String, der die Struktur des Anforderungstexts darstellt. Dieser String sollte Platzhalter für Variablen enthalten. |
↳ variables
|
Array | Nein | Ein Array von Objekten, die dynamische Elemente innerhalb des body definieren. |
↳↳ path
|
Zeichenfolge | Ja | Der JSONPath zum Speicherort der Variablen innerhalb der body -JSON-Struktur. |
↳↳ attribute
|
Objekt | Ja | Ein Objekt, das die Eigenschaften der Variablen beschreibt. |
↳↳↳ name
|
Zeichenfolge | Ja | Der interne Name der Variablen. |
↳↳↳label
|
Zeichenfolge | Nein | Eine benutzerfreundliche Bezeichnung für die Variable. |
↳↳↳ value
|
Objekt | Nein | Ein Objekt, das den Standard- oder Anfangswert der Variablen enthält. |
↳↳↳ Anmerkungen
|
Array | Nein | Ein Array von Zeichenfolgen, das den Zweck der Variablen angibt. Unterstützte Anmerkungen: PROMPT_QUERY , REQUEST_PARAMETER , MODEL_PARAMETER . |
response
Objekt
{
"response":{
"body":"{\n \"id\": \"chatcmpl-APwQdLa9WCQAdZg0dO5OjGr2ER4sX\",\n \"object\": \"chat.completion\",\n
\"created\": 1730746163,\n \"model\": \"o3-mini-2025-01-31\",\n \"choices\": [\n {\n
\"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n
\"content\": \"Sure! They are one of the most mysterious and exciting objects in space.\",\n
\"refusal\": null\n },\n \"finish_reason\": \"stop\"\n }\n ],\n
\"usage\": {\n \"prompt_tokens\": 17,\n \"completion_tokens\": 959,\n
\"total_tokens\": 976,\n \"prompt_tokens_details\": {\n \"cached_tokens\": 0\n
},\n \"completion_tokens_details\": {\n \"reasoning_tokens\": 64\n }\n
},\n \"system_fingerprint\": \"fp_35c19d48ca\"\n}",
"variables":[
{
"path":"$.usage.completion_tokens",
"attribute":{
"name":"completion_tokens",
"label":"completion_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].completionTokens"
}
},
{
"path":"$.choices.message.content",
"attribute":{
"name":"content",
"label":"content",
"value":{
"type":"TEXT",
"string":"Some response from LLM"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].value"
}
},
{
"path":"$.model",
"attribute":{
"name":"model",
"label":"model",
"value":{
"type":"TEXT"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"model_name"
}
},
{
"path":"$.usage.prompt_tokens",
"attribute":{
"name":"prompt_tokens",
"label":"prompt_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].promptTokens"
}
},
{
"path":"$.usage.total_tokens",
"attribute":{
"name":"total_tokens",
"label":"total_tokens",
"value":{
"type":"INTEGER"
},
"annotations":[
"RESPONSE_PARAMETER"
],
"canonicalName":"choices[0].totalTokens"
}
}
]
}
}
Parameter | Typ | Erforderlich | Beschreibung |
---|---|---|---|
Textkörper | Zeichenfolge | Ja | Der rohe JSON-String, der die erwartete Struktur des Antworttexts vom Modell darstellt. |
Variablen | Array | Nein | Ein Array von Objekten, das definiert, wie dynamische Elemente aus der Antwort body extrahiert werden. |
↳ path
|
Zeichenfolge | Ja | Der JSONPath zum Speicherort der Variablen innerhalb der body -JSON-Struktur. |
↳ attribute
|
Objekt | Ja | Ein Objekt, das die Eigenschaften der Variablen beschreibt. |
↳↳ name
|
Zeichenfolge | Ja | Der interne Name der Variablen. |
↳↳label
|
Zeichenfolge | Nein | Eine benutzerfreundliche Bezeichnung für die Variable. |
↳↳ value
|
Objekt | Nein | Ein Objekt, das den Standard- oder Anfangswert der Variablen enthält. |
↳↳ annotations
|
Array | Nein | Ein Array von Zeichenfolgen, das den Zweck der Variablen angibt. Unterstützte Anmerkung: Die Annotation RESPONSE_PARAMETER . |
↳↳ canonicalName
|
Zeichenfolge | Nein | JSON-Pfad zur Variablen im kanonischen Automation Anywhere-Schema.
|
Weitere Informationen zur API zum Erstellen benutzerdefinierter Modelle, einschließlich der Antwort und Antwortparameter, finden Sie unter AI Agent Studio API
Andere benutzerdefinierte Modell-APIs
- Benutzerdefinierte Modellinformations-API abrufen
-
GET https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel/vendors/{vendorName}/models/{modelName}
- Diese API ruft die Definition der vorhandenen benutzerdefinierten Modelle ab.
- Es erfordert den Anbieternamen (
vendorName
) und den Modellnamen (modelName
) als Pfadparameter. - Die API gibt eine
200 OK
-Antwort zurück, die die Objekte enthält, die das angeforderte Modell repräsentieren.
- Aktualisieren Sie die API für benutzerdefinierte Modelldefinitionen
-
PUT https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel
- Aktualisieren Sie den Namen und die Beschreibung der API für benutzerdefinierte Modelldefinitionen
-
PATCH https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel
- Diese API aktualisiert den Namen und die Beschreibung der benutzerdefinierten Modelldefinition.
- Es erfordert den Anbieternamen (
vendorName
) und den Modellnamen (modelName
), um das Modell zu identifizieren, das aktualisiert wird. - Die API gibt eine
200 OK
-Antwort mit den aktualisierten Modelldetails bei erfolgreicher Aktualisierung zurück.
- Benutzerdefinierte Modell-API löschen
-
DELETE https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel/vendors/{vendorName}/models/{modelName}
- Diese API löscht ein vorhandenes benutzerdefiniertes Modell.
- Ähnlich wie die GET-API verwendet sie (
vendorName
) und (modelName
) als Pfadparameter, um das Zielmodell zu identifizieren.Anmerkung: Das Modell kann nur gelöscht werden, wenn es derzeit nicht mit einer aktiven Model connections verbunden ist. Dies bedeutet, dass Sie zuerst alle AI Skills und Task Bots, die von Model connection abhängen, entfernen müssen, bevor Sie versuchen, die Modelldefinition zu löschen. - Die API gibt eine
204 No Content
Antwort bei erfolgreicher Löschung zurück.
- Liste der benutzerdefinierten Modell-API
-
POST https:/{{ControlRoomURL}}/gai/prompttools/v1/custommodel/list
- Diese API ruft eine Liste aller benutzerdefinierten Modelle ab, die für alle Anbieter innerhalb des Control Rooms definiert sind.
- Sie akzeptiert einen optionalen Anfragekörper, der ein
FilterRequest
-Objekt enthält, sodass Nutzer die Ergebnisse basierend auf bestimmten Kriterien filtern können. - Die API gibt eine
200 OK
-Antwort mit Objekten zurück, die die angeforderten Modelle enthalten.
Weitere Informationen zu den oben genannten APIs finden Sie unter AI Agent Studio API. Laden Sie hier eine Postman-Sammlung für AI Agent Studio – benutzerdefinierte Modelldefinitionen, die Beispiel-API-Aufrufe enthalten, um eine Verbindung zu den benutzerdefinierten Modellen herzustellen.