MongoDB Atlas 解鎖 GenAI 應用服務 研討會 投影片 影片
我在會議上有問三個問題
1.如果是用在 Q & A,是 Q轉成 vector or A轉成 vector或是兩者
2.在網路上爬到的文章如果轉成 vector ,是否有前置作業可以讓 vector search的精準度提高
3.中文文章是否要先分詞
使用方式如下
collection.Aggregate().VectorSearch(vectorField1,embededFloatArrary,limit,searchOption);
建議可以先在 Atlas官網上測試所建立的 vector欄位和 Index可成功執行 vector search
參考 How to Do Semantic Search in MongoDB Using Atlas Vector Search去試試向量搜尋 ,這篇文章也包含如何申請一個免費的環境可以使用,只能說 MongoDB在教學資訊及環境上都提供友善方式讓使用者學習
20240620 取得 vector 的方式由 HuggingFace API改為 OpenAI API,目前覺得中文搜尋結果會比較好 。
最近在試 Mongodb Atlas vector search,發現爬回來的文章轉成 embedded vector 後查詢的準確度一直很差,在網路找了文章又學到了一些東西,知道要開始找 chunk的 lib去分割文章再去轉換成 vector
針對這個問題,直接問 ChatGPT,他的回答如下
文章太長對於向量檢索的準確度可能會產生一些影響,具體的影響取決於所使用的模型、文本的內容以及檢索的任務。以下是一些可能的影響:
寫 Line Bot 可以學到很多技術,讓我成長不少,資料的交換,程式的更新/佈署,資料庫的選擇及 Line 顯示方式,Open AI API串接等
當初寫了 2個 bot ,一個是分機查詢,另一個就是我的小鹿了,多年下班時間的付出讓功能一直改進、增加,增加功能的同時,也在網路上獲得許多先進不吝嗇分享寶貴知識、看法,讓我這個低能力的韭菜也可以慢慢的成長,有更多知識吸收,吸收愈多就會再把它轉成有用的功能
6年下來讓我的心靈和實體方面都有成長,雖然離目標還有一大段,希望我的小鹿頭好壯壯,持續變強讓我快速找到好標的讓基礎持續變大,每年有 5%以上。 感恩。
參考文件 : Connect Using the Microsoft Entity Framework Core (EF Core)
1.先下載 HDBClient 並安裝,在新的版本才會有 dotnetcore目錄及 dll檔
目前只支援 Entity Framework Core 6的版本,所以記得專案 .csproj 的 PackageReference 版本只能是 6如 6.0.14,不能是最新版本的 7.0.0 ,不然會出現 Method not found: 'Void CoreTypeMappingParameters..ctor 的錯誤
2023/12/29 新版的 HDBClient開始支援 7版,請參考 Entity Framework Core Support (SAP HANA Data Provider for Microsoft ADO.NET)
sql
select site, item, step_sequence, opt, sum(in_work) as in_work
from (
select so.site, i.item, ss.step_sequence, concat(o.operation ,ot.description) as opt, (ss.qty_in_queue + ss.qty_in_work) as in_work
程式代碼
var searchFilter = SearchBuilders<TEntity>.Search.Text(queryStr , columnName);
var query = collection.Aggregate().Search(searchFilter,null,indexName).ToList();
參考文章 :
System.Text.Json與 比較 Newtonsoft.Json ,並移轉至System.Text.Json
System.Text.Json: (De)serialization support for quoted numbers #30255
原本使用 Newtonsoft Json.Net 的程式是不會出現錯誤訊息,但是因為改用 System.Text.Json後執行 JsonSerializer.Deserialize 就出現這個錯誤,因為如果在 json string的數字如果是用雙引號的話就會出現,解決方式為如下