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.
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.
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çãocurl
com o comandojq
para obter o valor para a chaveaccess_token
do JSON retornado, depois salvá-lo como uma variável de ambiente usando o comandoexport
, 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
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.
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
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"