客服機器人LLM的DIY製作(上)
2025/06/17 20:00
瀏覽200
迴響0
推薦10
引用0
老闆要你做一個客服機器人,除了伶牙俐齒、善解人意之外,最重要的是能夠將貴公司內部的資料,如數家珍地娓娓道來,並且提供客人最好的解決方案。
現存的線上或本地LLM不可能幫你做這些,因為它並不擁有貴公司即時的、各種不同機密等級的資料, 老闆也不准你上傳, (但據我所知,很多員工都偷偷的把公司機密上傳了 - 為了業績、討好老闆,管不了這麼多) 所以這些資料必須由公司內部的IT部門提供。
這樣的應用不只是客服,公司內部的許多計畫和報告,也都需要內部資料和LLM整合,才能夠寫得洋洋灑灑,光彩奪目。身為IT的負責人,你必須提供一個公司資料和LLM的整合方案。而最簡單快速的方法就是RAG(Retrieval-Augmented Generation),資料當然還是由IT部門負責管控 ,只有在適當的時機,才會提交給本地端LLM產生報告。
我們在上一篇的文章中,提到如何建置本地端LLM, 而RAG的基本做法,就是在使用者提出問題(Query)之後,將公司內部最相關的資料,以上下文(context)的方式置入在提示詞(prompt)中 ,一併交給本地的LLM去處理,LLM就會利用這些資料,以及它本身早被訓練的知識,整合成完整的答案,讓客戶滿意(這是客服的場合)、讓老闆高興( 這是開會報告的場合) 、或者讓新進人員利用這樣的一個知識庫(Knowledge Base),快速進入狀況。
這裡談的當然是用開源軟體來完成RAG, 因為如果公司有錢,不在乎購買軟體,同意找顧問公司準備內部資料,最後再整合到LLM,從頭到尾把IT部門冷落一旁,那就不用再看下去 。
我們的第一個步驟是準備資料,IT部門應該有100%的能力完成。至於哪一種格式,比方CSV, PDF, XLS,這要看我們的開源軟體支援那些。
接下來要做的就叫做Embedding,所謂的Embedding,其實就是將這些資料的語意(semantics),以高維向量的方式表達。簡單的說,我們內部知識庫裡面的每一句(段)話,通通都被轉變成了一個個單獨的高維向量。我們所用的開源軟體叫做 sentence transformers。
而這些高維向量,必須以高維度的向量資料庫加以索引(index)並且加以儲存(store)。我們所用的開源軟體叫做FAISS
以上就是前置的準備工作。
現在我們把鏡頭轉到客戶端。當顧客開始問了第一個問題(Query):”請問貴公司的產品ABC,和市面上其他競品比較,優勢在哪裡?”
此時我們要將這個問題本身去做Embedding,產生一個高維度的向量,然後這個向量將會和我們前所儲存的所有向量的距離做個比較,距離最近的幾個會被調出來,當作上下文(context)。
接下來工作,就是將問題(Query)以及上下文(context)一起交給LLM,然後等著拿答案。
在下一篇關於RAG的文章,我們將會看到DIY RAG 的詳細步驟,以及可使用的完整程式碼。
你可能會有興趣的文章:
限會員,要發表迴響,請先登入