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 Features

  • 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. Im Zuge der Weiterentwicklung von LLMs wird Snowflake weitere Modelle hinzufügen, um Leistung und Genauigkeit weiter zu verbessern.

  • Semantisches Modell für hohe Präzision und Genauigkeit: Generische AI-Lösungen haben oft Probleme mit der Konvertierung von Text in SQL, wenn nur ein Datenbankschema vorliegt, da den Schemas kritisches Wissen wie Geschäftsprozessdefinitionen und die Handhabung von Metriken fehlt. Cortex Analyst überwindet diese Beschränkung durch die Verwendung eines semantischen Modells, das die Lücke zwischen Benutzern und Datenbanken schließt. 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.

  • 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 die in der Datei des semantischen Modells YAML enthaltenen Metadaten (z. B. Tabellennamen, Spaltennamen, Wertetyp, Beschreibungen usw.) nur für die Generierung 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-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.

Bekannte Probleme und Beschränkungen

  • Wenn Sie eine YAML-Datei mit einem semantischen Modell in einen Stagingbereich hochladen, wird der Zugriff auf dieses semantische Modell durch den Zugriff auf den Stagingbereich gesteuert, 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 zugrunde liegenden Tabellen hat.

  • Standardmäßig ist Cortex Analyst auf 20 Anfragen pro Minute beschränkt, was für einen „Proof of Concept“ ausreichen sollte. Wenden Sie sich an Ihren Vertriebsingenieur, um ein höheres Limit zu beantragen.

Ermöglichung der Nutzung von Azure OpenAI-Modellen

Standardmäßig wird Cortex Analyst von dem in Snowflake gehosteten LLMs betrieben. Sie können sich jedoch explizit dafür entscheiden, Cortex Analyst zu erlauben, neben den von Snowflake gehosteten Modellen auch die neuesten OpenAI GPT-Modelle zu verwenden, die von Microsoft Azure gehostet werden. Während der Laufzeit wählt Cortex Analyst die optimale Kombination von Modellen aus, um die höchste Genauigkeit und Leistung für jede Abfrage zu gewährleisten.

Bemerkung

Wenn Sie sich für die Verwendung von Azure OpenAI-Modellen entscheiden, ist Cortex Analyst für die Verwendung in allen AWS-, Azure- und GCP-Regionen verfügbar, mit Ausnahme von Gov- und VPS-Implementierungen.

Mit dem Parameter ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI können Sie Ihr Konto so konfigurieren, dass es die Verwendung der Azure OpenAI GPT-Modelle erlaubt. 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 ENABLE_CORTEX_ANALYST_MODEL_AZURE_OPENAI.

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.

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.

  • TRUE: Cortex Analyst kann zusätzlich zu den von Snowflake gehosteten Modellen auch Azure-Modelle verwenden, um Anfragen zu bearbeiten. OpenAI

Standard

FALSE

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.

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.

Optionen für den Einstieg

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. Beachten Sie auch die Tipps für Erstellung eines semantischen Modells.

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

Datenbank Wenn Sie Snowsight verwenden, können Sie die Seite aktualisieren und die neu erstellten Stagingbereiche im Datenbank-Objekt-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

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 die 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.