有沒有類似 Coze 的開源項(xiàng)目?
目前有兩個(gè) Coze 的開源平替,同樣支持智能體搭建:FastGPT 和 Dify。
就目前的體驗(yàn)來看,二者各有優(yōu)劣:
關(guān)于 FastGPT,可以看之前的教程:0基礎(chǔ)搭建本地私有知識(shí)庫,給 GPT 插上翅膀
今日分享,將手把手帶大家私有化部署體驗(yàn) Dify,并把它接入個(gè)人微信。
?在線體驗(yàn):https://dify.ai/
開源地址:https://github.com/langgenius/dify
官方文檔:https://docs.dify.ai/v/zh-hans
Dify 是 Do it for you (為你而做)的簡稱。
和 Coze 非常類似,Dify 也內(nèi)置了構(gòu)建 LLM 應(yīng)用所需的關(guān)鍵技術(shù)棧,包括對(duì)數(shù)百個(gè)模型的支持、直觀的 Prompt 編排界面、高質(zhì)量的 RAG 引擎、穩(wěn)健的 Agent 框架、靈活的流程編排,以及一套易用的界面和 API。
如果你用過 Coze 搭建智能體,那么遷移到 Dify 會(huì)非常絲滑。
如果你沒用過 Coze,那么可以前往上面的在線體驗(yàn)地址,先去點(diǎn)點(diǎn)看~
如果不想自己部署,官方地址也提供了一定的免費(fèi)額度,不過只支持上傳 50 個(gè)文檔,且支持 RAG 的向量空間也只有 5 MB。
如果不想付費(fèi),且對(duì)自己的私有數(shù)據(jù)安全有更高要求,那么強(qiáng)烈建議你本地私有化部署,參考下面步驟,相信你也能搞定!
?參考文檔:https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/docker-compose
首先,克隆 Dify 源代碼至本地,然后進(jìn)入 docker 目錄,復(fù)制一份環(huán)境變量,采用默認(rèn)端口,一鍵啟動(dòng):
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker compose up -d
啟動(dòng)成功后,你會(huì)發(fā)現(xiàn)共有 9 個(gè)容器:包括 3 個(gè)業(yè)務(wù)服務(wù) api / worker / web,以及 6 個(gè)基礎(chǔ)組件 weaviate / db / redis / nginx / ssrf_proxy / sandbox。
內(nèi)存占用共計(jì) 1690 M,所以至少確保有一臺(tái) 2G 內(nèi)存的機(jī)器。
因?yàn)轫?xiàng)目中啟動(dòng)了一個(gè)容器 nginx 將 web 服務(wù)轉(zhuǎn)發(fā)到 80 端口,所以在瀏覽器中,直接輸入公網(wǎng) IP 即可,設(shè)置一下管理員的賬號(hào)密碼,進(jìn)入應(yīng)用主界面。
整個(gè)界面非常簡單,先不管能干啥,我們先把大模型接入進(jìn)來。
怎么接入?
不得不說,Dify 把這么重要的需求設(shè)置的實(shí)在太隱秘了,著實(shí)折騰了一段時(shí)間才找到??
在設(shè)置
里找到模型供應(yīng)商
,這里已經(jīng)支持了上百款模型,我這里主要先接入了三款有免費(fèi)額度的。
其中:
在火山方舟控制臺(tái)找到:在線推理-創(chuàng)建推理接入點(diǎn),就可以拿到接入點(diǎn)名稱。
如果你打算采用本地部署的大模型,Dify 也提供了對(duì) Ollama 的支持:
不了解 Ollama 的小伙伴,可以回看教程:本地部署大模型?看這篇就夠了,Ollama 部署和實(shí)戰(zhàn)
如果你有用過 OneAPI 管理過各種大模型,Dify 也提供了對(duì) OpenAI-API-compatible 的支持:
不了解 OneAPI 的小伙伴,可以回看教程:一鍵封裝成OpenAI協(xié)議,強(qiáng)推的一款神器!
回到主頁,點(diǎn)擊創(chuàng)建空白應(yīng)用
,這里的聊天助手和文本生成應(yīng)用,是功能最為單一的 LLM 應(yīng)用,都不支持工具和知識(shí)庫的接入。
Agent 和 工作流有什么區(qū)別?
通常,我們需要 Agent 和 工作流配合使用,Agent 負(fù)責(zé)對(duì)話理解,Workflow 處理具體的定制功能。
今天,我們就把上一篇在 coze 做的微信消息轉(zhuǎn)發(fā)插件遷移過來,給大家展示一下工作流的搭建方式。看看 Dify 能否完成同樣的功能。
先創(chuàng)建一個(gè)工作流,進(jìn)來后,在開始
中添加后面添加添加兩個(gè)參數(shù):好友昵稱 和 消息內(nèi)容:
然后在開始
后面添加一個(gè) Http 請(qǐng)求:
在 Http 請(qǐng)求中填入相關(guān)信息:url 就是上篇中搭建的機(jī)器人的發(fā)送消息的API
,body 內(nèi)容參考請(qǐng)求體參數(shù)填寫,如下圖所示。
注意,上述填寫 json 結(jié)構(gòu)體時(shí),一定要將變量加雙引號(hào),否則后面測試不通。
最后,創(chuàng)建一個(gè)結(jié)束流程,把 http 請(qǐng)求接口的結(jié)果進(jìn)行返回。
創(chuàng)建成功后,點(diǎn)擊運(yùn)行
測試一下:
運(yùn)行
測試沒問題后,你需要將它發(fā)布為一個(gè)工具(類似 coze 中的插件),才能供后面的 Agent 調(diào)用。
注意:這里的工具調(diào)用名稱,是后續(xù)給大模型調(diào)用的,工具描述需要寫清楚。
工具發(fā)布以后,回到首頁,在工具 tab 頁的工作流中可以看到:
接下來,我們來創(chuàng)建一個(gè) Agent 應(yīng)用,來調(diào)用該工具:
可以先設(shè)置一下角色提示詞:
你作為一個(gè)聊天機(jī)器人,能夠深刻理解對(duì)話內(nèi)容背后的意圖??梢允褂脀echat_msg工具,給對(duì)方的微信號(hào)發(fā)送答復(fù)。
然后,在下方的工具處,把我們剛發(fā)布的工具添加進(jìn)來:
最后,如果指令任務(wù)執(zhí)行的不夠好,右上角選擇切換一個(gè)大模型:
在右側(cè)的預(yù)覽與調(diào)試
區(qū)域,測試一下吧~
測試案例一:
聯(lián)系客服