UiPath Documentation
private-test-cloud
2.2510
true
Wichtig :
Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Private Test Cloud-Administratorhandbuch

Letzte Aktualisierung 14. Mai 2026

Anleitung: Verbinden von Missral über AI Trust Layer

In diesem Handbuch wird erläutert, wie Sie ein in Microsoft Azure AI Foundry bereitgestelltes Missral-Modell über die Funktion LLM-Konfigurationen der AI Trust Layer mit UiPath Agents verbinden. Sie erstellen einen benutzerdefinierten Integration Service-Connector basierend auf einer Azure OpenAI-Vorlage und passen seinen Anforderungshook an die API-Anforderungen von Missral an.

Voraussetzungen

  • BYO-AI Gateway in Ihrem Cluster aktiviert. Weitere Informationen finden Sie unter Konfigurieren der AI Trust Layer.
  • Ein in Azure AI Foundry bereitgestelltes Master-Modell (z. B. mistral-small-2503)
  • Die Azure AI Foundry-Endpunkt-URL für Ihre Ressource
  • Ein API-Schlüssel für Ihre Azure AI Foundry-Ressource
  • Administratorzugriff der Organisation in der Automation Suite
  • Zugriff auf Integration Service und Connector Builder

Erstellen Sie den benutzerdefinierten Connector

  1. Gehen Sie zu Administrator > AI Trust Layer > LLM-Konfigurationen und wählen Sie Konfiguration hinzufügen.
  2. Legen Sie die Werte für Mandant, Produkt und Funktion fest.
  3. Geben Sie unter Modellkonfiguration ein benutzerdefiniertes Alias in das Feld LLM-Name ein und legen Sie API-Typ auf OpenAI fest.
  4. Wählen Sie im Feld Connector die Option Benutzerdefinierten Connector erstellen aus.
  5. Wählen Sie die Azure OpenAI- Vorlage und dann Connector erstellen. Der Connector-Generator wird mit der vorab ausgefüllten Azure OpenAI-Vorlage geöffnet.

Bearbeiten Sie den Connector für die Master-Kompatibilität

Mistral-Modelle auf Azure AI Foundry verwenden eine strikte Schemavalidierung und akzeptieren nicht alle Felder, die die Azure OpenAI-Vorlage standardmäßig sendet. Der preRequest -Hook des Connectors muss diese Unterschiede auflösen, bevor jede Anforderung den Missral-Endpunkt erreicht.

Azure OpenAI-Vorlage wird gesendetMistral auf Azure AI Foundry erwartetAuflösung wird durch Hook angewendet
tool_choice: "required" oder Objektformulars"none", "auto" oder "any"Wird in "any" übersetzt, wenn Tools vorhanden sind
parallel_tool_calls FeldFeld nicht unterstützt (extra_forbidden)Aus Anforderungstext entfernt
max_completion_tokensmax_tokensFeld wird umbenannt
  1. Öffnen Sie im Connector-Generator den Abschnitt Hooks und wählen Sie den Hook PreRequest aus.

  2. Ersetzen Sie den gesamten Hook-Text durch das folgende Skript:

    // Normalize query params and payload for Mistral on Azure AI Foundry.
    // Removes unsupported fields and adapts tool semantics for Mistral's strict schema.
    const _reqPath = (typeof request_path !== 'undefined') ? request_path : '';
    const _reqParams = (typeof request_parameters !== 'undefined') ? request_parameters : undefined;
    const _cfg = (typeof configuration !== 'undefined') ? configuration : undefined;
    
    if (['/query', '/v1/responses'].includes(_reqPath)) {
        return done();
    }
    
    let apiVersion = (_cfg && _cfg['api-version']) ? _cfg['api-version'] : "2023-05-15";
    if (_reqParams && _reqParams["api-version"]) {
        apiVersion = _reqParams["api-version"];
    }
    if (['/listAllModels', '/auth_validation'].includes(_reqPath)) {
        apiVersion = (_cfg && _cfg['api-version']) ? _cfg['api-version'] : "2023-10-01-preview";
    }
    
    // Resolve body across different runtime variable names
    let body = (typeof request_body !== 'undefined' && request_body) ? request_body :
               ((typeof request_vendor_body !== 'undefined' && request_vendor_body) ? request_vendor_body :
                ((typeof request !== 'undefined' && request && request.body) ? request.body : undefined));
    
    if (body && typeof body === 'string') {
        try { body = JSON.parse(body); } catch (e) { /* leave as-is */ }
    }
    
    if (body && typeof body === 'object') {
        // Remove field rejected by Mistral's strict schema
        if (Object.prototype.hasOwnProperty.call(body, 'parallel_tool_calls')) {
            delete body.parallel_tool_calls;
        }
    
        // Normalize tool_choice: Mistral accepts only 'none', 'auto', or 'any'
        const _allowedToolChoice = new Set(['none', 'auto', 'any']);
        const _hasTools = Object.prototype.hasOwnProperty.call(body, 'tools')
            && Array.isArray(body.tools) && body.tools.length > 0;
    
        if (Object.prototype.hasOwnProperty.call(body, 'tool_choice')) {
            if (body.tool_choice === 'required') {
                body.tool_choice = 'any';
            } else if (body.tool_choice && typeof body.tool_choice === 'object') {
                body.tool_choice = 'any';
            } else if (typeof body.tool_choice === 'string' && !_allowedToolChoice.has(body.tool_choice)) {
                body.tool_choice = _hasTools ? 'any' : 'auto';
            }
        } else if (_hasTools) {
            // Force tool usage: agent runtime expects tool calls when tools are configured
            body.tool_choice = 'any';
        }
    
        // Rename max_completion_tokens to max_tokens
        if (Object.prototype.hasOwnProperty.call(body, 'max_completion_tokens')) {
            if (!Object.prototype.hasOwnProperty.call(body, 'max_tokens')) {
                body.max_tokens = body.max_completion_tokens;
            }
            delete body.max_completion_tokens;
        }
    }
    
    const out = {
        request_vendor_parameters: { "api-version": apiVersion }
    };
    
    if (typeof request_body !== 'undefined') out.request_body = body;
    if (typeof request_vendor_body !== 'undefined') out.request_vendor_body = body;
    
    return done(out);
    // Normalize query params and payload for Mistral on Azure AI Foundry.
    // Removes unsupported fields and adapts tool semantics for Mistral's strict schema.
    const _reqPath = (typeof request_path !== 'undefined') ? request_path : '';
    const _reqParams = (typeof request_parameters !== 'undefined') ? request_parameters : undefined;
    const _cfg = (typeof configuration !== 'undefined') ? configuration : undefined;
    
    if (['/query', '/v1/responses'].includes(_reqPath)) {
        return done();
    }
    
    let apiVersion = (_cfg && _cfg['api-version']) ? _cfg['api-version'] : "2023-05-15";
    if (_reqParams && _reqParams["api-version"]) {
        apiVersion = _reqParams["api-version"];
    }
    if (['/listAllModels', '/auth_validation'].includes(_reqPath)) {
        apiVersion = (_cfg && _cfg['api-version']) ? _cfg['api-version'] : "2023-10-01-preview";
    }
    
    // Resolve body across different runtime variable names
    let body = (typeof request_body !== 'undefined' && request_body) ? request_body :
               ((typeof request_vendor_body !== 'undefined' && request_vendor_body) ? request_vendor_body :
                ((typeof request !== 'undefined' && request && request.body) ? request.body : undefined));
    
    if (body && typeof body === 'string') {
        try { body = JSON.parse(body); } catch (e) { /* leave as-is */ }
    }
    
    if (body && typeof body === 'object') {
        // Remove field rejected by Mistral's strict schema
        if (Object.prototype.hasOwnProperty.call(body, 'parallel_tool_calls')) {
            delete body.parallel_tool_calls;
        }
    
        // Normalize tool_choice: Mistral accepts only 'none', 'auto', or 'any'
        const _allowedToolChoice = new Set(['none', 'auto', 'any']);
        const _hasTools = Object.prototype.hasOwnProperty.call(body, 'tools')
            && Array.isArray(body.tools) && body.tools.length > 0;
    
        if (Object.prototype.hasOwnProperty.call(body, 'tool_choice')) {
            if (body.tool_choice === 'required') {
                body.tool_choice = 'any';
            } else if (body.tool_choice && typeof body.tool_choice === 'object') {
                body.tool_choice = 'any';
            } else if (typeof body.tool_choice === 'string' && !_allowedToolChoice.has(body.tool_choice)) {
                body.tool_choice = _hasTools ? 'any' : 'auto';
            }
        } else if (_hasTools) {
            // Force tool usage: agent runtime expects tool calls when tools are configured
            body.tool_choice = 'any';
        }
    
        // Rename max_completion_tokens to max_tokens
        if (Object.prototype.hasOwnProperty.call(body, 'max_completion_tokens')) {
            if (!Object.prototype.hasOwnProperty.call(body, 'max_tokens')) {
                body.max_tokens = body.max_completion_tokens;
            }
            delete body.max_completion_tokens;
        }
    }
    
    const out = {
        request_vendor_parameters: { "api-version": apiVersion }
    };
    
    if (typeof request_body !== 'undefined') out.request_body = body;
    if (typeof request_vendor_body !== 'undefined') out.request_vendor_body = body;
    
    return done(out);
    
  3. Legen Sie in den Connector-Einstellungen die Basis-URL auf Ihren Azure AI Foundry-Endpunkt fest: https://{your-resource-name}.openai.azure.com/openai.

  4. Legen Sie den Authentifizierungstyp entsprechend Ihrer Einrichtung fest. In diesem Beispiel wird der API-Schlüssel (customApiKey) verwendet, aber Sie können jeden unterstützten Authentifizierungstyp verwenden, einschließlich OAuth . Aktualisieren Sie die Connector-Einstellungen entsprechend.

  5. Wählen Sie Speichern aus und veröffentlichen Sie dann den Connector.

Erstellen Sie eine Verbindung im Integration Service

  1. Navigieren Sie im Integration Service zu Verbindungen und wählen Sie Verbindung hinzufügen.
  2. Wählen Sie den benutzerdefinierten Connector aus, den Sie veröffentlicht haben.
  3. Geben Sie im Feld API-Schlüssel Ihren Azure AI Foundry API-Schlüssel ein.
  4. Geben Sie im Feld Azure OpenAI-Ressource Ihren Ressourcennamen ein – den Unterdomänenteil Ihrer Endpunkt-URL, ohne https:// oder .openai.azure.com.
  5. Wählen Sie Verbinden aus, um die Verbindung bereitzustellen.

Schließen Sie die LLM-Konfiguration ab

  1. Kehren Sie zu Administrator > AI Trust Layer > LLM-Konfigurationen zurück und öffnen Sie die von Ihnen gestartete Konfiguration.
  2. Legen Sie unter Modellkonfiguration Connector auf Ihren veröffentlichten Connector und Verbindung auf die von Ihnen erstellte Verbindung fest.
  3. Geben Sie im Feld LLM-Bezeichner den Bereitstellungsnamen genau so ein, wie er in Azure AI Foundry angezeigt wird.
    Hinweis:

    Nachgestellte Leerzeichen im Feld LLM-Bezeichner verursachen einen DeploymentNotFound -Fehler. Stellen Sie vor dem Speichern sicher, dass keine Leerzeichen am Anfang oder Ende vorhanden sind.

  4. Wählen Sie Testkonfiguration aus, um den AI Trust Layer auszuführen.
  5. Wenn der Test erfolgreich ist, wählen Sie Speichern aus .

Ergebnis

Die Konfiguration wird gespeichert und das Missral-Modell ist für UiPath Agents für das von Ihnen angegebene Produkt und die Funktion verfügbar. Aufrufe werden durch das AI Trust Layer weitergeleitet und im Prüfungsprotokoll unter Quelle: Benutzerdefinierte Verbindung angezeigt.

Hinweis:

Wenn beim Erstellen eines benutzerdefinierten Connectors Probleme auftreten, wenden Sie sich an den UiPath-Support, um Unterstützung zu erhalten.

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben