Cortex Analyst

Überblick

Cortex Analyst ist ein vollständig verwaltetes, LLM-gestütztes Snowflake Cortex Feature, mit dem Sie Anwendungen erstellen können, die in der Lage sind, Geschäftsfragen auf der Grundlage Ihrer strukturierten Daten in Snowflake zuverlässig zu beantworten. Mit Cortex Analyst können geschäftliche Benutzer Fragen in natürlicher Sprache stellen und erhalten direkte Antworten, ohne SQL schreiben zu müssen. Erhältlich als praktische REST API, kann Cortex Analyst nahtlos in jede Anwendung integriert werden.

Die Entwicklung einer produktionsreifen, dialogorientierten Self-Service-Analyselösung erfordert einen Dienst, der präzise Text-zu-SQL-Antworten generiert. Für die meisten Teams ist die Entwicklung eines solchen Dienstes, der Präzision, Latenzzeit und Kosten in Einklang bringt, eine gewaltige Aufgabe. Cortex Analyst vereinfacht diesen Prozess, indem ein vollständig verwaltetes, anspruchsvolles agentenbasiertes AI-System bereitgestellt wird, das all diese Komplexitäten bewältigt und hochpräzise Text-zu-SQL-Antworten erzeugt. Es hilft Ihnen, die Bereitstellung hochpräziser, selbstbedienbarer Konversationsanalysen für Geschäftsteams zu beschleunigen und gleichzeitig Zeitfresser wie komplexe RAG-Lösungsmuster, Modellexperimente und GPU-Kapazitätsplanung zu vermeiden. Die generierten SQL-Abfragen werden mit der skalierbaren Snowflake-Engine ausgeführt, die eine branchenführende Leistung und niedrigere Gesamtbetriebskosten (TCO) gewährleistet.

Tipp

Möchten Sie schnell mit Cortex Analyst loslegen? Probieren Sie das Tutorial Tutorial: Beantworten Sie Fragen zu Zeitserienumsatzdaten mit Cortex Analyst aus.

Wichtige Funktionen

  • Selbstbedienungsanalysen über Abfragen in natürlicher Sprache Begeistern Sie Ihre Geschäftsteams und technisch nicht versierten Benutzer mit sofortigen Antworten und Einblicken aus ihren strukturierten Daten in Snowflake. Mit Cortex Analyst können Sie nachgelagerte Chat-Anwendungen erstellen, die es Ihren Benutzern ermöglichen, Fragen in natürlicher Sprache zu stellen und sofort präzise Antworten zu erhalten.

  • Praktische REST-API für die Integration in bestehende Geschäftsabläufe. Cortex Analyst verfolgt einen API-First-Ansatz, der Ihnen die volle Kontrolle über das Endnutzererlebnis gibt. Integrieren Sie Cortex Analyst ganz einfach in bestehende Tools und Plattformen und bringen Sie die Leistungsfähigkeit von Erkenntnissen aus Dateien dorthin, wo Benutzer bereits arbeiten, z. B. in Streamlit-Apps, Slack, Teams, benutzerdefinierte Weboberflächen und mehr.

  • Unterstützt von hochmodernen großen Sprachmodellen (Large Language Models): Standardmäßig wird Cortex Analyst von den neuesten Meta Llama- und Mistral-Modellen unterstützt, die sicher innerhalb von Snowflake Cortex ausgeführt werden, dem intelligenten, vollständig verwalteten AI-Dienst von Snowflake. Optional können Sie Cortex Analyst auch Zugriff auf die neuesten in Azure gehosteten OpenAI GPT-Modelle geben. Zur Laufzeit wählt Cortex Analyst die beste Kombination von Modellen aus, um für jede Abfrage die höchste Genauigkeit und Leistung zu gewährleisten. Weitere Details dazu finden Sie unter Ermöglichung der Nutzung von Azure OpenAI-Modellen (früherer Pfad). Im Zuge der Weiterentwicklung von LLMs wird Snowflake weitere Modelle hinzufügen, um Leistung und Genauigkeit weiter zu verbessern.

  • Semantische Modelle für hohe Präzision und Genauigkeit: Generische AI-Lösungen haben oft Probleme mit der Text-zu-SQL-Konvertierung, wenn nur ein Datenbankschema vorliegt, da Schemata kritisches Wissen wie Geschäftsprozessdefinitionen und die Handhabung von Metriken fehlen. Cortex Analyst überwindet diese Beschränkung durch die Verwendung eines semantischen Modells zur Überbrückung der Kluft zwischen Geschäftsanwendern und Datenbanken. Die Gesamtstruktur und die Konzepte des semantischen Modells, das in einer einfachen YAML-Datei gespeichert ist, ähneln denen von Datenbankschemas, ermöglichen jedoch eine umfassendere Beschreibung der semantischen Informationen rund um die Daten.

    Wenn Sie Cortex Analyst einrichten, um Fragen aus einer großen Anzahl von Datenquellen zu beantworten, kann Cortex Analyst automatisch herausfinden, welche Quelle zu verwenden ist. Sie müssen sich nicht bei jeder Abfrage darum kümmern, die richtige anzugeben.

  • Sicherheit und Governance. Das datenschutzfreundliches Fundament von Snowflake und unternehmensweite Sicherheit sorgen dafür, stellen sicher, dass Sie AI-gesteuerte Anwendungsfälle mit der Gewissheit erkunden kann, dass Ihre Daten durch die höchsten Standards in Bezug auf Datenschutz und Governance geschützt sind.

    • Cortex Analyst trainiert nicht mit Kundendaten. Wir verwenden Ihre Kundendaten nicht, um ein Modell zu trainieren oder zu optimieren, das für die Nutzung durch unseren gesamten Kundenstamm zur Verfügung gestellt werden soll. Darüber hinaus verwendet Cortex Analyst für Inferenz die in der Datei des semantischen YAML-Modells bereitgestellten Metadaten (z. B. Tabellennamen, Spaltennamen, Wertetyp, Beschreibungen usw.) nur für die Erstellung von SQL-Abfragen. Diese SQL-Abfrage wird dann in Ihrem virtuellen Snowflake-Warehouse ausgeführt, um die endgültige Ausgabe zu generieren.

    • Die Daten bleiben innerhalb der Snowflake Governance-Grenzen. Standardmäßig wird Cortex Analyst durch die in Snowflake gehosteten LLMs von Mistral und Meta betrieben, wodurch sichergestellt wird, dass keine Daten, einschließlich Metadaten oder Eingabeaufforderungen, die Governance-Grenze von Snowflake verlassen. Wenn Sie sich für die Verwendung von Azure OpenAI-Modellen entscheiden, werden nur Metadaten und Eingabeaufforderungen außerhalb der Governance-Grenze von Snowflake übertragen.

    • Nahtlose Integration mit den Datenschutz- und Governance-Features von Snowflake. Cortex Analyst ist vollständig mit den Snowflake-Richtlinien zur rollenbasierten Zugriffssteuerung (RBAC) integriert und stellt sicher, dass die generierten und ausgeführten SQL-Abfragen alle festgelegten Zugriffssteuerungen einhalten. Dies garantiert eine robuste Sicherheit und Governance für Ihre Daten.

Anforderungen an die Zugriffssteuerung

Um eine Anfrage an Cortex Analyst zu stellen, müssen Sie eine Rolle verwenden, der die Rolle SNOWFLAKE.CORTEX_USER zugewiesen ist.

Um Cortex Analyst mit einem semantischen Modell zu verwenden, benötigen Sie außerdem die folgenden Berechtigungen:

Berechtigung

Objekt

READ oder WRITE

Stagingbereich, der die Datei des semantischen YAML-Modells enthält, wenn das semantische Modell in einen Stagingbereich hochgeladen wird.

USAGE

Die im semantischen Modell erwähnten Cortex Search Services.

SELECT

Die im semantischen Modell erwähnten Tabellen.

Anfragen an Cortex Analyst API müssen ein Autorisierungs-Token enthalten. Einzelheiten zur Authentifizierung bei API finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake.

Beachten Sie, dass das Beispiel in diesem Thema ein Sitzungstoken verwendet, um sich bei einem Snowflake-Konto zu authentifizieren.

Beschränkung des Zugriffs auf bestimmte Rollen

Die Rolle CORTEX_USER ist standardmäßig der Rolle PUBLIC zugewiesen. Die Rolle PUBLIC wird automatisch allen Benutzern und Rollen zugewiesen. Wenn Sie nicht möchten, dass alle Benutzer diese Berechtigung haben, können Sie der Rolle PUBLIC die Berechtigung entziehen und den Zugriff nur bestimmten Rollen gewähren. Weitere Informationen dazu finden Sie unter Erforderliche Berechtigungen.

Um den Zugriff auf bestimmte semantische Modelle zu kontrollieren, können Sie die Datei YAML in einem Stagingbereich speichern und den Zugriff auf diesen Stagingbereich kontrollieren.

Regionsverfügbarkeit

Cortex Analyst ist in den folgenden Regionen nativ verfügbar.

  • AWS ap-northeast-1 (Tokio)

  • AWS ap-southeast-2 (Sydney)

  • AWS us-ost-1 (Virginia)

  • AWS US East (Commercial Gov - N. Virginia)

  • AWS us-west-2 (Oregon)

  • AWS eu-central-1 (Frankfurt)

  • AWS eu-west-1 (Irland)

  • East US 2 (Virginia)

  • West Europe (Niederlande)

Wenn sich Ihr Snowflake Konto in einer anderen Cloudregion befindet, können Sie Cortex Analyst trotzdem nutzen, indem Sie Regionenübergreifende Inferenz verwenden. Sobald die regionsübergreifende Inferenz aktiviert ist, verarbeitet Cortex Analyst Anfragen in anderen Regionen nach Modellen, die in Ihrer Standardregion nicht verfügbar sind. Für optimale Leistung konfigurieren Sie regionsübergreifend mit AWS US-Regionen.

Multi-Turn-Konversationen in Cortex Analyst

Cortex Analyst unterstützt Multi-Turn-Konversationen für datenbezogene Fragen. Mit diesem Feature können Sie Folgefragen stellen, die auf früheren Abfragen aufbauen und so eine dynamischere und interaktivere Datenexploration ermöglichen. Der Benutzer fragt zum Beispiel: „Wie hoch ist das Umsatzwachstum in Asien im Jahr 2021 im Vergleich zum Vormonat?“ und fragt dann: „Was ist mit Nordamerika?“

Cortex Analyst erkennt die Folgefrage, ruft den Kontext der ersten Abfrage ab und formuliert die zweite Frage neu: „Wie hoch ist das Umsatzwachstum in Nordamerika im Jahr 2021 im Vergleich zum Vormonat?“ Cortex Analyst erstellt dann eine SQL-Abfrage, um diese Frage zu beantworten.

Um dieses Feature zu nutzen, geben Sie den Konversationsverlauf in das Feld messages ein:

{
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What is the month over month revenue growth for 2021 in Asia?"
                }
            ]
        },
        {
            "role": "analyst",
            "content": [
                {
                    "type": "text",
                    "text": "We interpreted your question as ..."
                },
                {
                    "type": "sql",
                    "statement": "SELECT * FROM table"
                }
            ]
        },
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "What about North America?"
                }
            ]
        },
    ],
    "semantic_model_file": "@my_stage/my_semantic_model.yaml"
}
Copy

Der Konversationsverlauf ist ein Array von Meldungen in chronologischer Reihenfolge, wobei jede Meldung eine Rolle und einen Inhalt hat. Die Rolle kann "user" (für vorherige Fragen) oder "analyst" (für vorherige Antworten) sein. Analystenantworten enthalten sowohl Text als auch SQL-Antworten, wie im obigen Beispiel gezeigt, während Benutzermeldungen nur Text enthalten.

Wichtig

Große Sprachmodelle, wie die von Cortex Analyst verwendeten, speichern keinen Status zwischen Anfragen. Für jede neue Abfrage in einer Konversation wird der gesamte Verlauf verarbeitet, mit entsprechenden Rechenkosten, die mit jeder Runde steigen.

Bekannte Einschränkungen bei Multi-Turn-Konversationen

Einige der folgenden Einschränkungen könnten in zukünftigen Versionen von Cortex Analyst behoben werden.

Zugriff auf die Ergebnisse früherer SQL-Abfragen

Cortex Analyst hat keinen Zugriff auf die Ergebnisse früherer SQL-Abfragen. Wenn Sie z. B. zuerst fragen: „Was sind meine Produkte?“ und dann fragen: „Wie hoch ist der Umsatz des zweiten Produkts?“, kann Cortex Analyst nicht auf die Liste der Produkte aus der ersten Abfrage zurückgreifen, um das zweite Produkt zu erhalten.

Allgemeine Geschäftseinblicke

Cortex Analyst beschränkt sich auf die Beantwortung von Fragen, die mit SQL geklärt werden können. Es liefert keine Erkenntnisse für allgemeinere geschäftsbezogene Abfragen, wie z. B. „Welche Trends beobachten Sie?“

Lange Konversationen

Wenn ein Konversation zu viele Wendungen enthält oder der Benutzer seine Absicht häufig ändert, hat Cortex Analyst möglicherweise Schwierigkeiten, die Folgefragen zu interpretieren. Setzen Sie in solchen Fällen die Konversation zurück, und beginnen Sie von vorne.

Erste Schritte

Entwickler können die folgenden Ressourcen nutzen, um mit Cortex Analyst zu arbeiten:

  1. Einfaches Code-Beispiel: Die Cortex Analyst-Beispiel im folgenden Abschnitt bietet ein einfaches, leicht lesbares Skript, das Ihnen hilft, eine interaktive App mit Cortex Analyst zu erstellen.

    Wählen Sie diese Option, wenn Sie mit einem grundlegenden Beispiel beginnen möchten und mit der Verwendung von Streamlit und Ihren eigenen Änderungen vertraut sind. Sie können dieses Beispiel entweder in Streamlit in Snowflake (SiS) oder lokal ausführen.

  2. Snowflake Samples Repository: Wenn Sie stattdessen nach einer umfassenderen Implementierung suchen, finden Sie in der Cortex Analyst Advanced SiS Demo im Snowflake Samples Repository alle Features und Optionen bereits eingerichtet. Dieses Repository ist mit verschiedenen vorgefertigten Features konfiguriert, die eine nahtlose und stabile Bereitstellung von Cortex Analyst ermöglichen.

    Wählen Sie diese Option, wenn Sie das Feature zum ersten Mal testen möchten oder wenn Sie weniger benutzerdefinierte Änderungen vornehmen müssen.

    Bemerkung

    Dies ist nur als Beispiel dargestellt. Snowflake bietet keinen Support für die unten aufgeführten Inhalte und übernimmt auch keine Garantie für die Richtigkeit der unten aufgeführten Inhalte.

    Weitere Informationen finden Sie in der Cortex Analyst Advanced SiS Demo im Snowflake Samples Repository GitHub.

Cortex Analyst-Beispiel

Folgen Sie diesen Schritten, um ein interaktives Streamlit in Snowflake (SiS) oder eine eigenständige Streamlit-App zu erstellen, die Cortex Analyst verwendet.

  1. Ein semantisches Modell erstellen

  2. Hochladen des semantischen Modells in den Stagingbereich

  3. Erstellen und Ausführen einer Streamlit-in-Snowflake-App

  4. Interagieren Sie mit der Streamlit-in-Snowflake-App

Ein semantisches Modell erstellen

Das semantische Modell ist ein einfacher Mechanismus, der Probleme im Zusammenhang mit dem Sprachunterschied zwischen Geschäftsanwendern und Datenbankdefinitionen löst, indem er die Angabe zusätzlicher semantischer Details zu einem Datenset ermöglicht. Diese zusätzlichen semantischen Details, wie aussagekräftigere Namen oder Synonyme, ermöglichen es Cortex Analyst, Datenfragen viel zuverlässiger zu beantworten.

  1. Beginnen Sie mit einer Liste von Fragen, die Sie von Cortex Analyst beantwortet haben möchten. Entscheiden Sie sich auf dieser Grundlage für das Datenset für Ihr semantisches Modell.

  2. Erstellen Sie Ihr semantisches Modell YAML auf der Grundlage der Spezifikation. Probieren Sie den Erstellen Sie ein semantisches Modell mit dem Modellgenerator aus.

Semantisches Modell hochladen

Sie können eine YAML-Datei mit semantischem Modell in einen Stagingbereich hochladen oder das semantische Modell YAML als Zeichenfolge im Body der Anfrage übergeben. Wenn Sie ein semantisches Modell im YAML Format in einen Stagingbereich hochladen, wird der Zugriff auf dieses semantische Modell durch den Zugriff auf den Stagingbereich kontrolliert, in den es hochgeladen wurde. Das bedeutet, dass jede Rolle mit Zugriff auf den Stagingbereich auf die semantischen Modelle in diesem Stagingbereich zugreifen kann, auch wenn die Rolle keinen Zugriff auf die Tabellen hat, auf denen die Modelle basieren. Stellen Sie sicher, dass Rollen, denen Zugriff auf einen Stagingbereich gewährt wurde, SELECT-Zugriff auf alle Tabellen haben, auf die in allen semantischen Modellen in diesem Stagingbereich verwiesen wird.

Im Folgenden sehen Sie ein Beispiel für das Setup der Stagingbereiche, die die semantischen Modelle enthalten. Ein Stagingbereich (public) ist für alle Mitglieder der Organisation zugänglich, während ein anderer Stagingbereich (sales) nur für die Rolle sales_analyst zugänglich ist.

Erstellen Sie die Datenbank und das Schema für den Stagingbereich. Das folgende Beispiel erstellt eine Datenbank mit dem Namen semantic_model und einem Schema mit dem Namen definition. Sie können jedoch jede gültige Zeichenfolge für diese Namen verwenden.

CREATE DATABASE semantic_model;
CREATE SCHEMA semantic_model.definitions;
GRANT USAGE ON DATABASE semantic_model TO ROLE PUBLIC;
GRANT USAGE ON SCHEMA semantic_model.definitions TO ROLE PUBLIC;

USE SCHEMA semantic_model.definitions;
Copy

Erstellen Sie dann die Stagingbereiche für die Speicherung Ihrer semantischen Modelle:

CREATE STAGE public DIRECTORY = (ENABLE = TRUE);
GRANT READ ON STAGE public TO ROLE PUBLIC;

CREATE STAGE sales DIRECTORY = (ENABLE = TRUE);
GRANT READ ON STAGE sales TO ROLE sales_analyst;
Copy

In Snowsight können Sie die Seite aktualisieren und die neu erstellten Stagingbereiche im Datenbankobjekt-Explorer finden. Sie können die Seite „Stagingbereich“ in einer neuen Registerkarte öffnen und Ihre YAML-Dateien in Snowsight hochladen.

Alternativ können Sie auch den Snowflake-CLI-Client verwenden, um von Ihrem lokalen Dateisystem hochzuladen.

snow stage copy file:///path/to/local/file.yaml @sales
Copy

Erstellen einer Streamlit-in-Snowflake-App

In diesem Beispiel wird gezeigt, wie Sie in Snowflake eine Streamlit-App erstellen, die eine Frage in natürlicher Sprache als Eingabe nimmt und Cortex Analyst aufruft, um eine Antwort auf der Grundlage des von Ihnen bereitgestellten semantischen Modells zu generieren.

Bemerkung

Dies ist nur als Beispiel dargestellt. Snowflake bietet keinen Support für die unten aufgeführten Inhalte und übernimmt auch keine Garantie für die Richtigkeit der unten aufgeführten Inhalte.

Weitere Informationen zum Erstellen und Ausführen von Streamlit-Anwendungen in Snowflake finden Sie unter Allgemeine Informationen zu Streamlit in Snowflake.

  1. Folgen Sie den Anweisungen in Erstellen einer Streamlit-App mithilfe von Snowsight, um eine neue Streamlit-App in Snowsight zu erstellen.

  2. Kopieren Sie den Streamlit-Code aus unserem GitHub Repo in den Code-Editor.

  3. Ersetzen Sie die Platzhalterwerte durch Ihre Kontodaten.

  4. Um eine Vorschau der App anzuzeigen, wählen Sie Run aus, um den Inhalt im Streamlit-Vorschaufenster zu aktualisieren.

Interaktion mit der Streamlit App

  1. Navigieren Sie zur Streamlit-App in Ihrem Browser oder zum Vorschaubereich von Streamlit in Snowflake.

  2. Stellen Sie Fragen zu Ihren Daten in natürlicher Sprache (z. B. „Welche Fragen kann ich stellen?“).

Eigenständige Streamlit-App erstellen

Sie können den Beispielcode auch verwenden, um eine eigenständige App zu erstellen.

Bemerkung

Dies ist nur als Beispiel dargestellt. Snowflake bietet keinen Support für die unten aufgeführten Inhalte und übernimmt auch keine Garantie für die Richtigkeit der unten aufgeführten Inhalte.

  1. Installieren Sie Streamlit.

  2. Erstellen Sie lokal eine Python-Datei mit dem Namen analyst_api.py.

  3. Kopieren Sie den Streamlit-Code aus unserem GitHub Repo in die Datei.

  4. Ersetzen Sie die Platzhalterwerte durch Ihre Kontodaten.

  5. Führen Sie die Streamlit-App mit streamlit run analyst_api.py aus.

Die im Code angegebene Datenbank und das Schema sind der Stagingbereich-Speicherort für die semantische Modelldatei YAML. Die im Snowflake Connector verwendete Rolle sollte Zugriff auf die zugrunde liegenden Daten haben, die im semantischen Modell definiert sind.

Eine umfassendere Implementierung finden Sie in der Cortex Analyst Advanced SiS Demo im Snowflake Samples GitHub Repository. Dieses Repository ist mit verschiedenen vorgefertigten Features konfiguriert, die eine nahtlose und stabile Bereitstellung von Cortex Analyst ermöglichen.

Cortex Analyst-Funktionalität deaktivieren

Wenn Sie nicht möchten, dass Cortex Analyst in Ihrem Konto verfügbar ist, deaktivieren Sie das Feature, indem Sie den Parameter ENABLE_CORTEX_ANALYST über die Rolle ACCOUNTADMIN ändern:

USE ROLE ACCOUNTADMIN;
ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST = FALSE;
Copy

Parametertyp

Sitzung

Datentyp

BOOLEAN

Beschreibung

Steuert, ob die Funktion Cortex Analyst in Ihrem Konto aktiviert ist.

Werte

  • FALSE: Die Funktion Cortex Analyst ist nicht verfügbar.

  • TRUE: Cortex Analyst-Funktionalität ist verfügbar. Wenn ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI auf TRUE festgelegt ist, kann Cortex Analyst sowohl Azure OpenAI-Modelle als auch von Snowflake gehostete Modelle verwenden. Ansonsten können nur von Snowflake gehostete Modelle verwendet werden.

Standard

TRUE

Kontrollmodelle, die von Cortex Analyst verwendet werden

Sie können die RBAC (rollenbasierte Zugriffssteuerung) auf Modellebene verwenden, um den Zugriff auf die von Cortex Analyst verwendeten Modelle zu steuern. Jedes Modell ist durch eine bestimmte Anwendungsrolle geschützt. Administratoren können den Zugriff auf bestimmte LLMs über diese modellspezifischen Rollen gewähren oder widerrufen. Weitere Informationen dazu finden Sie unter Rollenbasierte Zugriffssteuerung (RBAC).

Wichtig

RBAC auf Modellebene ist ein erweitertes Feature, das für Kunden mit bestimmten regulatorischen oder Compliance-Anforderungen gedacht ist, die vorschreiben, welche Modelle verwendet und wo sie gehostet werden können. Wenn Sie keine solchen Anforderungen haben, empfiehlt Snowflake, dieses Feature nicht zu verwenden.

Sie können ein Modell nicht direkt auswählen. Stattdessen weist Cortex Analyst jede Anfrage einem Modell oder einer Kombination von Modellen zu, wobei die folgenden Faktoren berücksichtigt werden:

Tipp

Verschiedene Modelle führen zu unterschiedlichen Ergebnissen. Um konsistente Ergebnisse zu erzielen, verwenden Sie dieselbe Snowflake-Region, dieselbe Konfiguration regionenübergreifender Inferenz und dieselben RBAC-Einschränkungen auf Modellebene für alle Anfragen.

Wenn Ihr Konto für die Verwendung der inzwischen veralteten Azure OpenAI-Parameter auf Kontoebene konfiguriert ist, folgt Cortex Analyst der unter Ermöglichung der Nutzung von Azure OpenAI-Modellen (früherer Pfad) beschriebenen Logik. Andernfalls wählt Cortex Analyst Modelle in der folgenden Reihenfolge aus, wobei das Modell mit dem höchsten Rang, auf das Ihre Rolle Zugriff hat, verwendet wird. Wenn Ihre Rolle keinen Zugriff auf eines dieser Modelle hat, schlägt die Anfrage fehl.

  • Anthropic Claude Sonnet 4

  • Anthropic Claude Sonnet 3.7

  • Anthropic Claude Sonnet 3.5

  • OpenAI GPT 4.1

  • Kombination aus Mistral Large 2 und Llama 3.1 70b

Das Verhalten von Cortex Analyst bei der Modellauswahl kann sich von Zeit zu Zeit in Abhängigkeit von den Fortschritten bei den Modellfunktionen ändern.

Risiken und Beschränkungen

Cortex Analyst hängt von der Verfügbarkeit mindestens einer unterstützten Modellkonfiguration ab. Die Deaktivierung bestimmter Modelle reduziert die Fallback-Optionen und erhöht das Risiko von Abfragefehlern.

Einschränkungen auf Modellebene gelten für alle Cortex-Features, die das Modell verwenden können. Es ist nicht möglich, den Zugriff auf ein Modell nur in Cortex Analyst oder in einem anderen einzelnen Cortex-Feature zu beschränken.

Ermöglichung der Nutzung von Azure OpenAI-Modellen (früherer Pfad)

Bevor OpenAI-Modelle als von Snowflake gehostete LLMs verfügbar waren, bot Cortex Analyst die Möglichkeit, OpenAI-Modelle durch Aufrufe über Microsoft Azure zu verwenden. Da OpenAI-Modelle nun innerhalb der von Snowflake gehosteten Grenze verfügbar sind, empfiehlt Snowflake Kunden, die OpenAI-Modelle nutzen möchten, im Bedarfsfall die von Snowflake gehosteten Versionen dieser Modelle unter Verwendung der regionenübergreifenden Inferenz zu nutzen.

Snowflake rät dringend vom Einsatz von Azure OpenAI-Modellen über den in diesem Abschnitt beschriebenen Kontoparameter ab. Snowflake geht davon aus, dass dieser Pfad in einem zukünftigen Release nicht mehr unterstützt wird, und rät Kunden, zu den von Snowflake gehosteten OpenAI-Modellen zu migrieren, sobald dies möglich ist.

Sie können Ihr Snowflake-Konto so konfigurieren, dass die Verwendung der GPT-Modelle von Azure OpenAI mit dem Kontoparameter ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI zulässig ist. Standardmäßig ist der Parameter deaktiviert und kann nur von der Rolle ACCOUNTADMIN mit dem Befehl ALTER ACCOUNT festgelegt werden:

USE ROLE ACCOUNTADMIN;

ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI = TRUE;
Copy

Tipp

Um den aktuellen Wert dieses Parameters zu sehen, verwenden Sie die folgende SQL-Anweisung.

SHOW PARAMETERS LIKE 'ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI' IN ACCOUNT
Copy

Weitere Details dazu finden Sie unter Parameter ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI.

Bemerkung

Im Gegensatz zu den von Snowflake gehosteten Modellen hält sich das Azure OpenAI-Modell nicht an die RBAC-Einschränkungen. Die Azure OpenAI-Modelle können immer verwendet werden, wenn der Kontoparameter ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI aktiviert ist. Aktivieren Sie diesen Parameter nicht, wenn Sie Zugriffssteuerungen für Modelle verwenden, da er nicht mit RBAC auf Modellebene kompatibel ist.

Wenn dieser Parameter aktiviert ist, kann Cortex Analyst durch eine beliebige Kombination von Folgendem unterstützt werden:

  • Snowflake-gehostete Modelle, derzeit die Modelle Mistral Large und Llama3

  • Azure OpenAI-Modelle, derzeit GPT-4o (erfordert explizites Opt-in)

Bemerkung

Cortex Analyst könnte in Zukunft andere Modelle verwenden, um Leistung und Genauigkeit weiter zu verbessern.

Hinweise

Semantische Modelldateien werden als Metadaten klassifiziert. Wenn Sie sich für die Verwendung von Azure OpenAI-Modellen in Cortex Analyst entscheiden, wird Ihr semantisches Modell von Microsoft Azure, einem Drittanbieter, verarbeitet. Kundendaten werden jedoch nicht an Azure weitergegeben oder von Azure verarbeitet.

Parameter ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI

Die ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI Kontoparameter ermöglichen, wenn TRUE, Cortex Analyst die Verwendung von Azure OpenAI-Modellen.

Parametertyp

Sitzung

Datentyp

BOOLEAN

Beschreibung

Steuert, ob Cortex Analyst Azure OpenAI-Modelle zur Verarbeitung von Anfragen verwenden kann.

Werte

  • FALSE: Cortex Analyst verwendet nur von Snowflake gehostete Modelle zur Verarbeitung von Anfragen und beachtet die RBAC auf Modellebene.

  • TRUE: Cortex Analyst kann Azure OpenAI-Modelle zusätzlich zu den von Snowflake gehosteten Modellen verwenden, um Anfragen zu bearbeiten. Die RBAC auf Modellebene ist nicht verfügbar.

Standard

FALSE

Hinweise zu Kosten

Die Credit-Nutzung für Cortex Analyst basiert auf der Anzahl der verarbeiteten Meldungen, wie in der Snowflake Service Consumption Table beschrieben. Nur erfolgreiche Antworten (HTTP 200) werden gezählt. Die Anzahl der Token in jeder Meldung hat keinen Einfluss auf die Kosten.

Bemerkung

Die oben genannten Gebühren decken die AI-Kosten für Text-to-SQL ab. Zusätzliche Warehouse-Kosten fallen an, wenn Sie das von Cortex Analyst generierte SQL ausführen.

Überwachung der Kosten für Cortex Analyst

Um den Credit-Verbrauch für Cortex Analyst einzusehen, verwenden Sie Ansicht CORTEX_ANALYST_USAGE_HISTORY. Beispiel:

SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_ANALYST_USAGE_HISTORY;
Copy

Die Verwendung von Cortex Analyst erscheint auch in Ansicht METERING_HISTORY im Schema ACCOUNT_USAGE mit einem Servicetyp von AI_SERVICES.