API#
Para integração com sistemas externos (se necessário), o Sherpa AI Server oferece um conjunto de ferramentas para troca de dados via API.
A seção "API" é um guia sobre os métodos de API disponíveis no formato Swagger. Nesta seção, estão apresentadas as seguintes abas:
1. Chave (API Key)#
Nesta seção, o usuário pode ver sua chave de acesso única à API no campo Chave. Além disso, ao alterar este campo, é necessário confirmar a ação pressionando um dos botões:
(Assignment) - Atribuir nova chave;
(Refresh) - Atualizar chave atual.
Abaixo está o campo informativo "Authorization", que é usado para fornecer o token de acesso, confirmando que o Usuário tem permissão para executar a ação solicitada.
Exemplo:
.png)
“Bearer” — tipo de token,
“Y2Y5M2U3OGUtMDk1ZC00MGNjLTkwNWUtZTYyNjUwM_______” — o próprio token que o servidor usará para identificar o Usuário.
As solicitações à API devem incluir obrigatoriamente a chave da API, que é armazenada nas configurações da Conta. Exemplos detalhados de solicitações são apresentados na seção de cada bloco separadamente.
Códigos de resposta:
2. Armazenamento#
Permite gerenciar o Armazenamento. O usuário pode criar novas pastas e arquivos, obter informações sobre pastas e arquivos, atualizar informações sobre pastas e arquivos, bem como excluir pastas e arquivos.
Nesta página, estão as abas com os métodos:
Ao clicar no ícone à direita do método desejado, a página correspondente é exibida:
1. Criação de nova pasta#
- Endpoint: /api/folders/create
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- Name: Nome da nova pasta;
- Description: Descrição para a nova pasta.
- Exemplo:
| Solicitação | Resposta |
```json { "Name": "Nova Pasta 1", } ``` | [ "guid": "16f94238-ede9-435b-a001-1489b32e7dc2", ] |
2. Obtenção de informações sobre a pasta por GUID#
- Endpoint: /api/folders/read/{guid}
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- Guid (obrigatório): Guid da nova pasta.
- Exemplo:
| Solicitação | Resposta |
|---|---|
| /api/folders/read/4dd6abf4-daa3-45d0-9347-6780c2b46b0c |
|
3. Obtenção da lista de pastas relacionadas ao GUID#
- Endpoint: /api/folders/list
- Método: GET;
- Autorização: obrigatória;
- Parâmetros: nenhum;
- Exemplo:
| Solicitação | Resposta |
| /api/folders/list | ```json [ { "id": 1, "guid": "4dd6abf4-daa3-45d0-9347-6780c2b46b0c", "name": "Pasta de Teste 1", "description": "Minha nova pasta de teste", "created": "2023-01-29 10:29:25", "updated": "2023-01-29 10:44:09", "is_deleted": 0, "account_id": 1, }, { "id": 2, "guid": "4dd6abf4-daa3-45d0-9347-6780c2b46a3c", "name": "Pasta de Teste 2", "description": "Minha outra nova pasta de teste", "created": "2023-10-05 10:59:41", "updated": "2023-10-05 10:59:41", "is_deleted": 0, "account_id": 1, } ] ``` |
4. Atualização de informações sobre a pasta por GUID#
- Endpoint: /api/folders/update
- Método: PUT;
- Autorização: obrigatória;
- Parâmetros:
- Guid (obrigatório): Guid da pasta;
- Name: Nome da nova pasta;
- Description: Descrição para a nova pasta.
- Exemplo:
| Solicitação | Resposta |
```json { "Guid": "554ab883-1f82-48e1-bb12-5049002e7d70", "Name": "Nome da Nova Pasta", } ``` | [] |
5. Criação de novo arquivo#
- Endpoint: /api/files/create
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- name (obrigatório): Nome do arquivo;
- name_new (obrigatório): Novo nome do arquivo;
- description (obrigatório): Descrição do arquivo;
- folder_id (obrigatório): GUID ou caminho para a pasta onde o arquivo será adicionado;
- Metadata (obrigatório): Metadados do arquivo;
- file (obrigatório): Arquivo em formato binário, ou em codificações Base16 / Base32.
- Exemplo:
| Solicitação | Resposta |
```json { "name": "exemplo.txt", "name_new": "exemplo_novo.txt", "description": "Descrição do arquivo", "folder_id": "123e4567-e89b-12d3-a456-426614174000", "Metadata": {}, "file": "conteudo_do_arquivo", } ``` | [] |
6. Obtenção de informações sobre o arquivo por GUID#
- Endpoint: /api/files/read/{guid}
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- Name (obrigatório): Nome do novo arquivo.
- Exemplo:
| Solicitação | Resposta | | --------------------------------------------------------------------------------- | ------ ||
json</p><p> {</p><p> "Name": "example.txt",</p><p> }</p><p>
7. Atualização de informações do arquivo por GUID#
- Endpoint: /api/files/update
- Método: PUT;
- Autorização: obrigatória;
- Parâmetros:
- Name (obrigatório): Nome do novo arquivo;
- folder_guid: ID da pasta onde o arquivo deve ser adicionado;
- file: Arquivo em formato binário, ou em codificações Base16 / Base32;
- Exemplo:
| Solicitação | Resposta |
|---|---|
|
[] |
8. Exclusão de arquivo/pasta#
- Endpoint: /api/files/delete
- Método: DELETE;
- Autorização: obrigatória;
- Parâmetros:
- file_folder_guid (obrigatório): GUID ou caminho para o arquivo ou pasta;
- type_processing (obrigatório): Tipo de processamento. Valores possíveis:
0 = Auto, 1 = File, 2 = Directory.
- Exemplo:
| Solicitação | Resposta |
```json { "file_folder_guid": "123e4567-e89b-12d3-a456-426614174000", "type_processing": 0, } ``` | [] |
9. Upload de arquivo#
- Endpoint: /api/files/uploadfile
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- file (obrigatório): Arquivo para upload;
- folder_id: ID da pasta onde o arquivo deve ser adicionado;
- metadata: Metadados do arquivo.
- Exemplo:
| Solicitação | Resposta |
```json [ "file": "@/path/to/Document.pdf", "folder_id=4b5f2f2e-1c8a-4d3c-9b2a-b0f7d9a0a123", "metadata": { "source": "kb", "tags": ["policy","2025"] } ``` | ```json { "id": 123, "object": "file", "purpose": "assistants", "filename": "Document.pdf", "bytes": 1048576, "created_at": 1726742400, "status": "processed", "status_details": "Indexed", "tools_type": "retrieval" } |
10. Download de arquivo por GUID#
- Endpoint: /api/files/download/{guid}
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- filename (obrigatório): Nome do arquivo.
- Exemplo:
| Solicitação | Resposta |
|---|---|
|
|
3. Log#
Permite gerenciar Logs. O usuário pode criar um novo Log, obter informações sobre o Log, atualizar informações sobre o Log, bem como excluir o Log.
Na parte superior da página, há uma tabela com todos os níveis de Log:
Na parte inferior, estão as abas com os métodos:
Ao clicar no ícone à direita do método desejado, a página correspondente é exibida:
1. Criação de Log#
- Endpoint: /api/log/create
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- RobotGUID: GUID do Robô;
- ProcessVersionGUID: GUID da versão do Processo;
- JobGUID: GUID do Trabalho;
- Level: nível de Log;
Message (obrigatório): texto do Log.
- Exemplo:
| Solicitação | Resposta |
```json { "RobotGUID": "16f94238-ede9-435b-a001-1489b32e7dc2", "ProcessVersionGUID": "c39713ea-d8b9-4669-976e-5ff39677dc64", "JobGUID": "70ce211b-3c9a-48f6-8e71-11088b41b825", "Level": 1, "Message": "no message", } ``` | [] |
2. Obtenção de informações sobre o Log por GUID#
- Endpoint: /api/log/read/{guid}
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- Guid (obrigatório): Guid do Log.
- Exemplo:
| Solicitação | Resposta |
| /api/log/read/c39713ea-d8b9-4669-976e-5ff39677dc64 | ```json { "id": "1", "guid": "16f94238-ede9-435b-a001-1489b32e7dc2", "robot_id": "16", "process_version_id": "39", "job_id": "70", "Level": 1, "Message": "no message", "created_at": "2023-09-17 15:39:06", "updated_at": "2023-09-17 16:39:06", } ``` |
3. Obtenção da lista de arquivos relacionados ao GUID#
- Endpoint: /api/log/list
- Método: POST;
- Autorização: obrigatória;
- Parâmetros: nenhum.
- Exemplo:
| Solicitação | Resposta |
|---|---|
| /api/log/list | [] |
4. Exclusão de Logs pertencentes à conta atual e criados antes do tempo selecionado#
- Endpoint: /api/log/purge
- Método: DELETE;
- Autorização: obrigatória;
- Parâmetros:
- Time (obrigatório): timestamp em formato Unix (Unix timestamp);
- Exemplo:
| Solicitação | Resposta |
|---|---|
|
[] |
4. Contas#
Permite gerenciar Contas. O usuário pode criar uma nova Conta, obter informações sobre a Conta, atualizar informações sobre a Conta, bem como excluir a Conta.
Nesta página, há abas com os métodos:
Ao clicar no ícone à direita do método desejado, a página correspondente é exibida:
- Endpoint: /api/account/create
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- Login (obrigatório) — Login para a nova Conta;
- Password (obrigatório) — Senha para a nova Conta;
- FirstName — Nome para a nova Conta;
- LastName — Sobrenome para a nova Conta;
- Email — E-mail para a nova Conta;
- Phone — Telefone para a nova Conta;
- Company — Empresa para a nova Conta;
- Department — Departamento para a nova Conta.
- Exemplo:| Requisição | Resposta |
| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
|
| ["guid": "c39713ea-d8b9-4669-976e-5ff39677dc64"] |json</p><p> {</p><p> "Login": "Nova Conta de Teste",</p><p> "Password": "newPassword123",</p><p> }</p><p>
2. Obtenção de informações da Conta pelo GUID#
- Endpoint: /api/account/read/{guid}
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- GUID (obrigatório): GUID da Conta.
- Exemplo:
| Requisição | Resposta |
|---|---|
| /api/account/read/c39713ea-d8b9-4669-976e-5ff39677dc64 | |
3. Atualização de informações da Conta pelo GUID#
- Endpoint: /api/account/update
- Método: PUT;
- Autorização: obrigatória;
- Parâmetros:
- Guid (obrigatório) — GUID da Conta a ser atualizada;
- Login — Login da Conta a ser atualizada;
- Password — Senha da Conta a ser atualizada;
- FirstName — Nome na Conta a ser atualizado;
- LastName — Sobrenome da Conta a ser atualizado;
- Email — E-mail da Conta a ser atualizado;
- Phone — Telefone na Conta a ser atualizado;
- Company — Empresa da Conta a ser atualizada;
- Department — Departamento da Conta a ser atualizado.
- Exemplo:
| Requisição | Resposta |
|---|---|
|
[] |
4. Exclusão da Conta pelo GUID#
- Endpoint: /api/account/delete/{guid}
- Método: DELETE;
- Autorização: obrigatória;
- Parâmetros:
- Guid (obrigatório): Guid da Conta;
- Exemplo:
| Requisição | Resposta |
|---|---|
| /api/account/delete/554ab883-1f82-48e1-bb12-5049002e7d70 | [] |
5. Servidor de IA#
Permite gerenciar redes neurais. O usuário pode enviar um objeto JSON e receber uma resposta da rede neural, obter informações sobre o modelo atualmente utilizado, receber uma resposta do Assistente ou enviar uma mensagem no chat.
.png)
Ao clicar no ícone à direita do método desejado, a página correspondente é exibida:
1. Adição de blocos de texto a um arquivo existente#
- Endpoint: /api/files/addchunk
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- text_chunk (obrigatório): Bloco de texto;
- guid_file (obrigatório): GUID do arquivo ou caminho para o arquivo;
- metadata (obrigatório): Metadados do bloco.
- Exemplo:
| Requisição | Resposta |
```json { "text_chunk": "Bloco de texto", "guid_file": "123e4567-e89b-12d3-a456-426614174000", "metadata": {}, } ``` | [] |
2. Encontrar embeddings para um texto fornecido#
- Endpoint: /api/files/search
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- text_for_search (obrigatório): Texto para busca;
- n_top (obrigatório): Número de resultados principais;
- files_ids (obrigatório): String JSON com a lista de GUID ou caminhos para arquivos;
- folder_ids (obrigatório): String JSON com a lista de GUID ou caminhos para pastas;
- enable_subfolders (obrigatório): Habilitar subpastas. Valores possíveis: 0 = Falso, 1 = Verdadeiro.
- Exemplo:
| Requisição | Resposta |
```json { "text_for_search": "exemplo de texto", "n_top": 5, "files_ids": "[\"123e4567-e89b-12d3-a456-426614174000\", \"123e4567-e89b-12d3-a456-426614174001\"]", "folder_ids": "[\"123e4567-e89b-12d3-a456-426614174002\", \"123e4567-e89b-12d3-a456-426614174003\"]", "enable_subfolders": 1 } ``` | [] |
3. Obtenção de resposta da rede neural#
- Endpoint: /api/threads/message
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- messages (obrigatório): Array de objetos, cada um representando uma mensagem;
- content: Texto da mensagem;
- role: Papel do remetente da mensagem. Valores possíveis: system, user;
- name: Nome do remetente da mensagem;
- temperature: Número de ponto flutuante que determina o grau de aleatoriedade nas respostas da rede neural. Valor padrão: 0.7;
- model (obrigatório): String que indica o caminho para o modelo, por exemplo, /model-store/meta-llama/Meta-Llama-3-8B-Instruct;
- assistant_id: Identificador do assistente;
- thread_id: Identificador do chat;
- info: Informações do sistema.
- Exemplo:
| Requisição | Resposta |
```json { "messages": [ { "content": "Olá, como você está?", "role": "user", "name": "Ivan" }, { "content": "Tudo bem, obrigado!", "role": "system", "name": "Sistema" } ] "model": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct", "temperature": 0.7, "assistant_id": "123e4567-e89b-12d3-a456-426614174000", "thread_id": 200 } ``` | [] |
4. Obtenção de informações sobre o modelo atualmente utilizado#
- Endpoint: /api/threads/models
- Método: GET;
- Autorização: obrigatória;
- Parâmetros: nenhum.
- Exemplo:
Requisição Resposta /api/threads/models json</p><p> {</p><p> "object": "list",</p><p> "data": [</p><p> {</p><p> "id": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct", </p><p> "object": "model",</p><p> "created": 1735113788,</p><p> "owned_by": "vllm",</p><p> "root": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct",</p><p> "parent": null,</p><p> "permission": [</p><p> {</p><p> "id": "modelperm-d7ddf889e9aa423b9949d1cdc551ff21",</p><p> "object": "model_permission",</p><p> "created": 1735113788,</p><p> "allow_create_engine": false,</p><p> "allow_sampling": true,</p><p> "allow_logprobs": true,</p><p> "allow_search_indices": false,</p><p> "allow_view": true,</p><p> "allow_fine_tuning": false,</p><p> "organization": "*",</p><p> "group": null,</p><p> "is_blocking": false</p><p> }</p><p> ]</p><p> }</p><p> ]</p><p> }</p><p>
5. Recebendo mensagem do Assistente#
- Endpoint: /api/threads/getUpdates
- Método: GET;
- Autorização: obrigatória;
- Parâmetros:
- assistant_id (obrigatório): Identificador do assistente;
- offset: Identificador da mensagem a partir da qual é necessário obter a lista de mensagens;
- thread_id (obrigatório): Identificador do chat.
- Exemplo:
| Requisição | Resposta |
| /api/threads/getUpdates?assistant_id=123e4567-e89b-12d3-a456-426614174000&offset=0&thread_id=221 | ```json { "error": "Erro de licenciamento: licença ausente, expirada, não ativada ou limites atingidos" }
ou
{ "result": 1, "data": [ { "id": "1195", "content": "{\"type\":\"text\",\"text\":{\"value\":\"olá\",\"annotations\":[]}}", "account_id": "1", "is_deleted": "0", "role": "user", "thread_id": "221", "created": "2024-09-11 09:08:48", "updated": "2024-09-11 09:08:48", "assistant_id":"123e4567-e89b-12d3-a456-426614174000", "info": "{\"TestPrm\":\"TestData\"}", "folder_id": "[]", "file_id": "[]", "update_id": null }, { "id": "1196", "thread_id": "221", "created": "2024-09-11 09:08:49", "updated": "2024-09-11 09:08:49", "content": "{\"type\":\"text\",\"text\":{\"value\":\"Olá! Estou feliz em vê-lo! Como posso ajudá-lo hoje?\",\"annotations\":[]}}", "role": "assistant", "account_id": "1", "is_deleted": "0", "folder_id": null, "file_id": null, "update_id": null } ] } ``` |
6. Enviando mensagem no chat#
- Endpoint: /api/threads/chat
- Método: POST;
- Autorização: obrigatória;
- Parâmetros:
- thread_id (obrigatório): Identificador do chat;
- role (obrigatório): Papel do remetente da mensagem (por exemplo, assistant);
- content (obrigatório): Texto da mensagem;
- assistant_id: Identificador do assistente;
- model_id: Identificador do grupo de modelos;
- temperature: Número de ponto flutuante que determina o grau de aleatoriedade nas respostas da rede neural. Valor padrão: 0.7;
- prompt: Contexto inicial ou instrução para o modelo;
- title: Título do chat;
- file_id: Lista de IDs de arquivos anexados à mensagem (array JSON);
- folder_id: Lista de IDs de pastas (ou objetos com id) anexados à mensagem (array JSON),
- info: Informação do sistema.
- Exemplo:
| Requisição | Resposta |
|---|---|
|
|