Ragsearchunity позволяет реализовать семантический поиск в двигателе Unity.
Это система извлечения дополненного поколения (RAG), наделенная лучшими доступными моделями поиска с открытым исходным кодом.
Ragsearchunity построена на вершине удивительных резких трансформаторов и библиотек Usearch.
Проверено на Unity: 2021 LTS, 2022 LTS, 2023
Window > Package Manager+ и выберите Add package from git URLhttps://github.com/undreamai/RAGSearchUnity.git и нажмите « Add RagsearchUnity реализует супер-фанатную функциональность поиска сходства с помощью системы извлечения с аугированной (RAG).
Это работает следующим образом.
Создание данных, которые вы предоставляете текстовым входам (фраза, абзац, документ), чтобы добавить в данные
Каждый вход разделен на предложения (необязательно) и кодируется в встраивании с моделью глубокого обучения.
Поиск вы можете затем найти ввод текста запроса.
Ввод снова кодируется, и наиболее похожие текстовые входы или предложения в данных получены.
Чтобы использовать поиск:
Add Component и выберите сценарий Embedding »).В вашем сценарии вы можете использовать его следующим образом?
using RAGSearchUnity ;
public class MyScript : MonoBehaviour
{
public Embedding embedding ;
SearchEngine search ;
void Game ( ) {
.. .
string [ ] inputs = new string [ ] {
" Hi! I'm a search system. " , " the weather is nice. I like it. " , " I'm a RAG system "
} ;
// build the embedding
EmbeddingModel model = embedding . GetModel ( ) ;
search = new SearchEngine ( model ) ;
foreach ( string input in inputs ) search . Add ( input ) ;
// get the 2 most similar phrases
string [ ] similar = search . Search ( " hello! " , 2 ) ;
// or get the 2 most similar sentences
string [ ] similarSentences = search . SearchSentences ( " hello! " , 2 ) ;
.. .
}
}Вы можете сохранить данные вместе с вставками:
search . Save ( " Embeddings.zip " ) ;и загрузить их с диска:
SearchEngine search = SearchEngine . Load ( model , " Embeddings.zip " ) ;Вы также можете указать разделители для использования или без расщепления:
// use ".", "!", "?" as delimiters
search = new SearchEngine ( model , " .!? " ) ;
// don't split sentences
search = new SearchEngine ( model , null ) ; Если вы хотите управлять несколькими независимыми поисками, RagsearchUnity предоставляет класс MultiSearchEngine для простоты использования:
MultiSearchEngine multisearch = new MultiSearchEngine ( model ) ;
// add a text for a specific search
multisearch . Add ( " hi I'm Luke " , " search1 " ) ;
multisearch . Add ( " Searching, searching, searching... " , " search1 " ) ;
multisearch . Add ( " hi I'm Jane " , " search2 " ) ;
// search for similar text in all searches
string [ ] similar = multisearch . Search ( " hello! " , 2 ) ;
// search for similar texts within a specific search
string [ ] similar = multisearch . Search ( " hi there! " , 1 , " search1 " ) ;Вот и все !
Образец HamletSearch содержит примерную систему поиска для игры Гамлета? Чтобы установить образец:
Window > Package ManagerRAGSearchUnity . На вкладке Samples нажмите Import рядом с образцом. Образец можно запустить со Scene.unity Сцена, которую он содержит в их папке.
В сцене выберите « Embedding GameObject» и загрузите одну из моделей ( Download model ).
Сохраните сцену, беги и наслаждайтесь!
Лицензия ragsearchunity-MIT (License.md) и использует сторонние программное обеспечение и модели с лицензиями MIT и Apache (сторонние уведомления.md).