# 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](#id-1.-klyuch-api-key)
2. [Armazenamento](#id-2.-khranilishe)
3. [Log](#id-3.-log)
4. [Contas](#id-4.-uchetnye-zapisi)
5. [Servidor de IA](#id-5.-ii-server)

## 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:

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcn2NquemwBIg2sr1a7Cuznn7UnutiFVKuMP0VatOn3eohYdHchb2P6ZzjbWKLiHXjo3iXEpizExtwWc1Re-FpbDNCHcL5xkgnXboe_Dx3j4-cIStBOhwqw1MXsisDQL7rw4WHlJQ?key=uiwU7hKhsXZnEihZUEsDW2IP)(Assignment) - Atribuir nova chave;

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd_N-8js0FyzrxL41Nt98rMZiWVzywt4UQr7xGxXKbmMn3bKWuL3tO2yIHh1S9MwESFDIvkkaOi643AdHTBev51GLc-7lCpyDfblTMI5mHniU9sO1lYbhKVrdexjjxwskmGmqRIGQ?key=uiwU7hKhsXZnEihZUEsDW2IP) (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:

<figure><img src="https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-992b3ec50b6467d6b2ba22527526a7ab4df21307%2Funnamed%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

“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:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcksX19BmAGA_M1-s6E21P5ntadj4BJO49TRqpomZmAH3FVRztISXbZhW50cFtBTzyI0Q2OcuKXa8qB0zc4Y71JAtpES-4AcjrI9SWOT-_famgB8kYwA-fQ7SF5pOr0u4bIcOGJ?key=uiwU7hKhsXZnEihZUEsDW2IP" alt=""><figcaption></figcaption></figure>

## 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:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf0LPeW7G3-SrDQhTUUBUWBeHxCNJtfb__GDSkCCCu9oaR3Pr2NbsLtvFqJvAaqHrXMTyPsM8WI5qbEBby5ms3HxLbxpaHCmqNIHyz3ko_SHKJ1DMUoqc-2fbtQHj2a0OfqiTV9?key=uiwU7hKhsXZnEihZUEsDW2IP" alt=""><figcaption></figcaption></figure>

Ao clicar no ícone ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) à 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:

<table data-header-hidden><thead><tr><th width="289"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"Name": "Nova Pasta 1",</p><p>}</p><p>```</p></td><td><p>[</p><p>"guid": "16f94238-ede9-435b-a001-1489b32e7dc2",</p><p>]</p></td></tr></tbody></table>

### 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 | `json</p><p> {</p><p> "id": 1,</p><p> "guid": "4dd6abf4-daa3-45d0-9347-6780c2b46b0c",</p><p> "name": "Pasta de Teste 1",</p><p> "description": "Minha nova pasta de teste",</p><p> "created": "2023-01-29 10:29:25",</p><p> "updated": "2023-01-29 10:44:09",</p><p> "is_deleted": 0,</p><p> "account_id": 1,</p><p> }</p><p>` |

### 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:

<table data-header-hidden><thead><tr><th width="246"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td>/api/folders/list</td><td><p>```json</p><p>[</p><p>{</p><p>"id": 1,</p><p>"guid": "4dd6abf4-daa3-45d0-9347-6780c2b46b0c",</p><p>"name": "Pasta de Teste 1",</p><p>"description": "Minha nova pasta de teste",</p><p>"created": "2023-01-29 10:29:25",</p><p>"updated": "2023-01-29 10:44:09",</p><p>"is_deleted": 0,</p><p>"account_id": 1,</p><p>},</p><p>{</p><p>"id": 2,</p><p>"guid": "4dd6abf4-daa3-45d0-9347-6780c2b46a3c",</p><p>"name": "Pasta de Teste 2",</p><p>"description": "Minha outra nova pasta de teste",</p><p>"created": "2023-10-05 10:59:41",</p><p>"updated": "2023-10-05 10:59:41",</p><p>"is_deleted": 0,</p><p>"account_id": 1,</p><p>}</p><p>]</p><p>```</p></td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="300"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"Guid": "554ab883-1f82-48e1-bb12-5049002e7d70",</p><p>"Name": "Nome da Nova Pasta",</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="320"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"name": "exemplo.txt",</p><p>"name_new": "exemplo_novo.txt",</p><p>"description": "Descrição do arquivo",</p><p>"folder_id": "123e4567-e89b-12d3-a456-426614174000",</p><p>"Metadata": {},</p><p>"file": "conteudo_do_arquivo",</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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 |
| ------------------------------------------------------------- | -------- |
| `json</p><p> {</p><p> "Name": "example.txt",</p><p> }</p><p>` | \[]      |

### 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:

<table data-header-hidden><thead><tr><th width="361"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"file_folder_guid": "123e4567-e89b-12d3-a456-426614174000",</p><p>"type_processing": 0,</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="334"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>[</p><p>"file": "@/path/to/Document.pdf",</p><p>"folder_id=4b5f2f2e-1c8a-4d3c-9b2a-b0f7d9a0a123",</p><p>"metadata":</p><p>{</p><p>"source": "kb",</p><p>"tags": ["policy","2025"]</p><p>}<br>]</p><p>```</p></td><td><p>```json</p><p>{</p><p>"id": 123,</p><p>"object": "file",</p><p>"purpose": "assistants",</p><p>"filename": "Document.pdf",</p><p>"bytes": 1048576,</p><p>"created_at": 1726742400,</p><p>"status": "processed",</p><p>"status_details": "Indexed",</p><p>"tools_type": "retrieval"</p><p>}<br>```</p></td></tr></tbody></table>

### 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                                             |
| -------------------------------------------------------- | ---------------------------------------------------- |
| `json</p><p> {<br> "filename": "example.txt",<br> }<br>` | `json</p><p> {</p><p> "result": "0"</p><p> }</p><p>` |

## 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:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdIIY5-xwiuQCZPPBjvj-3Ptj5o5rlrWeuY_Xnvik6zk3JU1Bfn6ScIQz-l1DzMary3DTuuSaeZW12uJJaKtz3hZkWKBcBtRy8-yrsYxj-N92mTAajC5s85H3FMCyjSR9u1KEt7wg?key=uiwU7hKhsXZnEihZUEsDW2IP" alt=""><figcaption></figcaption></figure>

Na parte inferior, estão as abas com os métodos:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdQda0ERXKGtO4Ko1am7Nokmvf3OP0VbCbk7Unz7A398-zDjJxv9NpnUvjlRV1RBh9K7VPsAe_87fpkjCf5O2CgK6E4_RREdydSLEMOgFrmPKdNFj9idlT_OmICro_Fo6soi-K4Xg?key=uiwU7hKhsXZnEihZUEsDW2IP" alt=""><figcaption></figcaption></figure>

Ao clicar no ícone ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) à 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:

<table data-header-hidden><thead><tr><th width="365"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"RobotGUID": "16f94238-ede9-435b-a001-1489b32e7dc2",</p><p>"ProcessVersionGUID": "c39713ea-d8b9-4669-976e-5ff39677dc64",</p><p>"JobGUID": "70ce211b-3c9a-48f6-8e71-11088b41b825",</p><p>"Level": 1,</p><p>"Message": "no message",</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="288"></th><th></th></tr></thead><tbody><tr><td>Solicitação</td><td>Resposta</td></tr><tr><td>/api/log/read/c39713ea-d8b9-4669-976e-5ff39677dc64</td><td><p>```json</p><p>{</p><p>"id": "1",</p><p>"guid": "16f94238-ede9-435b-a001-1489b32e7dc2",</p><p>"robot_id": "16",</p><p>"process_version_id": "39",</p><p>"job_id": "70",</p><p>"Level": 1,</p><p>"Message": "no message",</p><p>"created_at": "2023-09-17 15:39:06",</p><p>"updated_at": "2023-09-17 16:39:06",</p><p>}</p><p>```</p></td></tr></tbody></table>

### 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 |
| ------------------------------------------------------------ | -------- |
| `json</p><p> {</p><p> "Time": "1590481487",</p><p> }</p><p>` | \[]      |

## 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:

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdDTSQXe5IoyrHUS52Td2gzmMKdi7mr_ku4yvJDZtzP7bGwr5mC2JBqSL9GtVGX1hC4Qwa42ksS6gTqYOhQznfWUTVOd2mO6uPYDIqBPmXB4ou9r4PCRcWiDtkI_Rldm-y_JYOX7w?key=uiwU7hKhsXZnEihZUEsDW2IP" alt=""><figcaption></figcaption></figure>

Ao clicar no ícone ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) à 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 | | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | |

  `json</p><p> {</p><p> "Login": "Nova Conta de Teste",</p><p> "Password": "newPassword123",</p><p> }</p><p>`

  \| \["guid": "c39713ea-d8b9-4669-976e-5ff39677dc64"] |

### 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 | `json</p><p> {</p><p> "id": "5",</p><p> "guid": "554ab883-1f82-48e1-bb12-5049002e7d70",</p><p> "login": "nova Conta",</p><p> "password": "123455678",</p><p> "first name": "Vasya",</p><p> "last name": "Ivanov",</p><p> }</p><p>` |

### 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 |
| ------------------------------------------------------------------------------------------------------------------------- | -------- |
| `json</p><p> {</p><p> "Guid": "554ab883-1f82-48e1-bb12-5049002e7d70", </p><p> "Login": "Conta de Teste",</p><p> }</p><p>` | \[]      |

### 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.

<figure><img src="https://1245874961-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fti2Raw08aYi0Vr2rkcD9%2Fuploads%2Fgit-blob-988c60ee563f3bc59622e17c5627506f0740b55f%2F%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%20(540).png?alt=media" alt=""><figcaption></figcaption></figure>

Ao clicar no ícone ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) à 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:

<table data-header-hidden><thead><tr><th width="357"></th><th></th></tr></thead><tbody><tr><td>Requisição</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"text_chunk": "Bloco de texto",</p><p>"guid_file": "123e4567-e89b-12d3-a456-426614174000",</p><p>"metadata": {},</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="357"></th><th></th></tr></thead><tbody><tr><td>Requisição</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"text_for_search": "exemplo de texto",</p><p>"n_top": 5,</p><p>"files_ids": "[\"123e4567-e89b-12d3-a456-426614174000\", \"123e4567-e89b-12d3-a456-426614174001\"]",</p><p>"folder_ids": "[\"123e4567-e89b-12d3-a456-426614174002\", \"123e4567-e89b-12d3-a456-426614174003\"]",</p><p>"enable_subfolders": 1</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="364"></th><th></th></tr></thead><tbody><tr><td>Requisição</td><td>Resposta</td></tr><tr><td><p>```json</p><p>{</p><p>"messages": [</p><p>{</p><p>"content": "Olá, como você está?",</p><p>"role": "user",</p><p>"name": "Ivan"</p><p>},</p><p>{</p><p>"content": "Tudo bem, obrigado!",</p><p>"role": "system",</p><p>"name": "Sistema"</p><p>}</p><p>]</p><p>"model": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct",</p><p>"temperature": 0.7,</p><p>"assistant_id": "123e4567-e89b-12d3-a456-426614174000",</p><p>"thread_id": 200</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 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:

  <table data-header-hidden><thead><tr><th width="255"></th><th></th></tr></thead><tbody><tr><td>Requisição</td><td>Resposta</td></tr><tr><td>/api/threads/models</td><td><code>json&#x3C;/p>&#x3C;p> {&#x3C;/p>&#x3C;p> "object": "list",&#x3C;/p>&#x3C;p> "data": [&#x3C;/p>&#x3C;p> {&#x3C;/p>&#x3C;p> "id": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct", &#x3C;/p>&#x3C;p> "object": "model",&#x3C;/p>&#x3C;p> "created": 1735113788,&#x3C;/p>&#x3C;p> "owned_by": "vllm",&#x3C;/p>&#x3C;p> "root": "/model-store/meta-llama/Meta-Llama-3-8B-Instruct",&#x3C;/p>&#x3C;p> "parent": null,&#x3C;/p>&#x3C;p> "permission": [&#x3C;/p>&#x3C;p> {&#x3C;/p>&#x3C;p> "id": "modelperm-d7ddf889e9aa423b9949d1cdc551ff21",&#x3C;/p>&#x3C;p> "object": "model_permission",&#x3C;/p>&#x3C;p> "created": 1735113788,&#x3C;/p>&#x3C;p> "allow_create_engine": false,&#x3C;/p>&#x3C;p> "allow_sampling": true,&#x3C;/p>&#x3C;p> "allow_logprobs": true,&#x3C;/p>&#x3C;p> "allow_search_indices": false,&#x3C;/p>&#x3C;p> "allow_view": true,&#x3C;/p>&#x3C;p> "allow_fine_tuning": false,&#x3C;/p>&#x3C;p> "organization": "*",&#x3C;/p>&#x3C;p> "group": null,&#x3C;/p>&#x3C;p> "is_blocking": false&#x3C;/p>&#x3C;p> }&#x3C;/p>&#x3C;p> ]&#x3C;/p>&#x3C;p> }&#x3C;/p>&#x3C;p> ]&#x3C;/p>&#x3C;p> }&#x3C;/p>&#x3C;p></code></td></tr></tbody></table>

### 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:

<table data-header-hidden><thead><tr><th width="249"></th><th></th></tr></thead><tbody><tr><td>Requisição</td><td>Resposta</td></tr><tr><td>/api/threads/getUpdates?assistant_id=123e4567-e89b-12d3-a456-426614174000&#x26;offset=0&#x26;thread_id=221</td><td><p>```json</p><p>{</p><p>"error": "Erro de licenciamento: licença ausente, expirada, não ativada ou limites atingidos"</p><p>}</p><p>ou</p><p>{</p><p>"result": 1,</p><p>"data": [</p><p>{</p><p>"id": "1195",</p><p>"content": "{\"type\":\"text\",\"text\":{\"value\":\"olá\",\"annotations\":[]}}",</p><p>"account_id": "1",</p><p>"is_deleted": "0",</p><p>"role": "user",</p><p>"thread_id": "221",</p><p>"created": "2024-09-11 09:08:48",</p><p>"updated": "2024-09-11 09:08:48",</p><p>"assistant_id":"123e4567-e89b-12d3-a456-426614174000",</p><p>"info": "{\"TestPrm\":\"TestData\"}",</p><p>"folder_id": "[]",</p><p>"file_id": "[]",</p><p>"update_id": null</p><p>},</p><p>{</p><p>"id": "1196",</p><p>"thread_id": "221",</p><p>"created": "2024-09-11 09:08:49",</p><p>"updated": "2024-09-11 09:08:49",</p><p>"content": "{\"type\":\"text\",\"text\":{\"value\":\"Olá! Estou feliz em vê-lo! Como posso ajudá-lo hoje?\",\"annotations\":[]}}",</p><p>"role": "assistant",</p><p>"account_id": "1",</p><p>"is_deleted": "0",</p><p>"folder_id": null,</p><p>"file_id": null,</p><p>"update_id": null</p><p>}</p><p>]</p><p>}</p><p>```</p></td></tr></tbody></table>

### 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                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `json</p><p>{<br> "thread_id": 200,<br> "role": "assistant",<br> "content": "Olá! Como posso ajudá-lo hoje?",<br> "file_id": [101, 102],<br> "folder_id": [201, 202],</p><p> "info": ""<br>}<br>` | `json</p><p> [</p><p> "result": 1,<br> "data": {<br> "message_id": 1234,</p><p> "thread_id": 200,<br> "file_id": [101, 102],<br> "folder_id": [201, 202],</p><p> "info": ""<br> }</p><p> ]</p><p>` |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-ai/sherpa-ai-server/rabota-v-sherpa-ai-server/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
