---
sourceDocument: Zürich ServiceNow KI-Plattformverwaltung
sourceDocumentLink: https://www.servicenow.com/docs/r/de-DE/zurich/platform-administration

 Release :

    - zurich

ft:locale :

    - de-DE

ft:publication_title :

    - Zürich ServiceNow KI-Plattformverwaltung

ft:clusterId :

    - platadm

bundleId :

    - platadm

workflow :

    - Platform


---

# Legen Sie einen Anbieter für ein Einbettungsmodell fest

# Legen Sie einen Anbieter für ein Einbettungsmodell fest {#ariaid-title1}

* Freigeben Version: Zurich
* 
* Aktualisiert 31. Juli 2025
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 Minuten Lesedauer

Bestimmen Sie, welchen KI-Anbieter verwendet werden soll, damit Ihr Einbettungsmodell in funktionieren kann KI-Suche Retrieval-Augmented Generation( RAG) Anwendung.

## Vorbereitungen

Konfigurieren Sie einen Alias für Verbindungen und Anmeldeinformationen für Ihren bevorzugten Provider. Weitere Informationen finden Sie unter [Create a Connection \& Credential alias](https://www.servicenow.com/docs/access?context=connection-alias&version=zurich&pubname=zurich-platform-security&ft:locale=en-US).

Erforderliche Rolle: Administrator

## Prozedur

1. Navigieren zu Alle, Und geben Sie dann ein <kbd class="ph userinput">sys_one_extend_Capability.list </kbd>Im Filter, um zur Tabelle „OneExtend-Fähigkeiten" zu wechseln.
2. Wählen Sie aus Bringen Sie Ihr Eigenes Einbettungsmodell Mit Fähigkeit.
3. Wählen Sie in der zugehörigen Liste OneExtend-Fähigkeitsdefinitionen die Option aus Neu .
4. In Name Feld den Namen der Fähigkeitsdefinition eingeben.  
   Beispiel: Einbettungserstellung ( Azure OpenAI)
5. In API-Typ Feld auswählen System .
6. In API Wählen Sie das Suchsymbol ( ![Suchen Sie Dokumente mithilfe der Liste.]()), um das Dokument auszuwählen.
   1. In Tabellenname Wählen Sie die Tabelle One API-Systemausführer \[one_api_System_Executor\] aus.
   2. In Dokument Feld auswählen Generische Einbettung .
   3. Wählen Sie OK.
   {#set-provider-for-byom__substeps_a1h_1gr_bgc}
7. In Alias Für Verbindungen Und Anmeldeinformationen Feld den Alias auswählen, den Sie in Ihr anwenderdefiniertes Einbettungsmodell integrieren möchten.
8. Wählen Sie die Option Erweitert.
9. Erstellen Sie vor- und Nachverarbeitungsskripts.  
   Zum Aktivieren von KI-Suche RAG Anwendung um nahtlos mit Ihrem Einbettungsmodell zu arbeiten, müssen Sie vor- und Nachverarbeitungsskripts erstellen. Diese Skripts helfen dem KI-Suche RAG Anwendung Verstehen Sie das Format der Daten, die Ihr Modell erwartet und erstellt.  
   Das folgende Beispiel zeigt das Präprozessorskript für Azure OpenAI Anforderungsstruktur.

       (function(inputs) {                                                               //// inputs is the capability inputs which contains request.
                   /* write code here to transform capability input to definition input.            
                    *{
       		"request": {                                                                  //request contains rawInput which will be system-provided.
       			"rawInput": {                                                          //rawInput contains passages(Array of text segments), type(Context of the input) and modelId(Name of the embedding model)
       				"passages": ["Sample text"],
       				"type": "ingest/query",
       				"model": "text-embedding-3-large"
       			},
       			"providerInput": {                                                     //providerInput should be populated using the relevant data from rawInput.passages.
       				"input": ["Sample text"]                                        //The field name "input" inside providerInput is provider-specific and rawInput.passages should be mapped to the appropriate field expected by your provider
       			}
       		}
       	  }
       	 try {
               var parsedInputs = JSON.parse(inputs);
               var request = parsedInputs.request;
               var rawInput = request.rawInput;
               var passagesArray = rawInput.passages;
               var type = rawInput.type;

               if (passagesArray && passagesArray.length > 0) {
                   parsedInputs.request.providerInput = {};
                   parsedInputs.request.providerInput.input = passagesArray;
               }

           } catch (ex) {
               gs.error("Exception occured while preprocessing of the inputs." + ex);
               throw new Error("Exception occured while OE preprocessing of the inputs : " + ex);
           }

           inputs = parsedInputs;
           return inputs;
       })(inputs);
       	 
   Das folgende Beispiel zeigt das Antwortpostprozessorskript für Azure OpenAI Anforderungsstruktur.

       (function(outputs) {
           /* write code here to transform definition output to capability output.
       	* outputs contains result from the provider definition implementation.
       	* Expected outputs format from provider definition implementation in success scenario:
       	   "result": {
       			"provider": "custom_embedding_model",
       			"logId": "0ee6f4f4ff112210b6e1ffffffffff03",
       			"status": "success",
       			"response": {"object":"list","data":[{"object":"embedding","index":0,"embedding":[0.008695375,0.0011188902]},{"object":"embedding","index":1,"embedding":[0.012572239,0.017366657]}],"model":"text-embedding-3-large","usage":{"prompt_tokens":4,"total_tokens":4}}
       	    }
       	* Expected outputs format from provider definition implementation in error scenario:
       	   "result": {
       			"responseHeaders": "[Content-Length: 224\r\n, Content-Type: application/json\r\n, apim-request-id: 72b1519e-a367-4f01-b249-8f37d35d50d3\r\n, Date: Thu, 01 May 2025 12:03:44 GMT\r\n]",
       			"responseBody": "{\"error\":{\"code\":\"401\",\"message\":\"Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.\"}}",
       			"provider": "custom_embedding_model",
       			"errorCode": "401",
       			"logId": "0ee6f4f4ff112210b6e1ffffffffff03",
       			"error": "PermissionDenied",
       			"status": "error"
       	   }
       	* Extract the embeddings from the response key of the provider result (in a successful scenario) and elevate it in the final output. Sample format for the same:
       	  "result": {
       			"provider": "custom_embedding_model",
       			"logId": "0ee6f4f4ff112210b6e1ffffffffff03",
       			"status": "success",
       			"response": {"object":"list","data":[{"object":"embedding","index":0,"embedding":[0.008695375,0.0011188902]},{"object":"embedding","index":1,"embedding":[0.012572239,0.017366657]}],"model":"text-embedding-3-large","usage":{"prompt_tokens":4,"total_tokens":4}}
       			"embeddings": [[0.008695375,0.0011188902], [0.012572239,0.017366657]]
       	   }
       	*/
           try {
               outputs = JSON.parse(outputs);
               var embeddingsArray = [];

               if (!gs.nil(outputs.result) && !gs.nil(outputs.result.response)) {
                   var responseBody = outputs.result.response;
                   if (!gs.nil(responseBody)) {
                       var data = JSON.parse(responseBody).data;
                       for (var i = 0; i < data.length; i++) {
                           var embeddingResponse = data[i];
                           if (!gs.nil(embeddingResponse) && !gs.nil(embeddingResponse.embedding))
                               embeddingsArray.push(embeddingResponse.embedding);
                       }
                   }

                   outputs.result.embeddings = embeddingsArray;
               }
           } catch (ex) {
               gs.error("Exception occured while OE postprocessing of the outputs = " + ex);
               outputs.result.status = "error";
               outputs.result.error = gs.getMessage("Exception occured while OE postprocessing of the outputs : " + ex);
           }

           return outputs;
       })(outputs);

10. Wählen Sie Absenden.

