Cortex Analyst REST API¶
Verwenden Sie diese API, um Fragen zu Ihren Daten mit Abfragen in natürlicher Sprache zu beantworten.
Meldung senden¶
POST /api/v2/cortex/analyst/message
Erzeugt eine SQL-Abfrage für die gestellte Frage unter Verwendung des in der Anfrage angegebenen semantischen Modells. Sie können Multi-Turn-Konversationen führen, bei denen Sie Folgefragen stellen können, die auf früheren Abfragen aufbauen. Weitere Informationen dazu finden Sie unter Multi-Turn-Konversationen in Cortex Analyst.
Die Anfrage enthält eine Frage des Benutzers und die Antwort enthält die Frage des Benutzers und die Antwort des Analysten. Jede Meldung in einer Antwort kann mehrere Inhaltsblöcke unterschiedlichen Typs enthalten. Drei Werte, die derzeit für das Feld type
des Inhaltsobjekts unterstützt werden, sind: text
, suggestions
und sql
.
Header der Anforderung¶
Header |
Beschreibung |
---|---|
|
(Erforderliche) Autorisierungstoken. Weitere Informationen dazu finden Sie unter Authentifizierung am Server. |
|
(Erforderlich) Anwendung/json |
Text der Anforderung¶
Der Body der Anfrage enthält die Rolle des Sprechers, die user
sein muss, die Frage des Benutzers und einen Pfad zur Datei des semantischen Modells YAML. Die Frage des Benutzers ist in einem Objekt content
enthalten, das zwei Felder hat, type
und text
. text
ist auch der einzige zulässige Wert des Feldes type
.
Feld |
Beschreibung |
---|---|
|
(Erforderlich) Die Rolle der Entität, die die Meldung erstellt. Derzeit wird nur Typ: string:enum Beispiel: |
|
(Erforderlich) Das Inhaltsobjekt, das Teil einer Meldung ist. Typ: Objekt
|
|
(Erforderlich) Der Inhaltstyp. Derzeit wird nur Typ: string:enum Beispiel: |
|
(Erforderlich) Die Frage des Benutzers. Typ: Zeichenfolge Beispiel: |
|
Pfad zur Datei des semantischen Modells YAML. Muss eine vollständig qualifizierte Stagingbereich-URL sein, einschließlich der Datenbank und des Schemas. Sie können stattdessen das vollständige semantische Modell YAML in das Feld Typ: Zeichenfolge Beispiel: |
|
Eine Zeichenfolge, die das gesamte semantische Modell YAML enthält. Sie können stattdessen das semantische Modell YAML als Stagingdatei übergeben, indem Sie dessen URL im Feld Typ: Zeichenfolge |
Wichtig
Sie müssen entweder semantic_model_file
oder semantic_model
im Body der Anfrage angeben.
Beispiel¶
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "which company had the most revenue?"
}
]
}
],
"semantic_model_file": "@my_stage/my_semantic_model.yaml"
}
Antwort¶
Diese Operation kann die unten aufgeführten Antwortcodes zurückgeben. Die Antwort hat immer die folgende Struktur. Derzeit werden drei Inhaltstypen für die Antwort unterstützt: text
, suggestion
und sql
. Die Inhaltstypen suggestion
und sql
schließen sich gegenseitig aus, d. h. wenn die Antwort einen Inhaltstyp sql
enthält, enthält sie keinen Inhaltstyp suggestion
. Der Inhaltstyp suggestion
ist nur dann in einer Antwort enthalten, wenn die Frage des Benutzers mehrdeutig war und Cortex Analyst keine SQL-Anweisung für diese Abfrage liefern konnte.
Um die Vorwärtskompatibilität zu gewährleisten, stellen Sie sicher, dass Ihre Implementierung den Inhaltstyp berücksichtigt und Typen verarbeitet.
Code |
Beschreibung |
---|---|
200 |
Die Anweisung wurde erfolgreich ausgeführt. Meldung Der Body der Antwort enthält ein Meldungsobjekt, das die folgenden Felder enthält:
{
"request_id": "75d343ee-699c-483f-83a1-e314609fb563",
"message": {
"role": "analyst",
"content": [
{
"type": "text",
"text": "We interpreted your question as ..."
},
{
"type": "sql",
"statement": "SELECT * FROM table",
"confidence": {
"verified_query_used": {
"name": "My verified query",
"question": "What was the total revenue?",
"sql": "SELECT * FROM table2",
"verified_at": 1714497970,
"verified_by": "Jane Doe"
}
}
}
]
},
"warnings": [
{
"message": "Table table1 has (30) columns, which exceeds the recommended maximum of 10"
},
{
"message": "Table table2 has (40) columns, which exceeds the recommended maximum of 10"
}
]
}
|
Feedback senden¶
POST /api/v2/cortex/analyst/feedback
Liefert qualitatives Feedback von Benutzern. Innerhalb von Snowsight wird das Feedback in Semantic Model Admins unter Monitoring angezeigt.
Header der Anforderung¶
Header |
Beschreibung |
---|---|
|
(Erforderliche) Autorisierungstoken. Weitere Informationen dazu finden Sie unter Authentifizierung am Server. |
|
(Erforderlich) Anwendung/json |
Text der Anforderung¶
Feld |
Beschreibung |
---|---|
|
(Erforderlich) Die ID der Anfrage, die Sie zum Senden einer Meldung gestellt haben. Wird im Feld Typ: Zeichenfolge Beispiel: |
|
(Erforderlich) Ob das Feedback positiv oder negativ ist. Typ: Boolean Beispiel:
|
|
(Optional) Die Feedback-Meldung des Benutzers. Beispiel: |
Antwort¶
Leerer Antworttext mit Statuscode 200.
Anforderungen an die Zugriffssteuerung¶
Informationen zu den erforderlichen Berechtigungen finden Sie unter Anforderungen an die Zugriffssteuerung.
Einzelheiten zum Authentifizieren auf API finden Sie unter Authentifizierung von Snowflake REST APIs mit Snowflake.