Create Embeddings
Last updated
Last updated
Рассмотрим пример робота, который берет инструкцию на автомобиль из текстового файла, разбивает ее на фрагменты и для каждого фрагмента вычисляет эмбеддинг - вектор признаков для последующего поиска нужных частей документа по сходству. Фрагменты текста вместе с соответствующими эмбеддингами записываются в CSV-файл. Данный проект является подготовительным для использования проекта SearchEmbeddings, и должен запускаться один единственный раз.
Проект робота состоит из одной диаграммы. Таким образом, если описывать пошагово, то данный робот работает следующим образом:
Считывает содержимое указанного в свойствах файла.
Разбивает это содержимое на фрагменты.
Вычисляет для каждого элемента эмбеддинг.
Записывает полученные эмбеддинги в Таблицы Данных.
Сохраняет фрагменты текста с соответствующими эмбеддингами в CSV-файл.
Диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Считать строку из файла” считывает содержимое файла последовательно (строка за строкой). Для данного блока указаны следующие свойства:
Имя файла (имя файла, из которого будет считываться информация);
Кодировка (кодировка файла, из которого будет считываться информация);
Пропускать пустые строки (при установке флага включается функция пропуска пустых строк при считывании информации из файла).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Lines.Count > 0, то есть, данное условие проверяет, если значение переменной $Lines больше нуля, то выход “Да”, в противном случае – выход “Нет”.
Блок “Получить эмбеддинги” позволяет получить эмбеддинги по строке или списку строк с использованием сервиса Open AI. Для данного блока указаны следующие свойства:
Текст (входной текст для которого будут рассчитаны эмбеддинги);
Модель (модель нейросети для генерации ответа);
Как таблица данных (при установке флага включается функция возвращения результата в виде таблицы данных с двумя колонками: “Text” и “Embeddings”);
Таймаут (максимальное время ожидания ответа в секундах).
Блок “Соединить Таблицы Данных” позволяет соединить две Таблицы Данных в одну. Для данного блока указаны следующие свойства:
Первая Таблица Данных;
Вторая Таблица Данных;
Тип соединения (тип соединения таблиц, если схемы указанных таблиц различаются. В данном случае, тип “Add”, то есть добавить).
Блок “Сохранить в CSV” позволяет сохранить Таблицу Данных в CSV-документ. Для данного блока указаны следующие свойства:
Таблица Данных (Таблица Данных, которую необходимо сохранить в документе);
Путь к файлу (путь к файлу, в который необходимо сохранить Таблицу Данных);
Разделитель (символ разделителя);
Кодировка (кодировка файла).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $.Т.е., данный блок записывает в лог робота сообщение о считывании строки из файла с указанием этой строки с помощью переменной.
Блок “Добавить элемент в список” позволяет добавить указанный элемент в конец списка. Для данного блока указаны следующие свойства:
Список (список в который необходимо добавить новый элемент);
Элемент (переменная, которую необходимо добавить в список).
Блок “Условие” проверяет указанное условие на истинность, после чего выполнение сценария продолжается в сторону выхода “Да” (если условие выполняется) или в сторону выхода “Нет” (если условие не выполнилось).
Условие записывается в формате: “переменная” равна (==)/ больше (>)/ меньше (<) “значение”.
Например: $a == “Привет”, то есть, если значение переменной $a равно “Привет”, то выход “Да”, в противном случае – выход “Нет”.
$Result > 5, то есть, если значение переменной $Result меньше 5, то выход “Да”, в противном случае – выход “Нет”.
В данном случае, в качестве условия установлено: $Lines.Count > 20, то есть, если значение переменной $Lines больше 20, то выход “Да”, в противном случае – выход “Нет”.
Блок “Получить эмбеддинги” позволяет получить эмбеддинги по строке или списку строк с использованием сервиса Open AI. Для данного блока указаны следующие свойства:
Текст (входной текст для которого будут рассчитаны эмбеддинги);
Модель (модель нейросети для генерации ответа);
Как таблица данных (при установке флага включается функция возвращения результата в виде таблицы данных с двумя колонками: “Text” и “Embeddings”);
Таймаут (максимальное время ожидания ответа в секундах).
Блок “Соединить Таблицы Данных” позволяет соединить две Таблицы Данных в одну. Для данного блока указаны следующие свойства:
Первая Таблица Данных;
Вторая Таблица Данных;
Тип соединения (тип соединения таблиц, если схемы указанных таблиц различаются. В данном случае, тип “Add”, то есть добавить).
Блок “Сохранить в CSV” позволяет сохранить Таблицу Данных в CSV-документ. Для данного блока указаны следующие свойства:
Таблица Данных (Таблица Данных, которую необходимо сохранить в документе);
Путь к файлу (путь к файлу, в который необходимо сохранить Таблицу Данных);
Разделитель (символ разделителя);
Кодировка (кодировка файла).
Блок “Очистить список” позволяет очистить список путем удаления всех его элементов. Для данного блока указано свойство “Список” (список, который необходимо очистить).
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).