虛幻引擎的矢量數據庫插件5
該插件將簡化的矢量數據庫類型添加到虛幻引擎5中,並考慮到藍圖。
警告:正在進行中
這仍然處於早期狀態,因此,如果您遇到崩潰,請不要感到驚訝。我正在為某些特定項目為自己製作此插件,但我認為很高興分享它。如果您確實嘗試並遇到問題,請隨時使用任何可能有幫助的日誌信息打開新問題。
安裝
此存儲庫包括我用來測試和開發此插件的整個項目(UE 5.4)。您無需克隆整個項目。要安裝插件,請按照以下步驟:
- 下載插件/vectorsearch文件夾並將其放在項目的插件文件夾中(如果不存在,請創建此)
- 此時,您可以嘗試打開該項目。它有可能已經起作用了。
- 右鍵單擊您的.uproject文件,然後單擊“生成Visual Studio Project Files”
- 打開項目解決方案(.sln文件)並構建項目,確保沒有編譯錯誤
- 如果您遇到任何彙編問題,請在“問題”選項卡中發布構建日誌
- 打開您的項目並在藍圖圖中搜索“向量數據庫”以查看可用功能
本安裝指南假定您有一個C ++項目,因為我無法在藍圖項目中測試該插件。如果您有一個藍圖項目,則可以快速,輕鬆地創建一個空白的C ++項目並在此進行編譯,我相信該項目的複制/粘貼將起作用。
它如何工作?
- 使用“創建新的矢量數據庫”節點,您可以初始化一個新的矢量數據庫,然後將其作為變量保存。
- 使用此對像作為目標,您可以使用“添加到矢量數據庫”節點添加任何數據類型的條目(及其相應的vector-a floats)(該插件當前支持字符串,對象和struct ofties-structs-可以包含大多數可變類型的字符串和對像在某些用例中都存在)
- 要從數據庫中檢索條目,您可以使用“獲得頂級n匹配”節點。這些插入矢量數據庫對象,矢量(浮子數組)和一個“ n”值(要返回的匹配量)。然後,這些節點基於每個條目的向量距離輸入向量,計算數據庫中的頂部N條目。
- “獲得頂部N結構匹配”具有通配符輸出,以使您的結構從AN連接一個可變或結構破壞器的A a a for a for a for a for a for a for a for a for a for a for a for a for a for a for a for a for a for a for for for for for to top n結構匹配的“獲取頂級n struct匹配”通配符輸出 - PIN類型應自動更新。
- 還有一個“獲得詳細的頂級匹配”,該匹配將返回一個結構,該結構包含每個找到的條目的向量,距離,然後是一個包裝器對象,從其值可以從提供的純函數中獲得其值,除了結構,其具有不純淨的函數,該功能將整個輸出結構作為其輸入置於其輸入中))
- 所有“ GET top n匹配”功能僅將考慮與輸入矢量的尺寸匹配的向量的矢量數據庫條目,並與與節點類型相匹配的輸入類型。 This is because the Vector Databases are data type agnostic- you can put any number or combination of strings, objects, or structs into a database (with vectors of different dimensions too, if you'd like) and it will work- because the get functions only consider entries relevant to them (meaning if you pass in a 700dimension vector, any entries with a vector of different dimensions aren't considered).這樣做是有些罰款,因為無論您是否要考慮它們,Getter功能仍然需要迭代陣列中的每個條目。
- 要刪除數據庫中的條目,您可以使用“從矢量數據庫”節點中刪除輸入矢量並刪除任何匹配的“刪除條目”。如果將bremoveallocciscorences設置為true。然後,將刪除具有匹配向量的任何條目。還有一個“刪除”浮點輸入,如果將其設置為上方的浮點數,則將刪除(或at)中給定距離距離矢量距離的任何匹配。
- 此外,還有純粹的節點可以在數據庫中獲取輸入數(以及用於獲取字符串輸入計數,對象輸入數和結構輸入計數的單獨的Getter節點)。
生成向量
當前,該插件具有“生成OpenAi嵌入”藍圖功能,該藍圖功能具有字符串輸入,以及包含API端點,模型和API鍵的結構,並向指定的端點(遵循OpenAI嵌入API格式)提出API請求,並將結果返回,並將結果返回作為VLOATS,可用來用於向量數據庫數據量表功能功能。