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 Knowledge Source Objects 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.
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"
Apenas arquivos removidos do upload zip anterior
Existe uma sinalização ao enviar um arquivo zip via API para o seu Knowledge Source que permite a limpeza de arquivos que foram removidos do arquivo anterior.
Ativando a flag de exclusão
Ao chamar o endpoint, adicione o parâmetro de consulta auto-delete
com o valor true
.
curl -s -X POST "https://genai-code-buddy-api.stackspot.com/v1/knowledge-sources/<KS slug>/objects/batch?auto-delete=true" -H "Authorization: Bearer $JWT" -F 'objects_zip=@"<your zip file path>"'