يسمح RagSearchunity بتنفيذ البحث الدلالي داخل محرك الوحدة.
إنه نظام جيل معزز للاسترجاع (RAG) يمكّنه أفضل نماذج استرجاع مفتوحة المصدر المتاحة.
تم تصميم RagSearchunity على رأس المكتبات الحادة الرائعة ومكتبات USEARCH.
تم اختباره على الوحدة: 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 على نظام بحث مثال على لعبة Hamlet Play؟ لتثبيت العينة:
Window > Package ManagerRAGSearchUnity . من علامة تبويب Samples ، انقر فوق Import بجوار العينة. يمكن تشغيل العينة مع Scene.unity المشهد الذي يحتوي عليه داخل مجلدهم.
في المشهد ، حدد Embedding GameObject وقم بتنزيل أحد الطرز ( Download model ).
حفظ المشهد ، الجري واستمتع!
ترخيص RagSearchUnity هو معهد ماساتشوستس للتكنولوجيا (ترخيص. md) ويستخدم برامج ونماذج من طرف ثالث مع تراخيص معهد ماساتشوستس للتكنولوجيا وأباش (Notices.MD).