讓你的文件活起來 - RAG 實作
這是在 iThome 所舉辦的 Hello World Dev Conference 工作坊的內容。本次工作坊將帶著大家理解 RAG(Retrieval-Augmented Generation)技術,並使用 Python 程式語言及 LangChain 框架進行實作,最終將文件轉化為可以進行互動問題的知識庫。
現在沒用過 AI 服務的人大概都要被歸類到上個世代的化石了。不得不說,這些 AI 服務真的很厲害,但到目前一直有個比較大的困擾,就是它有時候會一本正經的講幹 話,就算遇到它不會的問題,因為它講出來的內容太有自信,導致不知道它到底是真的假的。
舉個例子,如果你幫公司做了一個用來做知識管理(Knowledge Management, KM)的網站,公司內部一些相關的規定都可以在這裡查到。你在這個網站上掛了一個聊天機器人,當訪客問機器人你們家的產品多少價錢或是該怎麼退換貨的時候,這時候不知道就該說不知道,而不是硬擠答案出來。我們可以透過適當的「提示(Prompt)」來限制 AI 的回答,但還是希望 AI 不要隨便亂回答,但就是因為這樣,才有了 RAG 的出現。
重要!請先看這裡!
因為活動現場網路頻寬可能不夠快,而且因為會用到的模型檔案有點大,如果大家報名這個工作坊而且想在現場跟著一起實作的話,建議可以找空檔完成以下步驟:
- 下載 Ollama 應用程式
請在這裡選擇合適的版本下載並安裝。
- 下載模型
在本次工作坊中,我將使用 mistral
模型做為範例,這個模型大概有 4GB,你也可以選擇其它模型。先執行指令下載 mistral
模型:
$ ollama pull mistral
另外還會用到另一個比較小的模型 nomic-embed-text
,也可以順便先拉下來:
$ ollama pull nomic-embed-text
或是直接執行也可以:
$ ollama run mistral
如果還沒下載過 mistral
模型的話,這個指令會幫你下載,並且直接進入聊天模式,然後就可以開始問它問題了:
$ ollama run mistral
>>> 你好 :)
嗨,nice to meet you! 今天好吗?
(Hello, nice to meet you! How are you today?)
如果有需要帮助的话,我会尽力帮到您。
(If you need any help, I will do my best to assist.)
如果有空檔的話,以下這兩個也可以順便安裝一下:
比較花時間的安裝到這裡差不多就算完成了。
名詞解釋
AI 時代一堆專有名詞或縮寫真的滿天飛,所以我們先從名詞解釋開始