
如何快速實現REST API集成以優化業務流程
基本思路就是文本進行拆分,然后embeding成向量,存儲到向量數據庫,作為知識庫,然后問答時從知識庫查詢,將查詢到的向量以及匹配的文本,作為背景知識 ,加上固定的prompt,引導llm模型輸出答案,如下代碼所示,{{context}}即為背景知識。
"""
背景知識:
{{context}}
根據上述已知信息,簡潔和專業的來回答用戶的問題。
如果無法從中得到答案,請說 “根據已知信息無法回答該問題” 或 “沒有提供足夠的相關信息”,
不允許在答案中添加編造成分,答案請使用中文。
問題是:{{question}}
"""
除了類似阿里等商業方案,對于中小企業,可以考慮輕量級的開源方案。
調研了幾個開源方案,從部署難易程度上選擇了fastgpt。
FastGPT 是一個基于 LLM 大語言模型的知識庫問答系統,提供開箱即用的數據處理、模型調用等能力。同時可以通過 Flow 可視化進行工作流編排,從而實現復雜的問答場景。
其技術棧如下:
fastgpt提供了基礎的docker部署腳本,默認用openapi的接口,所以只需要一個openapi的token即可,考慮到openapi對國內有限制,可以考慮將服務器部署到國外服務器;當然也可以申請國內llm的token,比如百度文心一言、火星大模型等。
具體參考官方教程,熟悉docker的話,參考說明文檔,修改openapi的token即可,還是比較簡單的。
缺點是fastgpt的web端代碼中不分代碼寫死了,比如有些地方固定用了中文的界面,對于英文應用稍顯不足,不過也可以自己修改代碼,編譯之后更新docker容器。
fastgpt的模式是創建應用,然后應用可以關聯知識庫,知識庫通過上傳文檔或者自定義生成,集成分成html鏈接和api 2種方式。
對話接口文檔,主要配置appIDd,chatId和messages內容,messages指定role和content。
如果只是簡單應用,可以考慮fastgpt,快速簡單。
Langchain-Chatchat主要利用langchain思想實現的基于本地知識庫的問答應用,目標期望建立一套對中文場景與開源模型支持友好、可離線運行的知識庫問答解決方案。通過使用FastChat接入 Vicuna, Alpaca, LLaMA, Koala, RWKV 等模型,依托于langchain框架支持通過基于FastAPI提供的 API 調用服務,或使用基于Streamlit的 WebUI 進行操作。
quivr構建了一個完全可控的知識庫問答平臺,支持docker部署,需要額外部署或者申請Supabase。
用法也比較簡單,定義知識庫,上傳文檔,問答時選定知識庫即可。
文檔支持更豐富,如Text, Markdown, PDF, Powerpoint, Excel, CSV, Word, Audio, Video。
DB-GPT是一個開源的數據庫領域大模型框架。目的是構建大模型領域的基礎設施,通過開發多模型管理、Text2SQL效果優化、RAG框架以及優化、Multi-Agents框架協作等多種技術能力,讓圍繞數據庫構建大模型應用更簡單,更方便。
DB-GPT功能更強大,不僅支持文本問答,還支持圖表展示。
本文章轉載微信公眾號@青稞AI