# API

Para la integración con sistemas externos (si es necesario), Sherpa AI Server ofrece un conjunto de herramientas para el intercambio de datos a través de la API.

La sección "API" es un manual de los métodos de API disponibles en formato Swagger. En esta sección se presentan las siguientes pestañas:

1. [Clave](#id-1.-clave-api-key)
2. [Almacenamiento](#id-2.-almacenamiento)
3. [Registro](#id-3.-registro)
4. [Cuentas](#id-4.-cuentas)
5. [Servidor IA](#id-5.-servidor-ia)

## 1. Clave (API Key)

En esta sección, el usuario puede ver su clave de acceso única a la API en el campo Clave. También al cambiar este campo es necesario confirmar la acción presionando uno de los botones:

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcn2NquemwBIg2sr1a7Cuznn7UnutiFVKuMP0VatOn3eohYdHchb2P6ZzjbWKLiHXjo3iXEpizExtwWc1Re-FpbDNCHcL5xkgnXboe_Dx3j4-cIStBOhwqw1MXsisDQL7rw4WHlJQ?key=uiwU7hKhsXZnEihZUEsDW2IP)(Asignación) - Asignar nueva clave;

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd_N-8js0FyzrxL41Nt98rMZiWVzywt4UQr7xGxXKbmMn3bKWuL3tO2yIHh1S9MwESFDIvkkaOi643AdHTBev51GLc-7lCpyDfblTMI5mHniU9sO1lYbhKVrdexjjxwskmGmqRIGQ?key=uiwU7hKhsXZnEihZUEsDW2IP) (Actualizar) - Actualizar clave actual.

A continuación se encuentra el campo informativo "Authorization", que se utiliza para proporcionar un token de acceso, confirmando que el Usuario tiene derecho a realizar la acción solicitada.

Ejemplo:

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

“Bearer” — tipo de token,

“Y2Y5M2U3OGUtMDk1ZC00MGNjLTkwNWUtZTYyNjUwM\_\_\_\_\_\_\_” — el token en sí, que el servidor utilizará para identificar al Usuario.

Las solicitudes a la API se realizan con la transmisión obligatoria de la Clave API, que se almacena en la configuración de la Cuenta. Ejemplos detallados de solicitudes se presentan en la sección de cada bloque por separado.

Códigos de respuesta:

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

## 2. Almacenamiento

Permite gestionar el Almacenamiento. El usuario puede crear nuevas carpetas y archivos, obtener información sobre carpetas y archivos, actualizar información sobre carpetas y archivos, así como eliminar carpetas y archivos.

En esta página se encuentran pestañas con métodos:

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

Al hacer clic en el ícono ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) a la derecha del método deseado, se despliega la página correspondiente:

### 1. Creación de nueva carpeta

* Endpoint: /api/folders/create
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * Nombre: Nombre de la nueva carpeta;
  * Descripción: Descripción para la nueva carpeta.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="289"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"Name": "Nueva Carpeta 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. Obtención de información sobre la carpeta por GUID

* Endpoint: /api/folders/read/{guid}
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * Guid (obligatorio): Guid de la nueva carpeta.
* Ejemplo:

| Solicitud                                              | Respuesta                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /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": "Carpeta de Prueba 1",</p><p> "description": "Mi nueva carpeta de prueba",</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. Obtención de lista de carpetas relacionadas con GUID

* Endpoint: /api/folders/list
* Método: GET;
* Autorización: obligatoria;
* Parámetros: ninguno;
* Ejemplo:

<table data-header-hidden><thead><tr><th width="246"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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": "Carpeta de Prueba 1",</p><p>"description": "Mi nueva carpeta de prueba",</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": "Carpeta de Prueba 2",</p><p>"description": "Mi otra nueva carpeta de prueba",</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. Actualización de información sobre la carpeta por GUID

* Endpoint: /api/folders/update
* Método: PUT;
* Autorización: obligatoria;
* Parámetros:
  * Guid (obligatorio): Guid de la carpeta;
  * Nombre: Nombre de la nueva carpeta;
  * Descripción: Descripción para la nueva carpeta.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="300"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"Guid": "554ab883-1f82-48e1-bb12-5049002e7d70",</p><p>"Name": "Nombre de Nueva Carpeta",</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 5. Creación de nuevo archivo

* Endpoint: /api/files/create
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * name (obligatorio): Nombre del archivo;
  * name\_new (obligatorio): Nuevo nombre del archivo;
  * description (obligatorio): Descripción del archivo;
  * folder\_id (obligatorio): GUID o ruta a la carpeta donde se añadirá el archivo;
  * Metadata (obligatorio): Metadatos del archivo;
  * file (obligatorio): Archivo en formato binario, o en codificaciones Base16 / Base32.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="320"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"name": "example.txt",</p><p>"name_new": "example_new.txt",</p><p>"description": "Descripción del archivo",</p><p>"folder_id": "123e4567-e89b-12d3-a456-426614174000",</p><p>"Metadata": {},</p><p>"file": "contenido_archivo",</p><p>}</p><p>```</p></td><td>[]</td></tr></tbody></table>

### 6. Obtención de información sobre el archivo por GUID

* Endpoint: /api/files/read/{guid}
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * Nombre (obligatorio): Nombre del nuevo archivo.
* Ejemplo:

\| Solicitud | Respuesta | | --------------------------------------------------------------------------------- | ------ ||

`json</p><p> {</p><p> "Name": "example.txt",</p><p> }</p><p>`

\| \[] |

### 7. Actualización de información del archivo por GUID

* Endpoint: /api/files/update
* Método: PUT;
* Autorización: obligatoria;
* Parámetros:
  * Name (obligatorio): Nombre del nuevo archivo;
  * folder\_guid: ID de la carpeta donde se debe agregar el archivo;
  * file: Archivo en formato binario, o en codificaciones Base16 / Base32;
* Ejemplo:

| Solicitud                                                     | Respuesta |
| ------------------------------------------------------------- | --------- |
| `json</p><p> {</p><p> "Name": "example.txt",</p><p> }</p><p>` | \[]       |

### 8. Eliminación de archivo/carpeta

* Endpoint: /api/files/delete
* Método: DELETE;
* Autorización: obligatoria;
* Parámetros:
  * file\_folder\_guid (obligatorio): GUID o ruta al archivo o carpeta;
  * type\_processing (obligatorio): Tipo de procesamiento. Valores posibles:\
    0 = Auto, 1 = Archivo, 2 = Directorio.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="361"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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. Carga de archivo

* Endpoint: /api/files/uploadfile
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * file (obligatorio): Archivo para cargar;
  * folder\_id: ID de la carpeta donde se debe agregar el archivo;
  * metadata: Metadatos del archivo.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="334"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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. Descarga de archivo por GUID

* Endpoint: /api/files/download/{guid}
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * filename (obligatorio): Nombre del archivo.
* Ejemplo:

| Solicitud                                                | Respuesta                                            |
| -------------------------------------------------------- | ---------------------------------------------------- |
| `json</p><p> {<br> "filename": "example.txt",<br> }<br>` | `json</p><p> {</p><p> "result": "0"</p><p> }</p><p>` |

## 3. Registro

Permite gestionar los Registros. El usuario puede crear un nuevo Registro, obtener información sobre el Registro, actualizar la información del Registro y eliminar el Registro.

En la parte superior de la página se encuentra una tabla con todos los niveles de Registro:

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

En la parte inferior se encuentran las pestañas con los 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>

Al hacer clic en el ícono ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) a la derecha del método deseado, se despliega la página correspondiente:

### 1. Creación de Registro

* Endpoint: /api/log/create
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * RobotGUID: GUID del Robot;
  * ProcessVersionGUID: GUID de la versión del Proceso;
  * JobGUID: GUID del Trabajo;
  * Level: nivel de Registro;

Message (obligatorio): texto del Registro.

* Ejemplo:

<table data-header-hidden><thead><tr><th width="365"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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. Obtención de información del Registro por GUID

* Endpoint: /api/log/read/{guid}
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * Guid (obligatorio): Guid del Registro.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="288"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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. Obtención de lista de archivos relacionados con GUID

* Endpoint: /api/log/list
* Método: POST;
* Autorización: obligatoria;
* Parámetros: ninguno.
* Ejemplo:

| Solicitud     | Respuesta |
| ------------- | --------- |
| /api/log/list | \[]       |

### 4. Eliminación de Registros pertenecientes a la cuenta actual y creados antes del tiempo seleccionado

* Endpoint: /api/log/purge
* Método: DELETE;
* Autorización: obligatoria;
* Parámetros:
  * Time (obligatorio): marca de tiempo en formato Unix (Unix timestamp);
* Ejemplo:

| Solicitud                                                    | Respuesta |
| ------------------------------------------------------------ | --------- |
| `json</p><p> {</p><p> "Time": "1590481487",</p><p> }</p><p>` | \[]       |

## 4. Cuentas

Permite gestionar las Cuentas. El usuario puede crear una nueva Cuenta, obtener información sobre la Cuenta, actualizar la información de la Cuenta y eliminar la Cuenta.

En esta página se encuentran las pestañas con los métodos:

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

Al hacer clic en el ícono ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) a la derecha del método deseado, se despliega la página correspondiente:

* Endpoint: /api/account/create
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * Login (obligatorio) — Login para la nueva Cuenta;
  * Password (obligatorio) — Contraseña para la nueva Cuenta;
  * FirstName — Nombre para la nueva Cuenta;
  * LastName — Apellido para la nueva Cuenta;
  * Email — E-mail para la nueva Cuenta;
  * Phone — Teléfono para la nueva Cuenta;
  * Company — Empresa para la nueva Cuenta;
  * Department — Departamento para la nueva Cuenta.
* Ejemplo:| Solicitud | Respuesta | | -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | |

  `json</p><p> {</p><p> "Login": "Nueva Cuenta de Prueba",</p><p> "Password": "newPassword123",</p><p> }</p><p>`

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

### 2. Obtención de información de la Cuenta por GUID

* Endpoint: /api/account/read/{guid}
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * GUID (obligatorio): GUID de la Cuenta.
* Ejemplo:

| Solicitud                                              | Respuesta                                                                                                                                                                                                                            |
| ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| /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": "nueva Cuenta",</p><p> "password": "123455678",</p><p> "first name": "Vasya",</p><p> "last name": "Ivanov",</p><p> }</p><p>` |

### 3. Actualización de información de la Cuenta por GUID

* Endpoint: /api/account/update
* Método: PUT;
* Autorización: obligatoria;
* Parámetros:
  * Guid (obligatorio) — GUID de la Cuenta a actualizar;
  * Login — Login de la Cuenta a actualizar;
  * Password — Contraseña de la Cuenta a actualizar;
  * FirstName — Nombre en la Cuenta a actualizar;
  * LastName — Apellido de la Cuenta a actualizar;
  * Email — E-mail de la Cuenta a actualizar;
  * Phone — Teléfono en la Cuenta a actualizar;
  * Company — Empresa de la Cuenta a actualizar;
  * Department — Departamento de la Cuenta a actualizar.
* Ejemplo:

| Solicitud                                                                                                                   | Respuesta |
| --------------------------------------------------------------------------------------------------------------------------- | --------- |
| `json</p><p> {</p><p> "Guid": "554ab883-1f82-48e1-bb12-5049002e7d70", </p><p> "Login": "Cuenta de Prueba",</p><p> }</p><p>` | \[]       |

### 4. Eliminación de la Cuenta por GUID

* Endpoint: /api/account/delete/{guid}
* Método: DELETE;
* Autorización: obligatoria;
* Parámetros:
  * Guid (obligatorio): Guid de la Cuenta;
* Ejemplo:

| Solicitud                                                | Respuesta |
| -------------------------------------------------------- | --------- |
| /api/account/delete/554ab883-1f82-48e1-bb12-5049002e7d70 | \[]       |

## 5. Servidor de IA

Permite gestionar redes neuronales. El usuario puede enviar un objeto JSON y recibir una respuesta de la red neuronal, obtener información sobre el modelo actualmente utilizado, recibir una respuesta del Asistente o enviar un mensaje en el chat.

Al hacer clic en el ícono ![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-aqpnIbv0y24wAoXIMcS0SCIZtQ3ttBrV8lnZw5ciOIhyT4H4tR1OZXqSS6N8wJHuZ8nMCTiE5YbwYDI5hPoxncZIRjH6WYi5-PZfmOretSWmz9BmrnZe1isbcMfKHhw95N5mFQ?key=uiwU7hKhsXZnEihZUEsDW2IP) a la derecha del método deseado, se despliega la página correspondiente:

### 1. Adición de fragmentos de texto a un archivo existente

* Endpoint: /api/files/addchunk
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * text\_chunk (obligatorio): Fragmento de texto;
  * guid\_file (obligatorio): GUID del archivo o ruta al archivo;
  * metadata (obligatorio): Metadatos del fragmento.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="357"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"text_chunk": "Fragmento 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. Búsqueda de embeddings por texto dado

* Endpoint: /api/files/search
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * text\_for\_search (obligatorio): Texto para buscar;
  * n\_top (obligatorio): Número de resultados top;
  * files\_ids (obligatorio): Cadena JSON con la lista de GUID o rutas a archivos;
  * folder\_ids (obligatorio): Cadena JSON con la lista de GUID o rutas a carpetas;
  * enable\_subfolders (obligatorio): Habilitación de subcarpetas. Valores posibles: 0 = Falso, 1 = Verdadero.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="357"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"text_for_search": "ejemplo 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. Obtención de respuesta de la red neuronal

* Endpoint: /api/threads/message
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * messages (obligatorio): Array de objetos, cada uno representando un mensaje;
  * content: Texto del mensaje;
  * role: Rol del remitente del mensaje. Valores posibles: system, user;
  * name: Nombre del remitente del mensaje;
  * temperature: Número de punto flotante que determina el grado de aleatoriedad en las respuestas de la red neuronal. Valor por defecto: 0.7;
  * model (obligatorio): Cadena que indica la ruta al modelo, por ejemplo, /model-store/meta-llama/Meta-Llama-3-8B-Instruct;
  * assistant\_id: Identificador del asistente;
  * thread\_id: Identificador del chat;
  * info: Información del sistema.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="364"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</td></tr><tr><td><p>```json</p><p>{</p><p>"messages": [</p><p>{</p><p>"content": "Hola, ¿cómo estás?",</p><p>"role": "user",</p><p>"name": "Iván"</p><p>},</p><p>{</p><p>"content": "¡Todo bien, gracias!",</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. Obtención de información sobre el modelo actualmente utilizado

* Endpoint: /api/threads/models
* Método: GET;
* Autorización: obligatoria;
* Parámetros: ninguno.
* Ejemplo:

  <table data-header-hidden><thead><tr><th width="255"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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. Obtención de mensajes del Asistente

* Endpoint: /api/threads/getUpdates
* Método: GET;
* Autorización: obligatoria;
* Parámetros:
  * assistant\_id (obligatorio): Identificador del asistente;
  * offset: Identificador del mensaje desde el cual se debe obtener la lista de mensajes;
  * thread\_id (obligatorio): Identificador del chat.
* Ejemplo:

<table data-header-hidden><thead><tr><th width="249"></th><th></th></tr></thead><tbody><tr><td>Solicitud</td><td>Respuesta</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": "Error de licencia: la licencia está ausente, caducada, no activada o se han alcanzado los límites"</p><p>}</p><p>o</p><p>{</p><p>"result": 1,</p><p>"data": [</p><p>{</p><p>"id": "1195",</p><p>"content": "{\"type\":\"text\",\"text\":{\"value\":\"hola\",\"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\":\"¡Hola! ¡Encantado de verlos! ¿Cómo puedo ayudarles hoy?\",\"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. Envío de un mensaje en el chat

* Endpoint: /api/threads/chat
* Método: POST;
* Autorización: obligatoria;
* Parámetros:
  * thread\_id (obligatorio): Identificador del chat;
  * role (obligatorio): Rol del remitente del mensaje (por ejemplo, assistant);
  * content (obligatorio): Texto del mensaje;
  * assistant\_id: Identificador del asistente;
  * model\_id: Identificador del grupo de modelos;
  * temperature: Número de punto flotante que determina el grado de aleatoriedad en las respuestas de la red neuronal. Valor por defecto: 0.7;
  * prompt: Contexto inicial o instrucción para el modelo;
  * title: Título del chat;
  * file\_id: Lista de ID de archivos adjuntos al mensaje (array JSON);
  * folder\_id: Lista de ID de carpetas (o objetos con id) adjuntos al mensaje (array JSON),
  * info: Información del sistema.
* Ejemplo:

| Solicitud                                                                                                                                                                                            | Respuesta                                                                                                                                                                                          |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `json</p><p>{<br> "thread_id": 200,<br> "role": "assistant",<br> "content": "¡Hola! ¿Cómo puedo ayudarles hoy?",<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/es/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.
