Cortex Analyst REST API¶
Use esta API para responder perguntas sobre seus dados com consultas em linguagem natural.
Envio de mensagem¶
POST /api/v2/cortex/analyst/message
Gera uma consulta SQL para a pergunta fornecida usando o modelo semântico fornecido na solicitação. É possível ter conversas com várias interações, nas quais pode-se fazer perguntas de acompanhamento que se baseiam em perguntas anteriores. Para obter mais informações, consulte Conversas com múltiplas interações no Cortex Analyst.
A solicitação inclui uma pergunta do usuário e a resposta inclui a pergunta do usuário e a resposta do analista. Cada mensagem em uma resposta pode ter vários blocos de conteúdo de diferentes tipos. Três valores atualmente suportados para o campo type
do objeto de conteúdo são: text
, suggestions
e sql
.
Cabeçalhos de solicitação¶
Cabeçalho |
Descrição |
---|---|
|
Token de autorização (obrigatório). Para obter mais informações, consulte Autenticação no servidor. |
|
Aplicativo/json (obrigatório) |
Corpo da solicitação¶
O corpo da solicitação contém a função do palestrante, que deve ser user
, a pergunta do usuário e um caminho para o arquivo YAML do modelo semântico. A pergunta do usuário está contida em um objeto content
que possui dois campos, type
e text
. text
também é o único valor permitido do campo type
.
Campo |
Descrição |
---|---|
|
A função da entidade que está criando a mensagem (obrigatório). Atualmente só oferece suporte a Tipo: string:enum Exemplo: |
|
O objeto de conteúdo que faz parte de uma mensagem (obrigatório). Tipo: objeto
|
|
O tipo de conteúdo (obrigatório). Atualmente, somente Tipo: string:enum Exemplo: |
|
A pergunta do usuário (obrigatório). Tipo: cadeia de caracteres Exemplo: |
|
Caminho para o arquivo YAML do modelo semântico. Deve ser um URL do estágio totalmente qualificado, incluindo o banco de dados e o esquema. Em vez disso, você pode fornecer o YAML do modelo semântico completo no campo Tipo: cadeia de caracteres Exemplo: |
|
Uma cadeia de caracteres contendo todo o YAML do modelo semântico. Em vez disso, você pode passar o YAML do modelo semântico como um arquivo preparado, fornecendo seu URL no campo Tipo: cadeia de caracteres |
Importante
Você deve fornecer semantic_model_file
ou semantic_model
no corpo da solicitação.
Exemplo¶
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "which company had the most revenue?"
}
]
}
],
"semantic_model_file": "@my_stage/my_semantic_model.yaml"
}
Resposta¶
Essa operação pode retornar os códigos de resposta listados abaixo. A resposta sempre tem a seguinte estrutura. Atualmente, três tipos de conteúdo são suportados para a resposta, text
, suggestion
e sql
. Os tipos de conteúdo suggestion
e sql
são mutuamente exclusivos, de modo que se a resposta contiver um tipo de conteúdo sql
, ela não conterá um tipo de conteúdo suggestion
. O tipo de conteúdo suggestion
só é incluído em uma resposta se a pergunta do usuário for ambígua e Cortex Analyst não puder retornar uma instrução para essa consulta SQL.
Para garantir a compatibilidade futura, certifique-se de que sua implementação leve em conta o tipo de conteúdo e trate os tipos.
Código |
Descrição |
---|---|
200 |
A instrução foi executada com sucesso. O corpo da resposta contém um objeto de mensagem que contém os seguintes campos:
{
"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"
}
]
}
|
Envie feedback¶
POST /api/v2/cortex/analyst/feedback
Fornece feedback qualitativo ao usuário final. No Snowsight, o feedback é mostrado em Semantic Model Admins em Monitoring.
Cabeçalhos de solicitação¶
Cabeçalho |
Descrição |
---|---|
|
Token de autorização (obrigatório). Para obter mais informações, consulte Autenticação no servidor. |
|
Aplicativo/json (obrigatório) |
Corpo da solicitação¶
Campo |
Descrição |
---|---|
|
(Obrigatório) O ID da solicitação que você fez para enviar uma mensagem. Retornado no campo Tipo: cadeia de caracteres Exemplo: |
|
(Obrigatório) Se o feedback é positivo ou negativo. Tipo: booleano Exemplo:
|
|
(Opcional) A mensagem de feedback do usuário. Exemplo: |
Resposta¶
Corpo de resposta vazio com código de status 200.
Requisitos de controle de acesso¶
Para obter informações sobre os privilégios necessários, consulte Requisitos de controle de acesso.
Para obter detalhes sobre a autenticação na API, consulte Autenticando o Snowflake REST APIs com Snowflake.