Pular para o conteúdo principal

Criar, atualizar, e apagar KS via API

Os exemplos nesta seção usam curl e shell scripts. Você pode alterá-los. Use a StackSpot AI para adaptá-los para o idioma que desejar.

Pré-Requisitos

  • Devido às restrições de autenticação, o envio diretamente via API está disponível apenas para contas Enterprise.

  • Autentique-se para usar o script.

Siga os passos para autenticar na página de Credenciais de Serviço, para mais detalhes, acesse a documentação da StackSpot EDPn.

Cuidado!

Ative as seguintes permissões:

  • ai_dev and ai_admin.

Entre em contato com o administrador da sua conta se não conseguir criar uma Credencial de Serviço.

  • Copie os campos 'client id', 'client key', e 'realm' para usar como variáveis de ambiente (os dois primeiros devem ser segredos) ou no exemplo curl a parte inferior da página na seção 'como usar'. Você não poderá vê-los novamente.
Atenção!

Se você perder alguma delas, revogue a credencial e crie uma nova.

  • Os exemplos a seguir consideram que o token de acesso está definido como a variável de ambiente JWT. Você pode extrair isso da autenticação curl com o comando jq para obter o valor para a chave access_token do JSON retornado, depois salvá-lo como uma variável de ambiente usando o comando export, como:
export JWT=$(curl -s "https://idm.stackspot.com/$REALM/oidc/oauth/token" -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=client_credentials' -d "client_id=$CLIENT_ID" -d "client_secret=$CLIENT_KEY" | jq -r '.access_token')

Criar um Knowledge Source via API

Siga os passos:

Passo 1. Execute o comando para criar o KS:

curl -s -X POST "https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources" -H "Authorization: Bearer $JWT" -H 'Content-Type: application/json' -d '{"slug": "<KS identifier in API>", "name": "<display name>", "description": "<more details about KS>", "type": "<one of API, SNIPPET or CUSTOM>"}'

Passo 2. Acesse o Portal da StackSpot AI.

  • Acesse a seção ‘Knowledge Sources’ no menu principal e procure pelo que você acabou de criar.

Fazer Upload de arquivos para um Knowledge Source existente

Atenção!

Ao adicionar novos arquivos a um Knowledge Source, o limite é de 10 MiB.

Você pode fazer o upload de um ou mais arquivos para uma Knowledge Source existente. Também é possível escolher fazer o upload de um arquivo zip. Siga os passos para realizar isso.

Cuidado!

Você precisa ter criado previamente um Knowledge Source aqui. Se ainda não criou, crie um agora.

Passo 1. Execute o seguinte script para iniciar o processo de upload:

upload_data=$(curl -X POST 'https://genai-code-buddy-api.stackspot.com/v1/file-upload/form' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $JWT" \
-d '{"file_name": "<desired file's name>", "target_id": "<KS slug>", "target_type": "KNOWLEDGE_SOURCE", "expiration": 600 }')

echo -n 'file upload id = '
echo "$upload_data" | jq -r '.id'

curl -X POST "$(echo "$upload_data" | jq -r '.url')" \
-F "key=$(echo "$upload_data" | jq -r '.form.key')" \
-F "x-amz-algorithm=$(echo "$upload_data" | jq -r '.form["x-amz-algorithm"]')" \
-F "x-amz-credential=$(echo "$upload_data" | jq -r '.form["x-amz-credential"]')" \
-F "x-amz-date=$(echo "$upload_data" | jq -r '.form["x-amz-date"]')" \
-F "x-amz-security-token=$(echo "$upload_data" | jq -r '.form["x-amz-security-token"]')" \
-F "policy=$(echo "$upload_data" | jq -r '.form.policy')" \
-F "x-amz-signature=$(echo "$upload_data" | jq -r '.form["x-amz-signature"]')" \
-F "file=@'<absolute path to desired file>'"

Passo 2. Para verificar o status do upload, execute o comando:

curl --location 'https://genai-code-buddy-api.stackspot.com/v1/file-upload/@<file upload id>' \
--header 'Authorization: Bearer $JWT'

Passo 3. Acesse o portal da StackSpot AI

Passo 4. No menu principal, clique em ‘Knowledge Sources’ e depois verifique se o seu Knowledge Source possui novos objetos.

Fazer upload de conteúdo standalone para um Knowledge Source existente

Atenção!

Você precisa ter criado previamente um Knowledge Source aqui. Se ainda não criou, crie um neste momento.

Apenas os tipos de KS mencionados suportam esse upload.

Snippet

curl -L 'https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/snippets' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $JWT" \
-d '{
"use_case": "<description>",
"code": "<content>",
"language": "<one of sql, csp, freemarker2, systemverilog, sb, scheme, groovy, postiats, sol, mips, twig, php, aes, coffeescript, json, ocaml, sparql, xml, powershell, haskell, rust, scala, plaintext, octave, abap, lua, shell, less, r, yaml, fortran, bat, cobol, hcl, msdax, graphql, qsharp, objective-c, bicep, st, cpp, css, redis, javascript, julia, apex, dart, pug, markdown, flow9, sbcl, pascal, kotlin, c, csharp, pascaligo, scss, go, swift, proto, typescript, liquid, m3, razor, html, lexon, java, azcli, tcl, fsharp, ruby, vb, python, cameligo, ini, clojure, ada, elixir, restructuredtext, dockerfile, handlebars, racket, ecl, pla, perl, erlang, powerquery, verilog, d>"
}'

Personalizado

curl -L 'https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/custom' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $JWT" \
-d '{"content": "<content>"}'

Apagar Knowledge Sources Objects

Todos os Arquivos

Se você deseja apagar todos os Knowledge Source Objects, execute no seu terminal:

curl -s -X DELETE "https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/objects" -H "Authorization: Bearer $JWT"

Standalone

Se você deseja excluir apenas o arquivo independente que você adicionou manualmente:

curl -s -X DELETE "https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/objects?standalone=true" -H "Authorization: Bearer $JWT"

Apenas uploads

Para excluir os arquivos zip, execute o seguinte:

curl -s -X DELETE "https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/objects?standalone=false" -H "Authorization: Bearer $JWT"