規劃部署
您可以使用 Oracle Cloud Infrastructure Generative AI Agent 建立智慧型搜尋系統,透過搜尋您的企業知識庫,提供與情境相關的答案。
本節描述下列實作:
- 將企業資料帶入服務管理的知識庫,供生成式 AI 代理程式擷取。
- 在客戶管理的知識庫中編製資料的索引。
- 建立和部署用於資料擷取和產生向量內嵌的程式碼。
具備服務管理的知識庫的生成式 AI 代理程式
下列部署使用 OCI Generative AI Agent 建立使用服務管理知識庫和 Oracle Cloud Infrastructure Object Storage 的智慧型搜尋系統。
此部署會將 TXT 和 PDF 檔案上傳至 Oracle Cloud Infrastructure Object Storage 儲存桶,其中 Generative AI Agents 會自動擷取資料,以建立儲存在整合式向量存放區中的向量。
此部署的優點在於,它非常適合需要針對非結構化資料提供受管理解決方案、提供快速簡便的資料擷取,並具有最少編碼和維護需求的客戶。不過,Cohere 服務管理的內嵌模型每一知識庫最多只能允許 1000 個文字和 PDF 檔案。
請使用下列高階步驟來建立此部署:
- 佈建物件儲存的儲存桶並將檔案上傳至儲存桶。
支援的檔案類型為 PDF 和 TXT,每個檔案不得大於 100MB。PDF 檔案可包含影像、圖表和參考表格,但這些物件不得超過 8MB。OCI Object Storage 支援使用主控台、Rest API 或軟體開發套件 (SDK) 批次上傳檔案。
- 建立知識庫和攝取工作。
在 OCI Generative AI 代理程式中建立知識庫,並指定您佈建為資料來源的物件儲存的儲存桶。選取自動開始攝取工作選項,讓 OCI Generative AI Agent 服務使用服務管理的內嵌模型產生向量索引。
- 建立代理程式和端點。
在 OCI Generative AI 代理程式中建立代理程式,並將它連線至上一個步驟中佈建的知識庫。為服務人員建立端點,稍後將用來啟動與服務人員交談。此端點用於啟用代理程式與外部系統之間的通訊與資料交換。如果您想要使用 AI 代理程式使用 API 或 SDK 來啟用交談功能,則端點為必要的輸入參數。
- 選擇性地建立前端整合。
OCI Generative AI 專員服務提供交談使用者介面,可讓使用者詢問與專員可存取的資料相關的問題。您可以使用服務 Rest API 或 SDK,然後自訂聊天機器人介面,將代理程式與您的應用程式整合。Oracle 提供低程式碼、無程式碼的應用程式開發工具,例如 Oracle APEX Application Development 和 Oracle Digital Assistant 。
使用 OCI 的生成式 AI 代理程式 OpenSearch
下列部署使用 Oracle Cloud Infrastructure Search 搭配 OpenSearch 資料,作為 Generative AI Agents 使用的客戶管理知識庫。
使用 OpenSearch 進行 Oracle Cloud Infrastructure 搜尋是一項託管服務,可搜尋和分析存放在大量資料存放區中的資料。在此部署中,OpenSearch 是用來儲存企業文件、建立索引,以及使用混合搜尋來搜尋和擷取資料的向量資料庫。接著,搜尋結果會依 OCI Generative AI 專員排名,方法是使用受管理的重新排名模型,然後傳送至 Cohere 大型語言模型 (LLM) 以產生內容回應。
此部署的優點在於它支援更廣泛的檔案類型 (例如 JSON、XML 和部落格) 與廣泛的開放原始碼內嵌模型相容,並且可以使用自動截斷來取得更特定的搜尋結果。此部署需要建立和管理資料擷取和編製管線索引,而且必須將檔案分區為小於 512 個記號,並在 OpenSearch 中擷取和編製索引。
請使用下列高階步驟來建立此部署:
- 佈建 Oracle Cloud Infrastructure 搜尋堆疊及擷取資料。
佈建虛擬雲端網路 (VCN)、Oracle Cloud Infrastructure 搜尋叢集及虛擬機器 (VM) 執行處理。
請參閱「瀏覽更多」小節,以取得展示如何建立堆疊的教學課程連結。
- 建立 OCI Vault 加密密碼。
OCI Generative AI 代理程式需要您建立加密密碼,以便 Oracle Cloud Infrastructure Search 將使用者名稱和密碼儲存在 OCI Vault 中。
- 設定 OCI Generative AI 專員知識庫和專員。
選擇 Oracle Cloud Infrastructure 搜尋叢集作為資料來源,並指定要使用的索引,以建立知識庫。使用此知識庫建立 OCI Generative AI RAG 代理程式。
OCI Generative AI 專員搭配 Oracle Database 23ai
此部署使用 Oracle Autonomous Database 23ai 搭配 Vector Search 來管理結構化和非結構化資料。
當使用者查詢企業資料時,AI 向量搜尋會執行相似性搜尋,以尋找傳送給 OCI Generative AI 代理程式的最相關事實。然後這些代理程式會執行重新排列模型的等級,並使用 Cohere 大型語言模型 (LLM) 來產生相關回應。
此部署的優點在於它同時支援結構化和非結構化資料,包括媒體資料、影像和影片,並且與第三方內嵌模型相容,以提供目標式搜尋結果。此部署需要您建立和部署用於資料擷取的程式碼、產生向量內嵌以及建立向量索引。
genai-vector-search-oracle.zip
請使用下列高階步驟來建立此部署:
- 建立 Oracle Database 23ai 執行處理:
- 從 OCI 服務主控台導覽功能表中,按一下 Oracle Database ,然後選取 Autonomous Data Warehouse 。
- 按一下建立自治式資料庫。
- 命名資料庫,然後選取 23ai 作為資料庫版本。提供其他參數或接受預設值,然後按一下建立 Autonomous Database 。
- 建立保存庫以儲存資料庫證明資料,然後建立金鑰:
- 從 OCI 服務主控台導覽功能表中,按一下識別與安全,然後選取保存庫。
- 按一下建立保存庫。
- 為 Vault 命名。提供其他參數或接受預設值,然後按一下建立保存庫。
- 在新建立的保存庫中,按一下建立金鑰。
- 命名金鑰。提供其他參數或接受預設值,然後按一下建立金鑰。
- 建立資料庫工具連線:
- 從 OCI 服務主控台導覽功能表中,按一下開發人員服務,然後選取連線。
- 按一下建立連線。
- 為連線命名,選取 Oracle Autonomous Database 作為資料庫雲端服務,選取區間並指定使用者名稱。提供其他參數或接受預設值,然後按一下建立密碼加密密碼。
- 命名密碼加密密碼,選取區間、保存庫區間、加密金鑰區間,然後指定密碼。按一下建立。
- 選取 SSO 公事包作為公事包格式,然後按一下建立公事包內容加密密碼,命名公事包內容加密密碼,選取保存庫和加密金鑰區間,並且確定已選取從 Autonomous Database 擷取區域公事包。按一下建立。
- 在「建立連線」視窗中按一下建立。新建立的連線會列在相關資料庫之詳細資訊頁面的「連線」頁籤底下。
- 使用 PL/SQL 內嵌模型建立向量:
- 設定允許存取 OCI 資源的證明資料,例如 OCI Gen AI 服務和 DBMS_CLOUD 的證明資料。您需要有 OCI 組態檔,其中包含專用和公用 api_keys、指紋、使用者、租用戶以及區間 OCID。
begin DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => '<credential_name>', user_ocid => '<user_ocid>', tenancy_ocid => '<tenancy_ocid>', private_key => '<private_key>', fingerprint => '<fingerprint>' ); end; /
- 使用內建的資料庫功能搭配 23ai 儲存的 pdf 檔案,並執行文字擷取。
CREATE TABLE ai_extracted_data AS SELECT j.chunk_id, j.chunk_offset, j.chunk_length, j.chunk_data FROM -- divide a blob into chunks (utl_to_chunks): (select * from dbms_vector_chain.utl_to_chunks( dbms_vector_chain.utl_to_text( to_blob( DBMS_CLOUD.GET_OBJECT('OCI_CRED_BUCKET', '<path-to-object-pdf>') ) ), json('{"max":"75", "normalize":"all", "overlap":"15"}') )), JSON_TABLE(column_value, '$' COLUMNS ( chunk_id NUMBER PATH '$.chunk_id', chunk_offset NUMBER PATH '$.chunk_offset', chunk_length NUMBER PATH '$.chunk_length', chunk_data CLOB PATH '$.chunk_data' ) ) j;
- 使用廣泛的內嵌選項建立向量內嵌,例如透過 OCI Generative AI 建立 cohere.embed-multilingual-v3.0 模型。
create table ai_extracted_data_vector as ( select chunk_id as docid, to_char(chunk_data) as body, dbms_vector.utl_to_embedding( chunk_data, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ) as text_vec from ai_extracted_data where chuck_id <= 400 );
- 建立函數以查詢向量表,並在執行時期執行 AI 搜尋作業。
create or replace FUNCTION retrieval_func_ai ( p_query IN VARCHAR2, top_k IN NUMBER ) RETURN SYS_REFCURSOR IS v_results SYS_REFCURSOR; query_vec VECTOR; BEGIN query_vec := dbms_vector.utl_to_embedding( p_query, json('{ "provider": "OCIGenAI", "credential_name": "<credential_name>", "url": "https://example.com/<path>", "model": "cohere.embed-multilingual-v3.0" }') ); OPEN v_results FOR SELECT DOCID, BODY, VECTOR_DISTANCE(text_vec, query_vec) as SCORE FROM ai_extracted_data_vector ORDER BY SCORE FETCH FIRST top_k ROWS ONLY; RETURN v_results; END;
- 設定允許存取 OCI 資源的證明資料,例如 OCI Gen AI 服務和 DBMS_CLOUD 的證明資料。您需要有 OCI 組態檔,其中包含專用和公用 api_keys、指紋、使用者、租用戶以及區間 OCID。
- 使用 Oracle Database 23ai 建立知識庫:
- 從 OCI 服務主控台導覽功能表中,按一下 Analytics & AI ,然後選取 Generative AI Agents 。
- 按一下知識庫,然後按一下建立知識庫。
- 命名知識庫,選取 Oracle AI Vector Search 作為資料存放區類型,然後提供資料庫工具連線和搜尋功能,然後按一下建立知識庫。
- 使用 Oracle Database 23 AI 知識庫建立生成式 AI 代理程式:
- 從 OCI 服務主控台導覽功能表中,按一下 Analytics & AI ,然後選取代理程式。
- 按一下建立代理程式。
- 為代理程式命名,選取您建立的知識庫,然後按一下建立代理程式。
專員建立後,您應該會看見專員有效且可進行交談。