基本思路就是文本進行拆分,然后embeding成向量,存儲到向量數據庫,作為知識庫,然后問答時從知識庫查詢,將查詢到的向量以及匹配的文本,作為背景知識 ,加上固定的prompt,引導llm模型輸出答案,如下代碼所示,{{context}}即為背景知識。

"""
背景知識:
{{context}}
根據上述已知信息,簡潔和專業的來回答用戶的問題。
如果無法從中得到答案,請說 “根據已知信息無法回答該問題” 或 “沒有提供足夠的相關信息”,
不允許在答案中添加編造成分,答案請使用中文。
問題是:{{question}}
"""

2.開源方案介紹

除了類似阿里等商業方案,對于中小企業,可以考慮輕量級的開源方案。

調研了幾個開源方案,從部署難易程度上選擇了fastgpt。

2.1 fastgpt

FastGPT 是一個基于 LLM 大語言模型的知識庫問答系統,提供開箱即用的數據處理、模型調用等能力。同時可以通過 Flow 可視化進行工作流編排,從而實現復雜的問答場景。

其技術棧如下:

fastgpt提供了基礎的docker部署腳本,默認用openapi的接口,所以只需要一個openapi的token即可,考慮到openapi對國內有限制,可以考慮將服務器部署到國外服務器;當然也可以申請國內llm的token,比如百度文心一言、火星大模型等。

具體參考官方教程,熟悉docker的話,參考說明文檔,修改openapi的token即可,還是比較簡單的。

https://doc.fastgpt.in/docs/installation/docker/

缺點是fastgpt的web端代碼中不分代碼寫死了,比如有些地方固定用了中文的界面,對于英文應用稍顯不足,不過也可以自己修改代碼,編譯之后更新docker容器。

fastgpt的模式是創建應用,然后應用可以關聯知識庫,知識庫通過上傳文檔或者自定義生成,集成分成html鏈接和api 2種方式。

對話接口文檔,主要配置appIDd,chatId和messages內容,messages指定role和content。

如果只是簡單應用,可以考慮fastgpt,快速簡單。

2.2 Langchain-Chatchat

Langchain-Chatchat主要利用langchain思想實現的基于本地知識庫的問答應用,目標期望建立一套對中文場景與開源模型支持友好、可離線運行的知識庫問答解決方案。通過使用FastChat接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于langchain框架支持通過基于FastAPI提供的 API 調用服務,或使用基于Streamlit的 WebUI 進行操作。

2.3 quivr

quivr構建了一個完全可控的知識庫問答平臺,支持docker部署,需要額外部署或者申請Supabase。

用法也比較簡單,定義知識庫,上傳文檔,問答時選定知識庫即可。

文檔支持更豐富,如Text, Markdown, PDF, Powerpoint, Excel, CSV, Word, Audio, Video。

2.4 DB-GPT

DB-GPT是一個開源的數據庫領域大模型框架。目的是構建大模型領域的基礎設施,通過開發多模型管理、Text2SQL效果優化、RAG框架以及優化、Multi-Agents框架協作等多種技術能力,讓圍繞數據庫構建大模型應用更簡單,更方便。

DB-GPT功能更強大,不僅支持文本問答,還支持圖表展示。

本文章轉載微信公眾號@青稞AI

上一篇:

萬字長文!何謂Agent,為何Agent?

下一篇:

全面認識AI Agent,一文讀懂AI智能體的架構指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費