# Crear Embeddings

Consideremos un ejemplo de un robot que toma instrucciones sobre un automóvil de un archivo de texto, lo divide en fragmentos y calcula un embedding para cada fragmento: un vector de características para la búsqueda posterior de las partes necesarias del documento por similitud. Los fragmentos de texto junto con los embeddings correspondientes se registran en un archivo CSV. Este proyecto es preparatorio para el uso del proyecto [SearchEmbeddings](https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-designer/primery-robotov/ai-chat-with-own-document/search-embeddings) y debe ejecutarse una sola vez.

El proyecto del robot consta de un diagrama. Así, si se describe paso a paso, este robot funciona de la siguiente manera:

1. Lee el contenido del archivo especificado en las propiedades.
2. Divide este contenido en fragmentos.
3. Calcula el embedding para cada elemento.
4. Registra los embeddings obtenidos en Tablas de Datos.
5. Guarda los fragmentos de texto con los embeddings correspondientes en un archivo CSV.

El diagrama del proyecto se ve así (para mayor comodidad, los bloques del diagrama están numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeqeFXEghBrEJHcfvZaTCQI1NahBcJyOoAIbOyxr2zvX7kNyLHk16bUBauM79_VAn14Y87DSstQ3cgnFgu-SgTFZflvWzpo6naDc9n8MBYXerk0v_IW29BXiuukSLkr1zjoPDbbkB8lMm38UusKN_b-tyNp?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

1. **Bloque “Inicio”** (desde este bloque comienza cualquier diagrama).
2. **Bloque “Leer línea del archivo”** lee el contenido del archivo secuencialmente (línea por línea). Para este bloque se especifican las siguientes propiedades:

* Nombre del archivo (nombre del archivo del cual se leerá la información);
* Codificación (codificación del archivo del cual se leerá la información);
* Omitir líneas vacías (al activar esta opción se habilita la función de omitir líneas vacías al leer información del archivo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfnauS1JofV8ELk4693-5QZDuuKayN9ePsVQT2RxZ5tDDgShbJfCqFyMewelWsZVVKatZpfZUzOtY1RzVendsUsxfwV9duCCwjxCGwoRZlr-rW1XwxF6vDyJ9RuwoI0v1La_DPDFxGONrUrkQbkO9XAiGxB?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

3. **Bloque “Condición”** verifica la veracidad de la condición especificada, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si la condición se cumple) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”.

En este caso, la condición establecida es: $Lines.Count > 0, es decir, esta condición verifica si el valor de la variable $Lines es mayor que cero, entonces salida “Sí”, de lo contrario – salida “No”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfa-l3C_PRVCFhonw8r-jsJ3SxFNqb7mclAsVC3akc4KC-f183-YOWOaTRich6-ut0XK_3n4NtowI3hX_5a3kyYeO3Kx-43CC0BckGSv09u9t4R13gW1ygndCxls17VZcwQLGpUsrZ3yjF_R-clVU_P9J41?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

4. **Bloque “Obtener embeddings”** permite obtener embeddings a partir de una línea o lista de líneas utilizando el servicio de Open AI. Para este bloque se especifican las siguientes propiedades:

* Texto (texto de entrada para el cual se calcularán los embeddings);
* Modelo (modelo de red neuronal para generar la respuesta);
* Como tabla de datos (al activar esta opción se habilita la función de devolver el resultado en forma de tabla de datos con dos columnas: “Texto” y “Embeddings”);
* Tiempo de espera (tiempo máximo de espera por respuesta en segundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfa-l3C_PRVCFhonw8r-jsJ3SxFNqb7mclAsVC3akc4KC-f183-YOWOaTRich6-ut0XK_3n4NtowI3hX_5a3kyYeO3Kx-43CC0BckGSv09u9t4R13gW1ygndCxls17VZcwQLGpUsrZ3yjF_R-clVU_P9J41?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

5. **Bloque “Unir Tablas de Datos”** permite unir dos Tablas de Datos en una. Para este bloque se especifican las siguientes propiedades:

* Primera Tabla de Datos;
* Segunda Tabla de Datos;
* Tipo de unión (tipo de unión de tablas, si los esquemas de las tablas especificadas son diferentes. En este caso, tipo “Agregar”, es decir, añadir).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcFJzDLfU3eTOlFkjG77aXHdZG0mpHS4ro-l9wr3vK6DVDKXI1fszYBalQRBztSnTPqDM5AK4ZZ90JC19gvtdi7EEuZsBEbOzWdls6glvy-Tt4V9XjCZBN91yeRqWF-7Qo2_TbuxlA37zrQoHvtClQocxzf?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

6. **Bloque “Guardar en CSV”** permite guardar la Tabla de Datos en un documento CSV. Para este bloque se especifican las siguientes propiedades:

* Tabla de Datos (Tabla de Datos que se debe guardar en el documento);
* Ruta del archivo (ruta del archivo en el que se debe guardar la Tabla de Datos);
* Separador (símbolo separador);
* Codificación (codificación del archivo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdm7Hy8zb6DHe1qizlhP3mMJGD2D6G_pKxSJDZr2WbJe17nOqyUWTjjRGnweZCfvMxUhxBN5EKAKIWx9TgQW9jNAv92qbk00wgC4G216o-nWaZcMfrCIZbiST4HLe3N6trmkfXJEbYer3LUTUXZShKiFNs?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

7. **Bloque “Log”** permite registrar en el log mensajes arbitrarios y/o valores de variables durante la ejecución del guion del robot. Para este bloque se especifica la propiedad “Valor”. En las comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot un mensaje sobre la lectura de una línea del archivo indicando esta línea mediante la variable.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdsANztAn7ZTGLAB_TI68D0gBexaQhwPGRSEIxPYsyZx4UKqGy_bh7O1trBk4wdSxYmme8sEKPNKS6HC00El_tsbc1D_vp0ml5zpD1s_AFukl6Gpu-ySXBMc0JDxiqLyc90nZNTqarzzOIa3VXnZ54sfO1q?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

8. **Bloque “Agregar elemento a la lista”** permite añadir el elemento especificado al final de la lista. Para este bloque se especifican las siguientes propiedades:

* Lista (lista a la que se debe agregar el nuevo elemento);
* Elemento (variable que se debe agregar a la lista).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc2vHe-GAj8Io3KgP9MxDpR-Q6QyHF1KSvP9O1x0UIGzEEZkh2cv-GQztoce04aIS7Byv7pXB3SO7Ovrt398hxuaNaeJBxFD8ghC_git18fl9Kf6s7ItBALKNZMAByMQLxyHzGuhBcUNLnXNeF72g8BknM?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

9. **Bloque “Condición”** verifica la veracidad de la condición especificada, después de lo cual la ejecución del guion continúa hacia la salida “Sí” (si la condición se cumple) o hacia la salida “No” (si la condición no se cumple).

La condición se escribe en el formato: “variable” es igual (==)/ mayor (>)/ menor (<) “valor”.

Por ejemplo: $a == “Hola”, es decir, si el valor de la variable $a es igual a “Hola”, entonces salida “Sí”, de lo contrario – salida “No”.

$Result > 5, es decir, si el valor de la variable $Result es menor que 5, entonces salida “Sí”, de lo contrario – salida “No”.

En este caso, la condición establecida es: $Lines.Count > 20, es decir, si el valor de la variable $Lines es mayor que 20, entonces salida “Sí”, de lo contrario – salida “No”.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfFmWCp-UTvYnzcBwrKxZjoRb0MJPixptgLJk5e00ihRJwVw2cNhAlysg2351x5h-BrfzqQCJjJGJ2J4GRUo-o84BaDj2e0eufJ5jIKgXycFDZSfNVNCWUElSZAXzxCJTZyXe1Jx71GyHydV3D96Ju2EA-e?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

10. **Bloque “Obtener embeddings”** permite obtener embeddings a partir de una línea o lista de líneas utilizando el servicio de Open AI. Para este bloque se especifican las siguientes propiedades:

* Texto (texto de entrada para el cual se calcularán los embeddings);
* Modelo (modelo de red neuronal para generar la respuesta);
* Como tabla de datos (al activar esta opción se habilita la función de devolver el resultado en forma de tabla de datos con dos columnas: “Texto” y “Embeddings”);
* Tiempo de espera (tiempo máximo de espera por respuesta en segundos).

  <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXepwSilXC_cllvFbDFyFaMVyvVlc2_axeN3z8QrEb4kEj05uMudA4vL91vle05FfBRQ9GRSa7ImDSynQBblmy1fwa0S8RgAXmOoofSD9SJysRvCPnJaynZjLv5YqqPXBHWzNTT2u2LzLJ4WagvaDk83mXi4?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

11. **Bloque “Unir Tablas de Datos”** permite unir dos Tablas de Datos en una sola. Para este bloque se especifican las siguientes propiedades:

* Primera Tabla de Datos;
* Segunda Tabla de Datos;
* Tipo de unión (tipo de unión de tablas, si los esquemas de las tablas especificadas son diferentes. En este caso, el tipo es “Add”, es decir, agregar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfKbeXW7xmQUmm2QUo2SptN_Sy3TmtXvAGKezoGsBV_YZ6m2rViGM2zPrE_oJGoCVb0QOTBWsgPpb1gePZvUWRaJ9uc_dUla_dpAm39FLPZLUlo7GqdNzTuMcdIWpapTxi3ZPYDb1SgE76K13SLvuH9dKc?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

12. **Bloque “Guardar en CSV”** permite guardar la Tabla de Datos en un documento CSV. Para este bloque se especifican las siguientes propiedades:

* Tabla de Datos (Tabla de Datos que se debe guardar en el documento);
* Ruta del archivo (ruta del archivo en el que se debe guardar la Tabla de Datos);
* Separador (símbolo separador);
* Codificación (codificación del archivo).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfWM5DkrV0izVAXoc3QDlpUamkCK2BeeaRRc2h__RG1TOrqOThH7Jq6cCzelcJXfOLnplf564i5pkD5UZw0thgl6dPywh3VB5HQ0iv52oi0uyI3QQW09oUFRVCiwKdnM0dvetDlvYCHkP1yfkI0tyl5To0?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

13. **Bloque “Limpiar lista”** permite limpiar la lista eliminando todos sus elementos. Para este bloque se especifica la propiedad “Lista” (lista que se debe limpiar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcbGlCf-VwsKDHABp-ZYixyU_k8Hc6D48UD1XPnRD2s9NBMbPk_boXQ-DSl0m_DtPAcfGntoWd_y7o1OJGnLXuDzj1q7kjiEzzY7CIy6dqHLKS419PdUlqvnkhnYZIEQ8Lylvmghb1uzYT4y28keGi0PiSf?key=2EX7NdvOOR4JJxCrOTqjfg" alt=""><figcaption></figcaption></figure>

14. **Bloque “Fin”** (este bloque finaliza la ejecución del guion o devuelve el diagrama del subproceso al proceso principal).


---

# 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-rpa/sherpa-designer/primery-robotov/ai-chat-with-own-document/create-embeddings.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.
