日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

知識庫

大模型缺乏私有知識,且通用知識更新滯后。業界通常采用檢索增強生成(RAG)技術來解決這些問題。RAG技術能夠根據用戶輸入,從外部信息源檢索相關信息,并將其整合到用戶輸入中,以提高大模型的回答準確性。知識庫功能作為百煉的RAG能力,能有效補充私有知識和提供最新信息。

無專屬知識庫的應用

在沒有專屬知識庫時,大模型無法準確回答“百煉手機”的問題,因為這是一個虛構的私有知識。

有專屬知識庫的應用

引入專有知識庫后,大模型就能準確回答“百煉手機”方面的問題。

image

image

關于RAG的工作原理等詳細信息,請參見阿里云大模型ACA課程的檢索增強生成

支持的數據格式

當前知識庫支持導入以下格式的原始文檔作為其知識來源:

  • 非結構化數據(pdf、docx、doc、txt、markdown、pptx、ppt、png、jpg、jpeg、bmp、gif等)

  • 結構化數據(xlsx、xls等)

以上類型并不完整,具體請以數據管理中的導入數據頁面顯示為準。

支持從本地上傳(非結構化或結構化數據)、從阿里云對象存儲OSS(非結構化數據)導入、從阿里云數據庫RDS導入三種方式(暫不支持阿里云以外的數據源,如GitHub、Notion等)。

支持的模型

當前知識庫功能支持下列預置模型(不支持自定義模型):

  • 通義千問-Max/Plus/Turbo

  • 通義千問2.5開源版

  • 通義千問2開源版

上述列表并不完整且可能隨時發生變化,請以百煉的我的應用-新增應用頁面中模型選擇下拉框顯示的列表為準。

創建與引用知識庫

步驟一:導入數據

在開始創建知識庫之前,請先依照下方步驟說明,將您的原始文檔導入至百煉的數據管理,以作為創建知識庫時的初始知識來源。

如果您打算基于RDS數據表構建知識庫,可直接跳至步驟二:創建知識庫
選擇結構化或非結構化數據主要取決于您的原始文檔格式,詳情請參見支持的數據格式
API目前只支持導入非結構化數據,詳情參見數據中心 - 添加文檔

導入非結構化數據

  1. 在百煉的數據管理頁面,選擇非結構化數據頁簽。

  2. 在左側類目管理下,選擇需要導入數據的類目。

    單擊image圖標創建類目或選擇默認類目進行導入。百煉對類目創建數量沒有限制。
    每個業務空間最多上傳1萬個文檔。

    image

  3. 單擊導入數據,進入導入數據頁面

  4. 導入方式選擇本地上傳OSS

    百煉支持的OSS Bucket存儲類型不包括歸檔、冷歸檔或深度冷歸檔。支持內容加密的Bucket。支持私有的Bucket。
    OSS Bucket需添加bailian-datahub-access標簽以供百煉訪問,具體操作請參見OSS數據導入授權操作說明
  5. 選擇文檔解析器,默認為阿里云文檔智能解析(暫不支持更改)。

    對于文檔中的插圖,解析器會識別并提取圖中的文本,并生成文本摘要。這些摘要將與文檔中其它非圖片內容一起被切分并轉換為向量,參與知識庫的檢索。
  6. 為文檔配置標簽(可選)。

    通過API調用應用時,可以在請求參數tags中指定標簽。應用在檢索知識庫時,會先根據標簽篩選相關文檔,從而提高檢索效率。
  7. 單擊確認,系統將開始解析并導入文檔。整個過程需一定時間,請耐心等待。

    文檔解析會將上傳文檔轉換成百煉可處理的格式。在請求高峰時段,該過程可能需要較長時間,請耐心等待。

    image

  8. 解析和導入完成后,單擊相應文檔右側的詳情即可查看導入的文檔。

導入結構化數據

  1. 在百煉的數據管理頁面,選擇結構化數據頁簽。

  2. 新建數據表或選擇現有數據表進行導入。

    每個業務空間最多創建1000張數據表,每張表累計可導入的數據上限為10000行(包括表頭)。行數超過此限制將導致導入失敗。請您自行提前對表格中數據進行分割。

    新建數據表進行導入

    單擊image圖標創建數據表。

    image

    1. 自定義數據表名稱。

    2. 配置表結構,可選擇直接上傳Excel自定義表頭

      操作

      說明

      直接上傳Excel

      百煉將自動識別上傳文檔中的表頭,并據此來創建數據表結構,并將其余內容作為數據記錄導入該表。

      自定義表頭

      列名為必填參數,描述為選填參數,類型為必填參數。

      重要
      • 創建數據表后將無法再修改列名、描述以及類型

      • 這里定義的數據表結構,必須和待導入的數據表的結構完全相同,否則會導入失敗。例如,待導入的數據表有2列,這里的表結構必須配置2個字段,且列名需一一對應。您可以通過單擊新增字段操作列的刪除,來增加或刪減字段。

      • 設置字段類型為link時,請確保鏈接公開可訪問且指向一個有效的圖片文件,否則知識庫無法識別該圖片。

        link格式示例:https://example.com/downloads/pic.jpg
        創建知識庫時,link類型字段用于生成圖片索引。百煉會訪問目標圖片并提取其特征,然后通過圖片Embedding轉換為向量并保存。知識庫檢索時,會用該向量與用戶上傳圖片的向量進行相似度比對。

      image

    3. 上傳文檔以導入數據。

      1. 單擊image選擇并上傳文檔(xlsx或xls格式)。

        文檔中必須包含表頭,且與當前數據表的表頭結構一致,否則會導入失敗。
      2. 上傳成功后,單擊預覽可查看導入的數據。

    4. 單擊確定。在左側數據表管理的導航樹中出現新增的數據表。

      image

    選擇現有數據表進行導入

    從左側的數據表管理列表中選擇相應的數據表,然后單擊導入數據

    1. 導入類型選擇覆蓋上傳增量上傳

      您可以單擊頁面上的下載模板,獲取一個僅包含表頭的空白文檔。您可以在該文檔中插入新數據,隨后直接將其用于覆蓋上傳或增量上傳。
    2. 單擊image選擇并上傳文檔(xlsx或xls格式)。

      文檔中必須包含表頭,且與當前數據表的表頭結構一致,否則會導入失敗。
    3. 上傳成功后,單擊預覽可查看導入的數據。

步驟二:創建知識庫

無論是企業認證賬號還是個人認證賬號,知識庫創建均無數量限制。

控制臺

  1. 在百煉的知識索引頁面,單擊創建知識庫

    參數名稱

    參數說明

    數據類型

    選擇非結構化數據結構化數據

    請注意,知識庫創建后將無法更改其數據類型,且單一知識庫無法同時支持非結構化數據與結構化數據。

    選擇結構化或非結構化數據主要取決于您的原始文檔格式。如果您要上傳的原始文檔是pdf、docx、doc、txt、markdown、pptx、ppt、png、jpg、jpeg、bmp、gif等格式,數據類型請選擇非結構化數據;如果您要上傳的原始文檔是xlsx,xls格式,此處請選擇結構化數據

    配置模式

    建議選擇推薦配置(百煉基于過往最佳實踐得出)。若選擇自定義,則可針對知識庫的檢索與召回等關鍵參數進行設置。

    請注意,創建知識庫后將無法更改配置模式中除相似度閾值之外的其它參數

    自定義參數設置

    image

    多輪會話改寫:開啟后百煉將基于會話上下文自動調整原始輸入prompt(用戶問題)以提升檢索效果。

    Embedding模型:用于將原始輸入prompt和知識文本轉化為數值化向量,以便對二者進行相似度比較。默認的DashScope text-embedding-v2模型(暫不支持更改)除了支持中英文雙語外,還支持多種語言,并對向量結果進行歸一化處理。

    Rank模型:位于知識庫外部的評分系統,它會計算用戶問題與知識庫中每個文本切片的相似度分數并按此降序排列,并返回分數最高的前K個文本切片。如果您只需語義排序,請選擇GTE-ReRank排序;若您同時需要語義排序和文本匹配特征以確保相關性,請選擇官方排序(推薦)。

    相似度閾值:該閾值表示允許召回的文本切片的最低相似度分數,用于篩選Rank模型返回的文本切片,即只有分數超過此數值的文本切片才會被召回。調低此閾值預期會召回更多文本切片,但可能導致召回一些相關度較低的文本切片;相反,提高此閾值會減少召回的文本切片。若設置得過高,則可能導致知識庫丟棄相關的文本切片。

    向量存儲類型

    選擇向量數據庫以存儲您的文本向量。選擇內置的向量數據庫足以滿足知識庫的基本功能需求。如需高級功能,如管理、審計和監控數據庫,推薦選擇ADB-PG(AnalyticDB for PostgreSQL)。

  2. 下一步,選擇要導入的文檔或數據來源:

    非結構化數據

    若文檔已在百煉的數據管理中且為目標版本,此處可直接勾選它;否則需先前往數據管理導入(具體操作請參見導入非結構化數據),導入完成后再返回此處進行勾選。

    • 選擇類目:導入已選類目下的所有文檔,支持選擇多個類目。

    • 選擇文件:也可以自行選擇需要導入的文檔。

      單次最多選擇50個文檔,單文檔最大限制100MB或1000頁。

    結構化數據

    選擇數據來源以導入您的結構化數據,可以選擇數據管理關聯RDS

    如果您通過數據管理導入結構化數據,后續您需要手動將數據表的更新同步至知識庫。展開更新知識庫部分查看更新結構化知識庫具體步驟。
    如果您通過云數據庫RDS導入結構化數據,則RDS表中的數據更新將自動同步至知識庫(一般為秒級,但在請求高峰期可能會稍有延遲)。

    數據管理

    若數據表已在百煉的數據管理中且為目標版本,此處可直接勾選它;否則需先前往數據管理導入(具體操作請參見導入結構化數據),導入完成后再返回此處進行勾選。

    關聯RDS

    將RDS實例中特定數據表的數據同步到您的知識庫中。

    實例限制:RDS實例目前只支持MySQL引擎(版本無限制),暫不支持PostgreSQL等其它引擎。實例地域無限制。只支持基礎系列高可用系列(暫不支持開啟數據庫代理)。
    數據庫和表限制:知識庫對關聯的RDS數據庫和數據表的數據量沒有限制,但每一行記錄的大小必須控制在10MB以內。請注意,在創建知識庫后,不建議再對源表進行DDL類操作(例如:DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN),否則可能會導致RDS與知識庫之間的數據同步失敗。欲了解詳情,請參見關于DDL操作的說明

    為了使知識庫能夠接收RDS的數據,您還需要設置RDS實例的白名單。在成功關聯RDS數據表后,頁面將展示表頭和前十條數據。

  3. 下一步,配置知識庫數據處理策略。

    非結構化數據

    參數名稱

    參數說明

    metadata抽取(可選)

    metadata(元數據)是與非結構化文檔內容相關的一系列附加屬性,這些屬性以key-value鍵值對的形式進行存儲和展示。

    元數據的作用:元數據為文檔提供了重要的上下文信息,可顯著提升知識庫檢索的準確性。例如,當在知識庫中檢索“A產品的功能概述”時,如果所有文檔中的內容都包含“功能概述”,但均沒有提到“A產品”,那么知識庫可能會召回大量與原始查詢無關的文本切片。若將產品名稱作為元數據附加到所有文檔及其相關的文本切片上,知識庫就能精準地過濾出與“A產品”相關的且包含“功能概述”的文本切片,從而提高檢索的準確性,同時減少模型的輸入Token消耗。
    元數據的用法:通過API調用應用時,您可以在請求參數metadata_filter中指定metadata。應用在檢索知識庫時,會先根據metadata篩選相關文檔。
    注意:創建知識庫后將無法再配置metadata抽取

    配置metadata抽取

    下方示例圖中該文檔的元數據包含5個自定義屬性:date(文檔中出現的所有年份)、reference(文檔中出現的所有參考文獻)、filename(文檔的名稱)、keywords(文檔中出現的關鍵詞)以及author(文檔的作者信息)。

    image

    開啟metadata抽取,然后單擊meta信息設置知識庫中的所有文檔附加統一或個性化的元數據。下圖是上方示例使用的meta信息模板:

    image

    新建Meta信息模板說明

    取值方法說明:

    • 常量:用于為知識庫中的所有文檔附加一個固定的屬性。

      如上方示例所示,如果知識庫中所有文檔的作者相同,您可以統一設置一個字段名為author的常量。
    • 變量:為知識庫中的每個文檔附加一個可變屬性。目前支持的屬性包括file_namecat_name。選擇file_name時,百煉會將文檔的名稱附加到其元數據中,如上方示例所示。選擇cat_name時,百煉會把文檔所在類目的名稱附加到文檔的元數據中。

    • 大模型:系統將依據設定的實體描述規則,對知識庫中每個文檔的文本內容進行匹配。系統會自動識別并提取文檔中的相關信息,然后將這些信息作為屬性附加到文檔的元數據中。

      如上方示例的meta信息模板所示,如果您希望提取每個文檔中所有出現過的年份信息作為文檔的屬性,可以設置一個名為date的大模型字段,實體描述配置如下:

      image

    • 正則:系統將根據設置的正則表達式,對知識庫中每個文檔的文本內容進行匹配。符合該表達式的內容將被提取,并作為屬性添加到文檔的元數據中。

      如上方示例的meta信息模板所示,如果您希望提取每個文檔中所有出現過的參考資料,并且假設參考資料規律為:以“《”開頭、以“》”結尾,則可以設置一個名為reference的正則字段,正則表達式配置如下:

      image

    • 關鍵詞搜索:系統會在每個文檔中查找預設的關鍵詞,并將找到的關鍵詞作為屬性添加至該文檔的元數據中。

      例如,在上述示例的meta信息模板中,我們預設的關鍵詞為:

      image

      但由于該文檔中僅出現了“融資、產業、綠色、資本”這四個關鍵詞,因此系統只提取了這四個關鍵詞作為該文檔keywords屬性的值。

    是否參與檢索:開啟后表示該屬性將附加到所有文檔及其相關文本切片上,和文本切片內容共同參與知識庫檢索。

    是否參與模型回復:開啟后表示該屬性將附加到所有文檔及其相關的文本切片上,和知識庫召回的文本切片內容共同參與回復生成過程。

    文檔切分chunk

    選擇智能切分(推薦)自定義切分

    文檔切分chunk作用:知識庫會將您的文檔切分成文本切片,并將這些文本切片通過Embedding模型轉換為向量。隨后文本切片和向量將以鍵值對的形式存入向量數據庫中。您可以查看知識庫里每一個文本切片的具體內容(文字和圖片),具體操作請參見查看知識庫
    注意:創建知識庫后將無法再更改文檔切分chunk。不合適的切分策略可能會降低檢索和召回效果,詳情請參見如何檢查文本切片質量
    • 智能切分:采用系統內置切分策略。經評測對于多數文檔可獲得最佳的檢索效果。

    • 自定義切分:如果智能切分無法正常切割,您也可以自定義文檔切分策略。

      自定義切分參數設置

      分句標識符:將文檔按照指定的標點符號(支持多選)分割成小的文本切片。

      分段預估長度:即文本切片的字符數上限。超過該長度時,文本將被強制切割。

      分段重疊長度:即當前文本切片與上一個文本切片的重疊字符數。建議設置為文本切片預估長度的10%到25%,以保留文本切片之間語義的相關性,有利于提高多文本切片召回的召回質量。

    結構化數據

    以下索引配置在知識庫創建后無法更改。

    參數名稱

    參數說明

    是否索引

    僅link類型字段可見。若您希望百煉訪問鏈接指向的圖片并將其通過圖片Embedding轉換為向量保存,請選擇圖片;若您希望將鏈接作為普通文本處理,請選擇不處理(等同于string類型)。

    是否參與檢索

    開啟后表示允許知識庫在此列數據中進行搜索。

    是否參與模型回復

    開啟后表示本列的檢索結果將作為大模型生成回答時的輸入信息。如下圖示例的配置中,對“姓名”、“性別”、“崗位”、“年齡”開啟是否參與檢索,對“姓名”和“崗位”開啟是否參與模型回復后, 知識庫將會在所有列數據中進行檢索,但只對檢索到的數據中“姓名”、“崗位”兩列的內容提供給大模型進行回答參考。

    image如下圖所示,因為“年齡”沒有開啟參與模型回復,大模型在關聯該知識庫后依然無法回答“張三的年齡”的問題。

    image

  4. 單擊導入完成,完成知識庫創建

API

  1. 了解如何調用百煉API及其相關要求,請參見API概覽

  2. 要創建一個非結構化知識庫(索引),請調用CreateIndex接口。

    管理結構化數據的知識庫暫不支持通過API進行創建,請通過控制臺創建此類知識庫。
    請求返回中Data.Id的值即為知識庫主鍵ID,請妥善保管該值,它將用于后續所有知識庫相關的API操作。
    • StructureType字段中請指定用于創建知識庫的數據結構類型。非結構化數據請傳入unstructured。

    • RerankModelName字段中請指定排序模型名稱。官方排序請傳入gte-rerank-hybrid。

      排序模型用于對從知識庫召回的知識文本結果根據語義相關性進行再排序。推薦官方排序
    • SinkType字段中請指定知識庫的向量存儲類型。

      內置的向量數據庫可滿足基本需求。如需高級功能,如管理、審計和監控數據庫,推薦ADB-PG(AnalyticDB for PostgreSQL)。
      • 指定內置的向量數據庫,請傳入DEFAULT。

      • 指定ADB-PG(AnalyticDB for PostgreSQL)數據庫,請傳入ADB。

  3. 上一步CreateIndex接口只負責初始化知識庫構建流程,接下來還需要再調用SubmitIndexJob接口完成知識庫的創建。任務的執行需一定時間,如果需要查詢任務的狀態,可調用GetIndexJobStatus接口(請求返回中Data.Status為COMPLETED時表示知識庫已創建完成)。

步驟三:測試知識庫(可選)

命中測試用于評估知識庫在給定的相似度閾值下語義檢索的表現,例如檢查文本切片是否被正確召回,從而確定是否需要進一步調整知識庫的相似度閾值,以確保后續大模型能夠從知識庫中獲得有效的知識輸入。要進行命中測試,請展開命中測試(可選)并按步驟操作。

相似度閾值:該閾值表示允許召回的文本切片的最低相似度分數,用于篩選Rank模型返回的文本切片,即只有分數超過此數值的文本切片才會被召回。調低此閾值預期會召回更多文本切片,但可能導致召回一些相關度較低的文本切片;相反,提高此閾值會減少召回的文本切片。若設置得過高,則可能導致知識庫丟棄相關的文本切片。

命中測試(可選)

命中測試建議步驟

  1. 設計能夠覆蓋客戶常見問題的測試用例;

  2. 根據知識庫的具體應用場景和前期導入文檔的質量,選擇一個合適的相似度閾值;

  3. 執行命中測試,查看知識庫召回結果;

  4. 基于召回結果,重新調整您的知識庫的相似度閾值,具體操作請參見編輯知識庫

image

控制臺

  1. 在百煉的知識索引頁面,單擊知識庫右側命中測試

    image

  2. 命中測試界面,您可以修改相似度閾值,然后在右側文本框中輸入關鍵詞進行命中測試。

    您還可以單擊頁面上的image上傳附加圖片進行命中測試。知識庫將召回那些與輸入關鍵詞相似度較高(超過設定閾值)且包含圖片的文本切片。
  3. 召回結果中,您可以查看本次測試關鍵詞的命中情況(已按相似值降序排列)。單擊每個文本切片,可查看相應文本切片內容。

  4. 單擊查看歷史召回記錄,可查看關鍵詞的歷史命中結果。

API

在指定的知識庫(索引)中檢索信息,請調用Retrieve接口。

調用該接口前,請確保您的知識庫已經創建且未被刪除。
如果需較大規模數據的檢索,請合理設置查詢的超時和重試策略。

RerankMinScore字段指定相似度閾值。該值用于篩選召回的文本切片,即只有和用戶問題相似度超過此數值(默認為0.2)的文本切片才會被召回。增加此數值會降低召回的文本切片數量。

步驟四:引用知識庫

接下來您便可以在我的應用中將創建好的知識庫與您的智能體應用或者工作流應用關聯,以便為您的大模型應用補充私有知識和提供最新信息。兩類應用均支持同時選擇并檢索多個知識庫(多路召回策略)。

多路召回策略:如果應用關聯了A1、A2和A3三個知識庫,系統會從這些庫中檢索與原始輸入相關的文本切片,然后通過Rank模型重排序,選出最相關的前K條加入到大模型的輸入Token中用于其回答時參考。

智能體應用

場景

下圖是一個基于知識庫的問答類智能體應用示例。此類應用有效解決了通用大模型難以處理私有知識和獲取最新信息的問題。適用于個人助理、客戶服務、技術支持等領域。

image

在智能體應用中引用知識庫

訪問我的應用,單擊已創建智能體應用卡片的管理按鈕,進入百煉應用管理界面。如下圖所示開啟知識檢索增強Prompt中會自動填入讓大模型參考知識庫的指令。單擊配置知識庫添加需要引用的知識庫,使用默認的檢索配置。應用發布后,會默認使用選中的知識庫進行回答。

image

檢索配置(可選)

檢索配置修改后僅對當前應用生效。

  1. 拼裝策略:用于平衡知識庫召回結果的全面性和性能,可選擇按召回數量智能拼裝

    按召回數量可以滿足對輸入信息量有明確要求的場景。智能拼裝則能最大限度地利用輸入空間。
    • 按召回數量:支持同時設置召回片段數知識庫拼裝最大長度。系統會首先根據設定的召回片段數對召回的文本切片進行拼接,然后檢測整體長度。如果超出知識庫拼裝最大長度限制,則會進行截斷處理。

    • 智能拼裝:僅支持設置知識庫拼裝最大長度。在保證召回的文本切片整體長度不超過知識庫拼裝最大長度的前提下,系統將盡可能多地召回相關的文本切片。

    參數名稱

    參數說明

    召回片段數

    多路召回策略中K值。它決定了Rank模型提供給大模型參考的文本切片數量,小于或等于召回最大長度。增大該值可提高大模型的回答準確性,但也會相應增加大模型輸入Token消耗。

    知識庫拼裝最大長度

    從知識庫召回的文本切片會被拼裝成連貫的文本供大模型參考,但存在字符數上限。超過該長度時,文本將被強制切割,超出部分將被丟棄。增大該值通常會提高知識庫的覆蓋率,召回更多和用戶查詢可能相關的文本切片內容,但也會增加每次問答的響應時延。

  2. 回答范圍:用于控制應用回答時參考知識來源,可引入或排除大模型自身通用知識的影響。

    知識庫 + 大模型知識

    應用的回答將綜合知識庫中檢索到的知識和大模型自身的通用知識。

    僅知識庫范圍

    應用的回答將嚴格基于知識庫中檢索到的知識。

    image

    image

    image

    image

    1. 知識范圍判定:選擇搜索閾值搜索閾值+大模型判斷

      當用戶輸入的關鍵詞從語義維度與文本切片無法精確匹配時,使用單一搜索閾值(即相似度閾值)檢索的局限就會顯現。而采用搜索閾值+大模型判斷的方式,會先通過相似度閾值篩選潛在文本切片,再由大模型深入分析關聯度,進一步提高了判定的準確性。
      • 設置判斷Prompt:大模型用于判斷用戶輸入和檢索結果的關聯程度的規則。

    2. 未在知識庫處理:選擇大模型回復固定回復

      大模型回復:與回答范圍設定為知識庫 + 大模型知識時無差別。
  3. 展示回答來源:開啟后將在回答中展示參考的全部來源,但會增加大模型輸出Token消耗。

    例如,應用同時引用了多個不同的知識庫。

    image

    開啟展示回答來源功能后,應用回答時就會提供生成答案時參考的全部來源。

    image

工作流應用

場景

下圖是一個基于知識庫的問答類工作流應用示例。流程執行邏輯為:用戶輸入的問題首先會經過知識庫檢索,獲取最相關的文本切片;隨后這些文本切片將與問題一并輸入至大模型節點,最終生成基于檢索內容的回答。

image

在工作流應用中引用知識庫

訪問我的應用,單擊已創建工作流應用卡片的管理按鈕,進入百煉應用管理界面。

  1. 配置上游節點:新建一個知識庫節點,并將它設置為開始節點的下游節點。

    image

  2. 選擇查詢變量:在知識庫節點的輸入下拉列表中選擇查詢變量(用于檢索知識庫中的相關文本切片)。

    對于問答類工作流應用,通常選擇開始節點的sys.query作為查詢變量。
  3. 選擇知識庫:在知識庫節點的選擇知識庫下拉列表中選擇需要引用的知識庫。

  4. 調整TopK(可選):即多路召回策略中K值,它決定了提供給大模型節點參考的文本切片數量。增大該值通常會提升大模型的回答準確性,但也會相應增加大模型輸入Token消耗。

  5. 配置下游節點:新建一個大模型節點,并將它的設置為知識庫節點的下游節點。在大模型節點的Prompt中填入讓大模型參考知識庫的指令。

    # 知識庫
    請記住以下材料{{Retrieval_xxx.result}},他們可能對回答問題有幫助。
    請回答{{sys.query}}
    此處的{{Retrieval_xxx.result}}和{{sys.query}}需要重新填寫。輸入/插入變量。本示例需要選擇知識庫結果變量Retrieval_xxx.result和系統變量sys.query
  6. 單擊測試發布。用戶提問時,若知識庫節點匹配到相關的文本切片,其內容將填入系統變量sys.query,輔助大模型節點生成回答;若未匹配到相關文本切片,則大模型節點將直接回應系統變量sys.query

管理與維護知識庫

查看知識庫

控制臺

查看全量知識庫列表,搜索某個知識庫,以及查看指定知識庫的基本信息、配置和內容。

  1. 進入百煉的知識索引頁面。在此頁面上您可以:

    • 查找知識庫:搜索框中輸入知識庫名稱后,單擊image圖標查找知識庫。image

    • 查看知識庫ID:將鼠標懸浮于image圖標上即可顯示當前知識庫ID。單擊image圖標可復制知識庫ID。image

    • 查看知識庫所含知識數量和最近更新時間:知識庫名稱旁的說明顯示了該庫所含知識的總數量,以及最近一次內容更新的時間。

  2. 單擊知識庫右側的查看,進入查看知識庫頁面

    image

    • 如果此知識庫導入的是非結構化數據,在此頁面上您可以:

      • 查看知識列表:頁面將展示當前知識庫中已導入的全量文檔列表,以及它們各自的大小、狀態、導入時間等概要信息。

      • 查看文檔的文本切片知識庫內已上傳的每篇文檔都會以文本切片的形式進行存儲。單擊文檔右側的查看按鈕,您可以:

        • 查看該文檔的所有文本切片。

          暫不支持查看文本切片的歷史版本。
        • 編輯文本切片的內容。

          單擊保存后,文本切片的原有內容將失效,新的內容將用于知識庫檢索,并作為大模型回答的參考。
        • 啟用或禁用特定文本切片。

          禁用文本切片后,知識庫將無法在該文本切片中進行檢索,因此也無法將文本切片提供給大模型進行回答參考。

          image

      • 管理標簽:增添或刪除標簽。

      • 展示metadata:展示文檔的metadata。

        在知識庫創建后,metadata暫不支持修改。
    • 如果此知識庫導入的是結構化數據,在此頁面上您可以:

      • 查看數據表的結構和數據:頁面將展示當前知識庫的數據表結構,包括所有列名,并完整呈現已導入的結構化數據。

      • 查看數據表的索引配置單擊數據表右上方的查看索引。索引配置不支持修改。

        image

API

  • 查看知識庫(索引)列表

    如需要獲取指定業務空間下的知識庫列表,請調用ListIndices接口,通過此接口可以獲得所有知識庫的信息和知識庫配置情況。

  • 查看指定知識庫的文本切片列表

    對于非結構化知識庫,調用ListChunks接口可獲取指定文檔的所有文本切片的詳細信息;對于結構化知識庫,調用此接口可獲取所有文本切片的詳細信息。

    調用該接口前,請確保您的知識庫已經創建且未被刪除。

編輯知識庫

創建知識庫后,您可自定義修改基本信息和部分配置。編輯知識庫暫不支持API操作。

  1. 進入百煉的知識索引頁面。

  2. 單擊知識庫右側的編輯按鈕,進入編輯知識庫頁面,修改知識庫名稱知識庫描述以及相似度閾值

更新知識庫

更新知識庫包括向知識庫補充私有知識、引入最新信息和移除過時信息。定期更新有利于維持知識庫的準確性和時效性。當知識庫內容不再反映最新情況或存在錯誤時,應盡快進行更新。

控制臺

更新非結構化知識庫

  1. 更新文檔

    如果是新增/刪除文檔,您可以參考下方說明直接導入/刪除此文檔;如果您是對知識庫的現有文檔進行內容修改,更新時請先刪除舊版本文檔(否則它的內容也會被知識庫檢索和召回),然后再導入新版本文檔。

    • 導入文檔:訪問知識索引頁面,單擊需要更新的知識庫右側的查看。在查看知識庫頁面,單擊導入數據,為知識庫導入新的文檔。若文檔已在百煉的數據管理中且為目標版本,此處可直接勾選它;否則需先前往數據管理導入(具體操作請參見導入非結構化數據),導入完成后再返回此處進行勾選。

    • 刪除文檔:如果您無需保留某文檔(比如其內容已過時),在查看知識庫頁面,單擊該文檔右側的刪除即可。本操作不會刪除數據管理中已導入的數據。

      批量管理:單擊批量管理,選擇一個或多個文檔進行批量刪除。
    • 管理文本切片(可選):如果您需要禁用、啟用或修改已導入文檔的文本切片,您可以單擊該文檔右側的查看,對文本切片進行管理。

      image

      • 新增文本切片,目前暫不支持。

      • 查看該文檔的所有文本切片。

        暫不支持查看文本切片的歷史版本。
      • 編輯文本切片的內容。

        單擊保存后,文本切片的原有內容將失效,新的內容將用于知識庫檢索,并作為大模型回答的參考。
      • 啟用禁用特定文本切片。

        禁用文本切片后,知識庫將無法在該文本切片中進行檢索,因此也無法將文本切片提供給大模型進行回答參考。
    • 更新文檔標簽(可選):您可以單擊該文檔右側的標簽,增加或刪除文檔標簽。

  2. 變更同步知識庫

    系統自動執行。您對知識庫的文檔更新和內容修改將實時生效。

  3. 引用知識庫

    系統自動執行。所有引用該知識庫的應用將實時生效您本次的更新(新增的內容將可供檢索和召回,而已刪除的過時內容將不再可用)。

更新結構化知識庫

如果您通過云數據庫RDS導入結構化數據,請跳過以下內容。RDS表中的數據更新將自動同步至知識庫(一般為秒級,但在請求高峰期可能會稍有延遲)。
  1. 更新數據表

    一個結構化知識庫只能與數據管理中的一張數據表進行關聯。如果您需要在表中插入新數據,請在導入數據時上傳一個僅包含表頭和新數據的文檔;如果您需要更新/刪除表中某些數據,請在導入數據時上傳一個包含表頭和當前數據表完整數據的文檔,并確保文檔中已包含相應的修改。請注意,每張數據表的行數上限是10000行(包括表頭),超出此限制將導致導入失敗。因此,請提前自行對文檔中的數據進行必要分割。

    若您本地沒有完整的數據副本,您可以先將數據表中的全量數據下載至本地,再進行相應修改。請訪問數據管理頁面,選擇結構化數據頁簽。在左側的數據表管理下,選擇需要下載的數據表,再單擊頁面上image以xlsx格式下載此表的全量數據到本地。
    • 導入數據

      1. 訪問數據管理頁面,選擇結構化數據頁簽。在左側的數據表管理下,選擇需要導入數據的數據表,再單擊導入數據。導入類型選擇增量上傳(此模式會在現有數據基礎上新增數據)或覆蓋上傳(該模式會用新上傳的文檔數據覆蓋當前數據表中的所有數據)。

      2. 單擊image選擇并上傳文檔。

        文檔中必須包含表頭,且與當前數據表的表頭結構一致,否則會導入失敗。
        您可以單擊頁面上的下載模板,獲取一個僅包含表頭的空白文檔。您可以在該文檔中插入新數據,隨后直接將其用于增量上傳。
      3. 上傳成功后,單擊預覽可查看導入的數據。確認無誤后,單擊確認完成導入。

    • 管理文本切片(暫不支持)

  2. 變更同步知識庫

    訪問知識索引頁面,單擊需要更新的知識庫右側的查看。單擊數據表左上方image圖標,再單擊確定將剛才導入數據表中的最新數據同步到知識庫。

    如果您未來在數據管理結構化數據頁面中對該知識庫關聯的數據表里的數據進行了更新,請重復以上步驟進行同步(目前控制臺不支持自動同步)。

    image

  3. 引用知識庫

    系統自動執行。所有引用該知識庫的應用將實時生效您本次的更新(新增的內容將可供檢索和召回,而已刪除的過時內容將不再可用)。

API

  • 向知識庫(索引)追加文檔

    管理結構化數據的知識庫暫不支持通過API進行更新。請通過控制臺更新此類知識庫。

    如需向一個已創建完成的知識庫導入新文檔,請調用SubmitIndexAddDocumentsJob接口。

    調用該接口前,請確保您的知識庫已經創建完成且未被刪除(即知識庫主鍵IDIndexId有效)。
    調用該接口前,請先調用AddFile接口將您需要追加的文檔上傳至百煉。如需要查詢指定知識庫下的文檔IDFileId可以調用ListIndexDocuments接口。
    • 追加任務的執行需一定時間,如果需要查詢任務的執行狀態,接下來您可調用GetIndexJobStatus接口(追加任務完成后,該請求返回中的Data.Status值為COMPLETED)。

    • 請求返回中的文檔列表(Documents)包含了您此次追加全部文檔,您可以查看每個文檔是否導入成功。

    • 您也可以調用ListIndexDocuments接口來查詢指定知識庫下的文檔列表及文檔導入的狀態。

  • 從知識庫(索引)中刪除文檔

    如需要從知識庫中移除指定文檔,請調用DeleteIndexDocument接口。

    只能刪除狀態是插入失敗(INSERT_ERROR)或導入成功(FINISH)的文檔。
    執行刪除操作時,請提供現有文檔的文檔IDFileId

您在使用上述API更新知識庫時,可能遇到下表所示的問題。

問題

說明

更新知識庫時,是否需要按照特定順序調用上述API接口?

是否需要按順序調用API取決于您的業務需求和更新策略。以下是更新知識庫時可能采用的一個API調用順序示例:

  1. 首先使用AddFile接口導入文檔到百煉的數據管理

  2. 接著調用SubmitIndexAddDocumentsJob接口創建追加文檔任務,將新版本的文檔同步到知識庫中。

  3. 然后調用GetIndexJobStatus接口進行輪詢,以確認追加文檔任務執行完成。

  4. 最后調用DeleteIndexDocument接口刪除舊版本的文檔。

更新知識庫時,是否必須調用DeleteIndexDocument接口從知識庫中刪除舊版本的文檔?

是否需要調用該接口來刪除舊的文檔,這取決于您具體的更新策略。如果您需要確保知識庫中的文檔始終是最新的,并且舊知識不再適用,那么推薦執行刪除操作,以避免舊的知識被錯誤地檢索。

百煉是否支持上述追加和刪除等API操作日志的記錄和查看?

百煉知識庫功能暫未集成API日志記錄和查詢功能。鑒于此,需要在您的應用程序中自行集成日志機制和校驗邏輯,以確保知識的完整性。

刪除知識庫

如果您不再需要某個知識庫,可將其刪除。本操作不會刪除數據管理中已導入的數據。

控制臺

  1. 在百煉的知識索引頁面,單擊知識庫右側的刪除

    image

  2. 如果知識庫正在被應用調用,需要先解除關聯后才可刪除。

    1. 您可以前往我的應用找到需解除關聯的應用,單擊管理

    2. 取消選擇該知識庫。并再次嘗試重新刪除知識庫。

API

刪除知識庫(索引),請調用DeleteIndex接口。

如果知識庫正在被應用調用,需要先解除關聯后才可刪除。此操作當前只能通過控制臺完成。具體操作請參考控制臺標簽頁。

常見問題

如何設置RDS實例的白名單?

設置RDS實例的白名單,具體操作步驟如下:

  1. 訪問RDS控制臺,左側菜單中單擊實例列表,然后單擊包含數據表的RDS實例。接著,左側菜單中單擊數據庫連接,單擊外網地址旁的設置白名單(如果您的RDS實例尚未開啟外網訪問,請按照頁面指引開通)。image

  2. 單擊添加白名單分組,請務必將以下DTS和百煉知識庫的公網IP地址全部添加至白名單分組中,否則將導致RDS與知識庫之間的數據同步失敗:

    • DTS在華北2(北京)區域的所有公網IP地址,具體IP地址段列表請參見:DTS服務器的IP地址段

    • 百煉知識庫的公網IP地址:47.94.250.95。

  3. 單擊確定,白名單生效。

長文本大模型(Long-Context LLM)和RAG怎么選?

長文本大模型(如Qwen-Long)和RAG均能通過喂入外部信息來優化輸出,但它們各有所長。長文本大模型會全面審視輸入文本的每個Token,因此通常在深度理解和總結長篇文本方面表現更佳,但這同時也帶來了更高的計算和推理成本;RAG則通過快速跨源檢索,只專注于最相關的Token,因此更適合那些無需全局理解,只靠整合最新信息片段即可迅速回答的事實性問題場景。

百煉是否支持自動更新知識庫?

對于結構化數據,您可以將知識庫的數據來源與云數據庫RDS關聯,從而實現知識庫的自動更新,詳情請參見步驟二:創建知識庫中關于數據來源的相關說明;對于非結構化數據,您可以通過整合阿里云對象存儲OSS、函數計算FC以及百煉知識索引API,從而實現知識庫的自動更新,只需簡單幾步:

  1. 創建Bucket:前往OSS控制臺創建Bucket用于存儲您的原始文檔。

  2. 創建知識庫:在百煉上創建一個管理非結構化知識的知識庫,用于存儲您的私有知識內容。

  3. 創建自定義函數:在FC上針對文檔變更類事件(例如新增、刪除等操作)創建函數,具體操作請參見創建函數。這些函數通過調用百煉的更新知識庫API,將OSS上發生的文檔變更同步至創建好的知識庫中。您在使用更新知識庫API時,可能遇到下表所示的問題。

    問題

    說明

    更新知識庫時,是否需要按照特定順序調用上述API接口?

    是否需要按順序調用API取決于您的業務需求和更新策略。以下是更新知識庫時可能采用的一個API調用順序示例:

    1. 首先使用AddFile接口導入文檔到百煉的數據管理

    2. 接著調用SubmitIndexAddDocumentsJob接口創建追加文檔任務,將新版本的文檔同步到知識庫中。

    3. 然后調用GetIndexJobStatus接口進行輪詢,以確認追加文檔任務執行完成。

    4. 最后調用DeleteIndexDocument接口刪除舊版本的文檔。

    更新知識庫時,是否必須調用DeleteIndexDocument接口從知識庫中刪除舊版本的文檔?

    是否需要調用該接口來刪除舊的文檔,這取決于您具體的更新策略。如果您需要確保知識庫中的文檔始終是最新的,并且舊知識不再適用,那么推薦執行刪除操作,以避免舊的知識被錯誤地檢索。

    百煉是否支持上述追加和刪除等API操作日志的記錄和查看?

    百煉知識庫功能暫未集成API日志記錄和查詢功能。鑒于此,需要在您的應用程序中自行集成日志機制和校驗邏輯,以確保知識的完整性。

  4. 創建OSS觸發器:在FC上為上一步創建的自定義函數關聯OSS觸發器。當捕獲到文檔變更類的事件后(例如有新文檔上傳至OSS時),相應的觸發器會被激活,觸發FC執行相應的函數。具體操作請參見觸發器

如何構建圖片索引?

構建圖片索引需兩步:

  1. 新建結構化數據表時,需要將圖片索引所在列的字段類型設置為link。詳見步驟一:導入數據中關于新建數據表的相關說明。

    注意:新建數據表后,無法再新增或修改字段類型為link。

    image

  2. 創建結構化知識庫時,對于需要建立圖片索引的link類型字段,在旁邊的下拉列表中選擇圖片。詳見步驟二:創建知識庫中關于配置數據處理策略的相關說明。

    注意:創建知識庫后,無法再新建或修改圖片索引。

    image

我的知識庫是否私有?其他公司或用戶能否訪問它?

您的知識庫僅供您當前的賬號使用,不會對外公開。此外,子業務空間無法訪問默認業務空間的知識庫,但默認業務空間可以查看和使用所有子業務空間的知識庫。

百煉是否會使用我賬號下的知識庫來回答其他用戶的問題?

百煉不會使用您賬號下的知識庫來回答其他用戶的問題。

如果只能上傳非結構化文檔,如何組織文檔內容有助于知識庫檢索?

建議使用易于文本解析的文件格式(如txt、md格式)進行導入;文檔內容上建議明確標題和段落,并利用列表和編號整理信息突出關鍵詞和概念。

百煉是否支持將知識庫下載到本地?

暫不支持將知識庫下載到本地。

數據管理中已導入知識庫的文檔/數據表是否可以刪除?

對于非結構化數據,可以刪除,因為數據管理和知識庫兩邊是獨立的數據副本;對于結構化數據,不可以刪除,否則將導致查看知識庫相關功能異常。

知識庫是否會按照文檔中文本Token數量計費?

步驟

計費情況

導入數據

不計費。

創建知識庫

不計費。

測試知識庫

不計費。

引用知識庫

調用應用時,從知識庫召回的文本切片會增加大模型輸入Token數量,從而產生費用。

管理與維護知識庫

不計費。

如何檢查文本切片質量?

在關聯知識庫至您的應用前,建議人工檢查庫中的文本切片的質量,如何查看文本切片請參見查看知識庫。檢查文本切片質量時,需要重點關注以下三種情況:

文本切片過短

文本切片過長

明顯的語義截斷

image

image

image

切分chunk過短導致語義缺失,無法匹配。

切分chunk過長導致引入語義噪音,降低匹配精度。

切分chunk出現了強制性的語義截斷,導致召回時缺失內容。

當用戶對RDS源表進行DDL操作時,比如DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN,百煉會如何處理?

  • DROP TABLE:刪除源表后,知識庫中的數據不會自動刪除。如需刪除知識庫,請手動進行刪除,具體操作請參見刪除知識庫;若之后添加同名表,知識庫中的數據將繼續自動同步,但僅會進行增量同步(即僅同步新的數據變更)。

  • RENAME TABLE、ADD COLUMN、DROP COLUMN:一旦源表的名稱被修改,后續的數據變更將不再同步到知識庫。如果表名恢復,數據同步也會重新啟動,但只會進行增量同步(即僅同步新的數據變更)。在此期間,所有的數據變更將不會被同步到知識庫。需注意,源表的字段變動不會同步更新至知識庫,因此源表新增的字段將無法被知識庫檢索和召回。為了避免這些問題,如果您需要對源表進行變更,建議創建一個新的知識庫。

  • TRUNCATE TABLE:清除源表數據不會同步刪除知識庫中的數據。

場景教程

本文僅介紹了百煉的知識庫功能,您接下來可以嘗試通過百煉快速構建一個在線知識庫問答應用,以便全天候(7 × 24)響應用戶咨詢,提升用戶體驗、增強業務競爭力。以下是一些場景案例: