API REST de incorporação de vetores¶
A API REST do Cortex fornece acesso a um ponto de extremidade para executar incorporações de vetores, usando a função AI_EMBED.
Configuração da autenticação¶
Para se autenticar na Cortex REST API, você pode usar os métodos descritos em Autenticando o Snowflake REST APIs com Snowflake.
Defina o cabeçalho Authorization para incluir seu token (por exemplo, um token da web JSON [JWT], um token OAuth ou um token de acesso programático).
Dica
Considere criar um usuário dedicado para solicitações da Cortex REST API.
Formato do ponto de extremidade¶
Você pode fazer solicitações ao ponto de extremidade /api/v2/cortex/inference:embed para criar incorporações ao seu texto. A solicitação tem o seguinte formato:
em que account_identifier é o identificador de conta que você usa para acessar o Snowsight.
Disponibilidade do modelo¶
A tabela a seguir exibe os modelos da função EMBED que você pode solicitar usando a REST API.
Modelo
|
AWS US West 2
(Oregon)
|
AWS US East 1
(N. Virginia)
|
AWS Europe Central 1
(Frankfurt)
|
AWS Europe West 1
(Ireland)
|
AWS AP Southeast 2
(Sidney)
|
AWS AP Northeast 1
(Tokyo)
|
Azure East US 2
(Virginia)
|
Azure West Europe
(Países Baixos)
|
|---|---|---|---|---|---|---|---|---|
snowflake-arctic-embed-m-v1.5 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
snowflake-arctic-embed-m |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
e5-base-v2 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
||
snowflake-arctic-embed-l-v2.0 |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
✔ |
A tabela a seguir mostra o número de dimensões que cada modelo pode retornar.
Modelo
|
Número de
dimensões
|
|---|---|
snowflake-arctic-embed-m-v1.5 |
768 |
snowflake-arctic-embed-m |
768 |
e5-base-v2 |
768 |
snowflake-arctic-embed-l-v2.0 |
1024 |
Referência de API¶
POST /api/v2/cortex/inference:embed¶
Cria uma incorporação para o texto que você especificar.
Cabeçalhos obrigatórios
Authorization: Bearer token.Autorização para a solicitação.
tokené um token da Web JSON (JWT), token OAuth ou token de acesso programático). Para obter mais detalhes, consulte Autenticando o Snowflake REST APIs com Snowflake.Content-Type: application/jsonEspecifica que o corpo da solicitação está no formato JSON.
Accept: application/jsonEspecifica que a resposta contém JSON.
Cabeçalhos opcionais¶
X-Snowflake-Authorization-Token-Type: typeDefine o tipo de token de autorização.
Se você omitir o cabeçalho
X-Snowflake-Authorization-Token-Type, o Snowflake determinará o tipo de token examinando o token.Embora esse cabeçalho seja opcional, você pode optar por especificá-lo. Você pode definir o cabeçalho com um dos seguintes valores:
KEYPAIR_JWT(para autenticação de pares de chaves)OAUTH(para OAuth)PROGRAMMATIC_ACCESS_TOKEN(para tokens de acesso programático)
Argumentos JSON exigidos¶
Argumento |
Tipo |
Descrição |
|---|---|---|
|
matriz |
Uma lista de cadeias de texto para as quais você está gerando incorporações. A lista pode conter até 1.280 cadeias de caracteres, sendo que cada uma delas pode ter até 4.096 caracteres. |
|
string |
O modelo que você está usando para criar as incorporações. |
Códigos de status¶
O Snowflake Cortex LLM REST API usa os seguintes códigos de status HTTP para indicar conclusão bem-sucedida ou várias condições de erro.
- 200
OK Solicitação concluída com sucesso. O corpo da resposta contém a saída do modelo.
- 400
invalid options object Os argumentos opcionais têm valores inválidos.
- 400
unknown model model_name O modelo especificado não existe.
- 400
schema validation failed Erros relacionados à estrutura incorreta do esquema de resposta. Corrija o esquema e tente novamente.
- 400
max tokens of count exceeded A solicitação excedeu o número máximo de tokens suportados pelo modelo (consulte Restrições de modelo).
- 400
all requests were throttled by remote service A solicitação foi limitada devido ao alto nível de utilização. Tente novamente mais tarde.
- 402
budget exceeded O orçamento de consumo do modelo foi excedido.
- 403
Not Authorized Conta não habilitada para REST API, ou a função padrão para o usuário que efetuou a chamada não tem a função de banco de dados
snowflake.cortex_user.- 429
too many requests A solicitação foi rejeitada porque a cota de uso foi excedida. Tente fazer sua solicitação mais tarde.
- 503
embed timed out A solicitação demorou muito.
Exemplo de solicitação da CURL¶
O exemplo a seguir usa curl para fazer uma solicitação EMBED ao modelo e5-base-v2. Substitua token e account_identifier pelos valores apropriados nesse comando.
Saída¶
Veja a seguir a saída da solicitação, com o conteúdo da matriz de incorporação truncado:
Cada incorporação tem um índice que corresponde à cadeia de caracteres de texto em uma lista na solicitação. O índice é baseado em 0, portanto, a primeira cadeia de caracteres de texto da lista tem um índice 0, a segunda cadeia de caracteres de texto tem um índice 1 e assim por diante.
No exemplo anterior, “foo” corresponde ao índice 0 e “bar” corresponde ao índice 1. A incorporação para “foo” é o primeiro elemento na lista de incorporações, e a incorporação para “bar” é o segundo elemento na lista de incorporações.
Exemplo de solicitação Python¶
O exemplo a seguir usa a Python API para fazer uma solicitação EMBED ao modelo e5-base-v2. Substitua token e account_identifier pelos valores apropriados nesse comando.
Saída¶
Veja a seguir a saída da solicitação, com o conteúdo da matriz de incorporação truncado:
Cada incorporação tem um índice que corresponde à cadeia de caracteres de texto em uma lista na solicitação. O índice é baseado em 0, portanto, a primeira cadeia de caracteres de texto da lista tem um índice 0, a segunda cadeia de caracteres de texto tem um índice 1 e assim por diante.
No exemplo anterior, “foo” corresponde ao índice 0 e “bar” corresponde ao índice 1. A incorporação para “foo” é o primeiro elemento na lista de incorporações, e a incorporação para “bar” é o segundo elemento na lista de incorporações.
Cotas de uso¶
A tabela a seguir mostra as cotas de uso da função EMBED.
Modelo
|
Tokens processados
por minuto (TPM)
|
Solicitações por
Minuto (RPM)
|
Saída máxima (tokens)
|
|---|---|---|---|
snowflake-arctic-embed-m-v1.5 |
400,000 |
200 |
4,096 |
snowflake-arctic-embed-m |
400,000 |
200 |
4,096 |
e5-base-v2 |
400,000 |
200 |
4,096 |
nv-embed-qa-4 |
400,000 |
200 |
4,096 |
multilingual-e5-large |
400,000 |
200 |
4,096 |
voyage-multilingual-2 |
400,000 |
200 |
4,096 |