RagSearchUnity permet d'implémenter la recherche sémantique dans le moteur Unity.
Il s'agit d'un système de génération augmentée (RAG) de récupération autonomisée par les meilleurs modèles de récupération open source disponibles.
RagSearchUnity est construit au-dessus des impressionnants transformateurs et bibliothèques Usearch.
Testé sur Unity: 2021 LTS, 2022 LTS, 2023
Window > Package Manager+ et sélectionnez Add package from git URLhttps://github.com/undreamai/RAGSearchUnity.git et cliquez sur Add RagSearchUnity implémente une fonctionnalité de recherche de similitude super rapide avec un système de génération (RAG) (RAG) de récupération.
Cela fonctionne comme suit.
Construire les données que vous fournissez des entrées de texte (une phrase, un paragraphe, un document) pour ajouter aux données
Chaque entrée est divisée en phrases (facultative) et codée en intégres avec un modèle d'apprentissage en profondeur.
Vous recherchez ensuite une entrée de texte de requête.
L'entrée est à nouveau codée et les entrées de texte ou les phrases les plus similaires dans les données sont récupérées.
Pour utiliser la recherche:
Add Component et sélectionnez le script Embedding ).Dans votre script, vous pouvez ensuite l'utiliser comme suit ?:
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 ) ;
.. .
}
}Vous pouvez enregistrer les données avec les intégres:
search . Save ( " Embeddings.zip " ) ;et les charger du disque:
SearchEngine search = SearchEngine . Load ( model , " Embeddings.zip " ) ;Vous pouvez également spécifier les délimiteurs à utiliser ou sans fractionnement:
// use ".", "!", "?" as delimiters
search = new SearchEngine ( model , " .!? " ) ;
// don't split sentences
search = new SearchEngine ( model , null ) ; Si vous souhaitez gérer plusieurs recherches indépendantes, RagSearchUnity fournit la classe MultiSearchEngine pour faciliter l'utilisation:
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 " ) ;C'est tout!
L'échantillon HamletSearch contient un exemple de système de recherche pour le jeu de hameau ?. Pour installer l'échantillon:
Window > Package ManagerRAGSearchUnity . Dans l'onglet Samples , cliquez sur Import à côté de l'échantillon. L'échantillon peut être exécuté avec la scène Scene.unity Il contient à l'intérieur de leur dossier.
Dans la scène, sélectionnez le jeu Embedding GameObject et téléchargez l'un des modèles ( Download model ).
Sauvez la scène, courez et profitez-en!
La licence de RagSearchUnity est MIT (Licence.MD) et utilise des logiciels et des modèles tiers avec les licences MIT et Apache (tiers notices.md).