Плагин векторной базы данных для нереального двигателя 5
Этот плагин добавляет упрощенный тип векторной базы данных в Unreal Engine 5, разработанный с учетом чертежей.
Предупреждение: работа в процессе
Это все еще в раннем состоянии, так что не удивляйтесь, если вы испытываете сбои. Я делаю этот плагин для некоторых конкретных проектов, но я подумал, что было бы неплохо поделиться им. Если вы попробуете это и испытаете проблемы, не стесняйтесь открывать новую проблему с любой информацией о журнале, которая может быть полезна.
Установка
Это репо включает весь проект (UE 5.4), который я использую для тестирования и разработки этого плагина. Вам не нужно клонировать весь этот проект. Чтобы установить плагин, выполните следующие действия:
- Загрузите папку Plugins/Vectorsearch и поместите ее в папку плагинов вашего проекта (создайте это, если она не существует)
- На данный момент вы можете попытаться открыть проект. Есть шанс, что это уже сработает.
- Щелкните правой кнопкой мыши на вашем файле.
- Откройте решение Project Solution (.sln File) и создайте проект, убедитесь, что нет ошибок компиляции
- Если у вас возникнут проблемы с компиляцией, пожалуйста, опубликуйте журнал сборки в вкладке «Проблемы»
- Откройте свой проект и найдите «векторную базу данных» на графике чертежа, чтобы увидеть доступные функции
Это руководство по установке предполагает, что у вас есть проект C ++, так как я не смог проверить компиляцию этого плагина в проекте Blueprint. Если у вас есть проект Blueprint, вы можете быстро и легко создать пустой проект C ++ и сделать компиляцию там, я считаю, что копирование/вставка из этого проекта будет работать.
Как это работает?
- Используя узел «Создать новую векторную базу данных», вы можете инициализировать новую векторную базу данных, а затем сохранить ссылку на него в качестве переменной.
- Используя этот объект в качестве цели, вы можете использовать узлы «Добавить вход в векторную базу данных» для добавления записи (и соответствующего ее векторного массива поплавков) любого типа данных (в настоящее время плагин поддерживает строку, объект и записи.
- Чтобы получить записи из базы данных, вы можете использовать узлы «получить топ -n совпадений». Они принимают объект векторной базы данных, вектор (массив поплавков) и значение 'n' (сумма совпадений для возврата). Эти узлы затем вычисляют верхние записи N в базе данных, основанные на расстоянии вектора каждой записи от входного вектора.
- «Get Top N-struct Matches» имеет выходной сигнал, чтобы вернуть вашу структуру от него, подключив сместитель с переменной сетей или структурой отключения для каждого цикла, а затем подключите к каждому входу массива для каждого цикла к выходу с подстановочным знаком «Получить топ-n-конструкция»-тип штифта должен автоматически обновляться.
- Существует также «получить подробные верхние n совпадений», которые возвращают структуру, которая содержит вектор, расстояние каждого найденного входа, а затем объект обертки, откуда его значение может быть получено из поставляемых чистых функций (кроме структур, которые имеют нечистую функцию, которая принимает всю выходную структуру в качестве его входа)
- Все функции «Get Top N Matches» будут учитывать только записи векторных базы данных с вектором, соответствующим размерам входного вектора, и с типами вводов, соответствующих типу узла. Это связано с тем, что векторные базы данных представляют собой агностик типа данных. Вы можете вставить любое число или комбинацию строк, объектов или структур в базу данных (с векторами разных измерений, если вы хотите), и это будет работать, потому что функции GET рассматривают только записи, соответствующие им (это означает, что если вы проходите в вектор 700-х диментирования, любые входные записи с вектором различных векторов. Существует небольшое наказание в том, что функции Getter все еще должны итерации по каждой записи в массиве, независимо от того, хотите ли вы их рассмотреть.
- Чтобы удалить записи из базы данных, вы можете использовать «Удалить запись из векторной базы данных», который принимает входной вектор и удаляет любые совпадения. Если Bremovealloccurences установлен на True. тогда будет удален любая запись с подходящим вектором. Существует также вход с плавающей точкой «удалить», который, если установить на что -либо выше 0, удаляет любые совпадения в (или AT), которые дают расстояние от входного вектора.
- Кроме того, существуют чистые узлы, чтобы получить количество записей в базе данных (а также отдельные узлы Getter для получения количества записи строки, количества записи объекта и количества записи структуры).
Генерирующие векторы
В настоящее время этот плагин имеет функцию «генерировать openai -встраивание» функции плана, которая принимает ввод строкового ввода, а также структуру, содержащую конечную точку API, модель и ключ API, и делает запрос API в указанную конечную точку (следуя формату API API OpenAI) и возвращает результат в качестве множества плавных, готовых к использованию в функциональность вектора.