电竞比分网-中国电竞赛事及体育赛事平台

分享

AI 實(shí)戰(zhàn):手把手教你使用「扣子/coze」來(lái)搭建個(gè)人blog知識(shí)庫(kù)

 長(zhǎng)沙7喜 2024-04-05 發(fā)布于湖南

前言

從 2022 年的 OpenAI 的ChatGPT3.5發(fā)布,AI 技術(shù)迅速火遍全宇宙。全人類開(kāi)始都在討論 AI 技術(shù)的未來(lái)和人類自己的未來(lái)。比如“AI 是否能夠替代人類”、“AI 究竟是什么?”、“AI是否能增加每個(gè)人的失業(yè)風(fēng)險(xiǎn)”、“安全與隱私問(wèn)題如何平衡”、“AI 是否會(huì)導(dǎo)致社會(huì)的不平等問(wèn)題加劇?”等等的話題。

2023 年是可以說(shuō)是 AI 技術(shù)的發(fā)展元年。很多有能力的公司都在做自己的 「LLM」「文心一言」、「Qwen」「云雀語(yǔ)言大模型」、「Genimi」「天工大模型」、「混元大模型」「ChatGLM2」、「Llama2」、「GPT-4」,「GPT-3.5」「百川大模型」等。

這么多的大模型在這一年的時(shí)間里面在不斷的進(jìn)化,不斷的提升各自模型的能力。從開(kāi)始單一的聊天對(duì)話形式不斷進(jìn)化為多模態(tài)的形式,「文生圖」「圖生文」、「圖生圖」等模型的能力越來(lái)越強(qiáng)。尤其是在編碼能力方面給我們程序員提供了很多的幫助。

在如今 AI 火爆的時(shí)代,作為程序員的我們?nèi)绾问褂?AI 技術(shù)來(lái)給我們提供幫助?比如:學(xué)習(xí)、提升技能、工作、生活等等的方面。這個(gè)問(wèn)題是我們值得思考的一個(gè)問(wèn)題。對(duì)于這個(gè)世界的大部分人來(lái)說(shuō) AI 技術(shù)其實(shí)就是一個(gè)工具,AI 技術(shù)在未來(lái)一定會(huì)給我們的生活提供很多便捷性,就好比第二次工業(yè)革命一樣,它淘汰了很多個(gè)體體力勞動(dòng)者,取而代之的是很多工業(yè)企業(yè)。同樣現(xiàn)在也一樣好多企業(yè)已經(jīng)在思考 使用AI 技術(shù)在自己的企業(yè)賦能。那作為個(gè)人的我們?nèi)绾问褂?AI 技術(shù)來(lái)提升我們的工作和生活效率能?

主題

接下來(lái)我們就探索如何使用 「扣子/coze」 來(lái)構(gòu)建一個(gè)自己的個(gè)人blog知識(shí)庫(kù)。

?

扣子是新一代一站式 AI Bot 開(kāi)發(fā)平臺(tái)。無(wú)論你是否有編程基礎(chǔ),都可以在扣子平臺(tái)上快速搭建基于 AI 模型的各類問(wèn)答 Bot,從解決簡(jiǎn)單的問(wèn)答到處理復(fù)雜邏輯的對(duì)話。而且你可以將搭建的 Bot 發(fā)布到各類社交平臺(tái)和通訊軟件上,讓更多的用戶與你搭建的 Bot 聊天。https://www./

?

功能架構(gòu)設(shè)計(jì)

「扣子/coze」 是一個(gè) LLM 的應(yīng)用開(kāi)發(fā)工具,他內(nèi)置了很多自己的工具,可以提供給開(kāi)發(fā)者直接使用。而且他還提供了自定義相關(guān)插件的功能,那么我們就可以結(jié)合他的自定義的能力擴(kuò)展出很多的能力,從而可以構(gòu)建我們自己的應(yīng)用程序。

扣子/coze 的功能特點(diǎn):

插件

  • 內(nèi)置插件
  • 自定義插件

數(shù)據(jù)源

  • 內(nèi)容上傳
  • URL 獲取在線網(wǎng)頁(yè)內(nèi)容
  • API JSON 數(shù)據(jù)
  • 自定義數(shù)據(jù)集

持久化

  • 數(shù)據(jù)庫(kù)
  • 知識(shí)庫(kù)

工作流

使用工作流可以無(wú)縫的將自己的業(yè)務(wù)邏輯與相關(guān)的工具集相結(jié)合,從而構(gòu)建強(qiáng)大的業(yè)務(wù)能力。

下面是使用扣子來(lái)搭建自己的blog「知識(shí)庫(kù)」的功能設(shè)計(jì)圖:

圖片
知識(shí)庫(kù)的功能設(shè)計(jì)圖

前提

本文只要是將自己的 blog 網(wǎng)站的內(nèi)容作為知識(shí)庫(kù)的數(shù)據(jù)源來(lái)構(gòu)建自己的知識(shí)庫(kù)。所以如果你想構(gòu)建自己自己的博客知識(shí)庫(kù)就首先需要有一個(gè)博客網(wǎng)站。如果你本地有很多的文本內(nèi)容同樣可以構(gòu)建自己的知識(shí)庫(kù),不過(guò)需要稍微做個(gè)變換就行。本文主要就是提供個(gè)思路,僅做參考,提供思路。

配置插件工具

「search_keywords」插件工具的主要功能就是根據(jù)執(zhí)行一個(gè) 博客內(nèi)容API 請(qǐng)求。返回的內(nèi)容需要一個(gè) json 的數(shù)據(jù),因?yàn)樾枰獙?strong>「search_keywords」插件工具在工作流中解析使用。

配置插件工具比較簡(jiǎn)單,跟著提示一直構(gòu)建就行。

圖片

在第三步:配置輸出參數(shù)使用“自動(dòng)解析”即可。

第四步:調(diào)試與校驗(yàn)完成后,顯示調(diào)試通過(guò)即可保存。最后回到首頁(yè)點(diǎn)擊發(fā)布。

圖片

我這里請(qǐng)求 API 不需要請(qǐng)求參數(shù),所以為空,大家根據(jù)自己的情況配置即可。

配置工作流

工作流的功能就是將一些工具集或者是另外的一些工作流串起來(lái),創(chuàng)聯(lián)每個(gè)步驟的數(shù)據(jù)輸入以及輸出,使功能滿足自己的業(yè)務(wù)邏輯的流程。

我們?cè)诳臻g(個(gè)人/團(tuán)隊(duì))里面點(diǎn)擊工作流,進(jìn)入工作流配置頁(yè)面中創(chuàng)建自己的工作流。

這里面有一個(gè)名字是 「keywords_search」的工作流:

圖片

工作流的節(jié)點(diǎn)配置以及功能如下:

圖片

我們配置了 4 個(gè)節(jié)點(diǎn),下面分別說(shuō)明一下每個(gè)節(jié)點(diǎn)的作用:

開(kāi)始節(jié)點(diǎn):

開(kāi)始節(jié)點(diǎn)是工作流的默認(rèn)節(jié)點(diǎn),我們可以配置輸入?yún)?shù)以及參數(shù)的數(shù)據(jù)類型。這里我們配置一個(gè) query:string的參數(shù)提供關(guān)鍵字的查找。

search_keywords節(jié)點(diǎn):

「search_keywords」節(jié)點(diǎn)就是我們上面配置的插件,用來(lái)獲取我們 API 的內(nèi)容。這里插件可以在工作流的左側(cè)插件列表中找到。插件列表提供了系統(tǒng)內(nèi)置的插件和自定義的插件。

圖片

代碼節(jié)點(diǎn):

代碼節(jié)點(diǎn)的功能是將 「start」節(jié)點(diǎn)的 query 參數(shù)與「search_keywords」節(jié)點(diǎn)返回的參數(shù)data作為輸入的參數(shù)數(shù)據(jù),并對(duì) data 的數(shù)據(jù)做過(guò)濾,并將過(guò)濾后的數(shù)據(jù)返回。

  • input 參數(shù):引用開(kāi)始節(jié)點(diǎn)的 query 參數(shù)的值。
  • seach_result參數(shù):引用「search_keywords」節(jié)點(diǎn)返回的數(shù)據(jù)值。

我們編寫代碼來(lái)過(guò)濾數(shù)據(jù):

 async function main({ params }: Args): Promise<Output{
     const regex = new RegExp(params.input, 'i');
     let ret = [];
     for (let item of params.search_result) {
         // let item = params.search_result[idx]
         var data = {
             'content''',
             'date''',
             'permalink''',
             'summary''',
             'title'''
         }
         if (regex.test(item.title)) {
             data.content = item.content
             data.date = item.date
             data.permalink = 'https://'+item.permalink
             data.summary = item.summary
             data.title = item.title
             ret.push(data)
         }
     }
 
     return ret
 }
  • 配置返回值中參數(shù)名稱以及數(shù)據(jù)類型,提供模型回答時(shí)候卡片內(nèi)容的展示配置。

結(jié)束節(jié)點(diǎn):

這個(gè)節(jié)點(diǎn)是「工作流」的默認(rèn)結(jié)束節(jié)點(diǎn),這里我們只需要配置他的輸入?yún)?shù)引用的是代碼節(jié)點(diǎn)返回的參數(shù) ret即可。

調(diào)試工作流:

配置完成后我們可以試用行我們配置的工作流,點(diǎn)擊「試運(yùn)行」,輸入query參數(shù)的值,提交后查看運(yùn)行結(jié)果。

圖片

這里清晰的可以看到每一步的輸入?yún)?shù)和輸出參數(shù)。

?

這里有一點(diǎn)需要注意的就是:我們自定義的插件的返回的數(shù)據(jù)一定需要有個(gè)字段名稱,否則這里配置參數(shù)引用的時(shí)候會(huì)報(bào)錯(cuò)“節(jié)點(diǎn)參數(shù)校驗(yàn)失敗”。

?

知識(shí)庫(kù)構(gòu)建:

「扣子/coze」 的知識(shí)庫(kù)功能支持上傳外部數(shù)據(jù)(例如本地文件、實(shí)時(shí)在線數(shù)據(jù)),通過(guò)向量搜索來(lái)檢索最相關(guān)的內(nèi)容以回答用戶的問(wèn)題,這可以幫助你的 Bot 更精確地回答問(wèn)題。

我們將自己的網(wǎng)站或者 blog 網(wǎng)站的內(nèi)容導(dǎo)入知識(shí)庫(kù),通過(guò)知識(shí)庫(kù)的自動(dòng)更新能力,讓 Bot 幫助你收集最新數(shù)據(jù)。當(dāng) Bot 使用了這個(gè)知識(shí)庫(kù)后,你就可以擁有一個(gè)專屬領(lǐng)域的 Bot。

圖片

一個(gè)知識(shí)庫(kù)中可添加一個(gè)或多個(gè)單元,用于存儲(chǔ)外部數(shù)據(jù)。每個(gè)單元可包含多個(gè)分段,分段是一條獨(dú)立的信息或特定的內(nèi)容塊。上傳到知識(shí)庫(kù)中的內(nèi)容會(huì)被分割成多個(gè)分段,然后通過(guò)向量召回,召回最相關(guān)的分段,幫助模型提高回答的準(zhǔn)確性。

圖片

我們創(chuàng)建自己的知識(shí)庫(kù):「blog知識(shí)庫(kù)」

創(chuàng)建好知識(shí)庫(kù)后,點(diǎn)擊新增單元,并選擇導(dǎo)入文件的方式,這里我們選擇「在線數(shù)據(jù)」來(lái)導(dǎo)入博客的頁(yè)面內(nèi)容。

圖片

點(diǎn)擊保存后會(huì)自動(dòng)創(chuàng)建單元,并對(duì)數(shù)據(jù)進(jìn)行分段。

圖片

如此我們可以將所需要的頁(yè)面內(nèi)容來(lái)構(gòu)建知識(shí)庫(kù)。

圖片

創(chuàng)建Bot

?

點(diǎn)擊 bot 頁(yè)面 > 創(chuàng)建 bot > 填寫名稱+介紹 > 結(jié)束

?
圖片

Prompt 提示詞編排

配置人設(shè)與回復(fù)邏輯:

人設(shè)與回復(fù)邏輯:是一種自然語(yǔ)言指令,告訴大語(yǔ)言模型(LLM)執(zhí)行什么任務(wù)。搭建 Bot 的第一步就編寫提示詞,為 Bot 設(shè)定身份和目標(biāo)。Bot 會(huì)根據(jù)大語(yǔ)言模型對(duì)人物設(shè)定和回復(fù)邏輯的理解,來(lái)響應(yīng)用戶問(wèn)題。因此提示編寫的越清晰明確,Bot 的回復(fù)也會(huì)越符合預(yù)期。

?

參考編寫建議:https://www./docs/guides/prompt

?

我們輸入一段自然語(yǔ)言,比如:

 # 角色
 你是一位知識(shí)庫(kù)助手,可以提取、總結(jié)、分析和解釋內(nèi)容,并以通俗易懂的語(yǔ)言回答相關(guān)問(wèn)題。
 
 ## 技能
 ### 技能 1: 知識(shí)庫(kù)獲取數(shù)據(jù)
 1. 從知識(shí)庫(kù)中查找并提取相關(guān)內(nèi)容。
 2. 對(duì)知識(shí)庫(kù)中的內(nèi)容做總結(jié)。
 3. 如果用戶輸入的內(nèi)容格式為“q=keyword”,需要提取等號(hào)后面的內(nèi)容并去除空格,并調(diào)用“keywords_search”工作流來(lái)查找內(nèi)容。
 4. 用戶輸入的內(nèi)容格式為's=keyword'時(shí),不要調(diào)用“知識(shí)庫(kù)”和“keywords_search”工作流來(lái)查找內(nèi)容,你需要提取等號(hào)后面的內(nèi)容并調(diào)用“必應(yīng)搜索”插件來(lái)搜索結(jié)果。
 
 ### 技能 2: 搜索引擎
 1. 如果沒(méi)有找到任何內(nèi)容輸出:“暫未找到相關(guān)內(nèi)容,是否使用搜索引擎搜索內(nèi)容?”,當(dāng)用戶輸入“是”或者“是的”或者“yes”等肯定回答的情況下調(diào)用“必應(yīng)搜索”插件來(lái)獲取相關(guān)內(nèi)容。
 
 ## 限制
 - 所輸出的內(nèi)容必須按照給定的格式進(jìn)行組織,不能偏離框架要求。
 - 在使用特定編程語(yǔ)言提取數(shù)據(jù)時(shí),必須解釋所使用的邏輯和方法,不能僅僅給出代碼。
 - 未找到內(nèi)容時(shí)不要輸出卡片數(shù)據(jù)。
 - 只會(huì)輸出知識(shí)庫(kù)中已有內(nèi)容, 不在知識(shí)庫(kù)中的內(nèi)容, 需要通過(guò)工具去了解。
 - 輸出的內(nèi)容請(qǐng)標(biāo)記文檔連接。 
 - 請(qǐng)使用 Markdown 的 ^^ 形式說(shuō)明引用來(lái)源。

然后使用優(yōu)化工具來(lái)優(yōu)化 Prompt:

圖片

工具編排

技能區(qū)域有 3 部分的配置:

  • 技能:插件、工作流
  • 記憶:知識(shí)庫(kù)、數(shù)據(jù)庫(kù)
  • 高級(jí):開(kāi)場(chǎng)白、用戶問(wèn)題建議、音色

插件配置

我們選擇“必應(yīng)搜索”插件來(lái)提供網(wǎng)絡(luò)搜索。我們的 「prompt」的有一條指令 4. 用戶輸入的內(nèi)容格式為's=keyword'時(shí),不要調(diào)用“知識(shí)庫(kù)”和“keywords_search”工作流來(lái)查找內(nèi)容,你需要提取等號(hào)后面的內(nèi)容并調(diào)用“必應(yīng)搜索”插件來(lái)搜索結(jié)果。來(lái)執(zhí)行必應(yīng)搜索插件獲取內(nèi)容。

配置卡片數(shù)據(jù)綁定:

這里面可以配置卡片的樣式,卡片需要綁定的數(shù)據(jù)源等

圖片

工作流配置

工作流配置中添加上面配置的工作流 keywords_search ,并配置卡片的樣式,卡片需要綁定的數(shù)據(jù)源等。

圖片

知識(shí)庫(kù)

只要我們上面配置過(guò)知識(shí)庫(kù),這里就會(huì)自動(dòng)綁定我們預(yù)先配置好的blog知識(shí)庫(kù)。同樣這里可以添加多個(gè)知識(shí)庫(kù)來(lái)提供Bot 使用。

數(shù)據(jù)庫(kù)

我們這里沒(méi)用到數(shù)據(jù)庫(kù),所以不需要配置。

高級(jí)配置

  • 開(kāi)場(chǎng)白文案配置:你好,我是一名知識(shí)庫(kù)助手,可以為你提供各種信息和答案。無(wú)論你需要什么幫助,我都會(huì)盡力回答你的問(wèn)題。

  • 開(kāi)場(chǎng)白預(yù)置問(wèn)題:

    • 請(qǐng)問(wèn)知識(shí)庫(kù)中有關(guān)于golang主題的信息嗎?
    • 幫我總結(jié)一下知識(shí)庫(kù)中涉及到的關(guān)鍵技術(shù)點(diǎn)。
    • 使用技巧:q=keyword 用來(lái)關(guān)鍵字搜索知識(shí)庫(kù)關(guān)鍵字, s=keyword調(diào)用搜索引擎來(lái)獲取內(nèi)容
  • 用戶問(wèn)題建議:使用默認(rèn)配置

  • 音色:選用自己喜歡的。

高級(jí)配置里面相關(guān)文案可以根據(jù)自己的實(shí)際情況配置,以上僅為參考?;蛘呖梢栽谧约旱氖褂眠^(guò)程中不斷的微調(diào),讓大模型更能理解我們的意圖。

預(yù)覽與調(diào)試

配置完成后就可以在 預(yù)覽與調(diào)試看到bot 基本的樣子:

圖片

我們可以在預(yù)覽區(qū)域測(cè)試我們的 Bot 的能力,Bot 的實(shí)際表現(xiàn),如果不符合預(yù)期,根據(jù) Bot 的目標(biāo),分析不符合預(yù)期的原因,并不斷調(diào)整和優(yōu)化回復(fù)「prompt」邏輯。

發(fā)布Bot

Bot編輯好后,如果他的實(shí)際表現(xiàn)符合我們的預(yù)期,我們既可以發(fā)布 Bot,「扣子/coze」支持發(fā)布 Bot 到如圖所示的平臺(tái)。

圖片

具體相關(guān)配置可以參考官方文檔:https://www./docs/guides/publish_to_feishu

總結(jié)

總體來(lái)說(shuō)使用「扣子/coze」來(lái)搭建自己的知識(shí)庫(kù)還是很方便的,通過(guò)「插件工具」,文檔上傳/拉去形成「知識(shí)庫(kù)」,然后通過(guò)「工作流」將工具串聯(lián)起來(lái)。

比較耗費(fèi)時(shí)間的地方就是 「prompt」 人設(shè)與回復(fù)邏輯的調(diào)整。在使用的過(guò)程中會(huì)遇到比較難以理解的回答和不統(tǒng)一的回答:比如

  • 一個(gè)問(wèn)題問(wèn)多次,每次回復(fù)的差距比較大,有的可以找到知識(shí)庫(kù)中的內(nèi)容來(lái)回答,而有的回答提示未找到相關(guān)內(nèi)容。
  • 執(zhí)行 「q=keyword」「s=keyword」 有的時(shí)候可以正確執(zhí)行,但是大多數(shù)的時(shí)候還是不能理解。

演示:

https://www.ixigua.com/7336526048761152010

結(jié)尾:

?

邀請(qǐng)你加入我的 Coze 扣子團(tuán)隊(duì),一起搭建 AI Bot:demo007x's blog ???? https://www./invite/VF78qPsXg0YI58sYEqXt

?

「bot ID:」 7335819782228377640

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多