999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于古籍疫病醫(yī)案數(shù)據(jù)挖掘的AI智能體建設(shè)研究

2025-09-10 00:00:00許潔梁國慶倪力強張懷瓊吳婷婷
新世紀(jì)圖書館 2025年7期

分類號 R2-52;G254.929.1

DOI10.16810/j.cnki.1672-514X.2025.07.008

Research on the Construction of an AI Agent Based on Data Mining of Ancient Medical Records of Epidemics

Xu Jie,Liang Guoqing, Ni Liqiang, Zhang Huaiqiong,Wu Tingting

AbstractThis paper takes the ancient medical records of epidemics inthe library colection as theobject of data mining and proposes an AI paradigm based on a multi-level RAG-Rerank architecture.This paradigm innovates the traditional means of data pre-processing and methods of data mining.Furthermore,by using the LLMs application development framework (SemanticKernel),combined with software engineering methodology,and adopting advanced development technologies (Python,C#)andthe integrateddevelopment environment (Visual Studio),across-platform AI agentapplication is formed.Tests show that theAI agent effctively alleviates the cost problem caused by term standardization inthe traditional data pre-processing stage.Italsoaddresses issuessuch as model hallucination during the AI-empowerment process,abnormal accuracyof the traditional RAG low-code platform,andthe inability to customize thecore logic.In thecontext ofAI+,this paper explores afeasible cross-research method fordata mining and auxiliary diagnosis and treatment research based on ancient Chinese medical literature.

KeywordsAncient medical records.AI agent.RAG.LLMs.Data mining.Software engineerint

0引言

中華文明綿延5000余年,歷久彌新;而中醫(yī)藥則是這漫長歷史留給我們的珍貴禮物,不斷傳承至今。在科技高速發(fā)展的今天,這古老的智慧與現(xiàn)代科技不斷碰撞,產(chǎn)生了新的火花。習(xí)近平總書記指出:“要加強古典醫(yī)籍精華的梳理和挖掘,建設(shè)一批科研支撐平臺,改革完善中藥審評審批機制,促進中藥新藥研發(fā)和產(chǎn)業(yè)發(fā)展。\"在這種背景下,傳統(tǒng)大數(shù)據(jù)挖掘的技術(shù)模式與流程在浩如煙海的古籍文獻數(shù)據(jù)面前捉襟見肘,更需要采用最新現(xiàn)代信息情報學(xué)、人工智能學(xué)等方法,對中醫(yī)古籍文獻進行全面、系統(tǒng)的挖掘、整理。

隨著人工智能(AI時代的降臨,是否能以高維向量數(shù)據(jù)庫、大語言模型推理等AI模式對古籍進行挖掘,進而從源到流,梳理中醫(yī)疫病古籍文獻中的病因病機、治則治法、辨證論治、有效方劑、用藥規(guī)律、非藥物治療、預(yù)防調(diào)攝與康復(fù)等內(nèi)容?如能以此為切入點,并在此基礎(chǔ)上形成一個以自然語言為基礎(chǔ)、能夠進行人機交互的AI智能引擎,進而形成一個基于古籍病種的數(shù)據(jù)挖掘科研范式,必將對貫徹落實習(xí)近平總書記提出的堅持“以人民為中心”的發(fā)展思想,以及“健康中國戰(zhàn)略\"的實施,起到一個正面的、積極的作用。

1中醫(yī)文獻挖掘領(lǐng)域AI賦能現(xiàn)狀及問題

眾所周知,在傳統(tǒng)數(shù)據(jù)挖掘流程中,數(shù)據(jù)預(yù)處理需要大量的時間和人工成本。這是因為數(shù)據(jù)數(shù)據(jù)預(yù)處理的每個步驟都需要仔細(xì)操作和驗證。例如,檢測和處理缺失值、異常值,進行數(shù)據(jù)轉(zhuǎn)換和特征選擇等都需要詳細(xì)的分析和決策;數(shù)據(jù)編碼和標(biāo)準(zhǔn)化也需要根據(jù)具體的數(shù)據(jù)類型選擇合適的方法,這無疑都增加了工作的復(fù)雜性和時間成本。

具體到中醫(yī)文獻挖掘領(lǐng)域,中醫(yī)藥術(shù)語尤其是各類病證所表現(xiàn)出的癥狀名稱的標(biāo)準(zhǔn)化,往往起著基礎(chǔ)、前驅(qū)、先導(dǎo)的作用。但在實際應(yīng)用時,術(shù)語往往存在一義多詞或一詞多義的現(xiàn)象,概念間語義關(guān)系復(fù)雜,概念表述不規(guī)范,容易造成理解偏差和記錄重復(fù),嚴(yán)重阻礙中醫(yī)藥的交流和信息共享。然而,中醫(yī)藥術(shù)語標(biāo)準(zhǔn)化的現(xiàn)狀不容樂觀,在短時間內(nèi)形成一個具有廣泛共識,且在全國具有影響力認(rèn)可度的中醫(yī)術(shù)語標(biāo)準(zhǔn)化庫是不現(xiàn)實的,全國有多個團隊在從事中醫(yī)藥術(shù)語的標(biāo)準(zhǔn)化工作,然而,耗費了幾十年的時間,動用了大量的人力、經(jīng)費,目前只有地區(qū)性的一些小項目上的小范圍共識,而這些基于不同標(biāo)準(zhǔn)的項目,使得挖掘成果不能互通,甚至不能取得理想的挖掘效果。

自2022年末生成式AI進入大眾視野以來,傳統(tǒng)的大數(shù)據(jù)挖掘領(lǐng)域經(jīng)歷了一場地震,從基于標(biāo)引和結(jié)構(gòu)化數(shù)據(jù)的,基于統(tǒng)計學(xué)的傳統(tǒng)數(shù)據(jù)分析和挖掘;過渡到了基于自然語言、非結(jié)構(gòu)化數(shù)據(jù)的,以大語言模型為基礎(chǔ)的模糊挖掘和分析推理。于是,基于嵌入式(Embedding)的向量數(shù)據(jù)庫出現(xiàn)。向量(矢量)對語義的理解及對同義詞、多詞一義的適配性,以及模糊檢索能力,均大大強于傳統(tǒng)關(guān)系型數(shù)據(jù)庫的傳統(tǒng)檢索,這使得在中醫(yī)文獻挖掘中對中醫(yī)藥術(shù)語標(biāo)準(zhǔn)化及歸一化的迫切性降低。

而生成式大語言模型(LLMs的出現(xiàn),因其強大的對非結(jié)構(gòu)化數(shù)據(jù)及流式數(shù)據(jù)的語義理解能力、歸納能力、模糊檢索能力,使得數(shù)據(jù)挖掘不再必須依賴結(jié)構(gòu)化數(shù)據(jù),從而使得簡化分詞、標(biāo)引等大量人力、時間成本成為可能。

2023年以來,由于向量數(shù)據(jù)庫及大語言模型的出現(xiàn)和其所表現(xiàn)出的強大特性,圖書館、中醫(yī)藥領(lǐng)域都有一些嘗試性應(yīng)用,前者如海恒智能藍鯨大語言模型應(yīng)用系統(tǒng),后者如華東師范大學(xué)等聯(lián)合開發(fā)“數(shù)智岐黃\"中醫(yī)藥大模型,并迭代推出“數(shù)智岐黃2.0\"中醫(yī)藥領(lǐng)域多模態(tài)大模型。具體到中醫(yī)藥領(lǐng)域,通常將通用性大語言模型作為基座模型,以一定數(shù)量的中醫(yī)藥文獻的提取數(shù)據(jù)作為數(shù)據(jù)集,將數(shù)據(jù)集直接作用于基座模型,耗費大量計算機算力進行微調(diào)(Finetuning),進而形成中醫(yī)藥垂直領(lǐng)域的垂直大語言模型。

但是,垂直LLM也存在著各種問題。這是由于大模型的輸出通常能反映出基于大量訓(xùn)練數(shù)據(jù)的某種常識。但在垂直領(lǐng)域,互聯(lián)網(wǎng)公共區(qū)域中,領(lǐng)域內(nèi)的專業(yè)知識的數(shù)量遠遠小于通用常識,導(dǎo)致垂直領(lǐng)域的模型訓(xùn)練集缺乏足夠的語言示例,或存在大量爭議性示例。這就導(dǎo)致模型可能產(chǎn)生看似合理實則錯誤的回答,在大模型處理垂直領(lǐng)域的專業(yè)復(fù)雜、有爭議、小眾的問題時,就更有可能出現(xiàn)幻覺現(xiàn)象[1。

為了解決這一問題,檢索增強生成(RAG)應(yīng)運而生,在這種架構(gòu)中,一般應(yīng)用基于向量數(shù)據(jù)庫作為載體,將垂直領(lǐng)域的專業(yè)知識,比如某一專病的醫(yī)案甚至中醫(yī)古籍本身作為本地知識,進行切片并向量化后嵌入(Embedding)向量數(shù)據(jù)庫中。如此,用戶提問后,RAG架構(gòu)會將用戶提問向量化后與向量數(shù)據(jù)庫的參考數(shù)據(jù)進行匹配,最后將問題與檢索結(jié)果一起提交大語言模型生成自然語言輸出。

由于這種模式能夠快速構(gòu)建知識問答,因此,目前出現(xiàn)了很多基于傳統(tǒng)RAG低代碼平臺,例如BISHENG(畢升)等。雖然這種模式有效避免了垂直領(lǐng)域的幻覺回答,但依舊存在許多問題。一是它只檢索一次并生成一次。如果上下文信息不足,無法動態(tài)搜索更多信息。二是無法處理復(fù)雜查詢的推理問題。三是系統(tǒng)無法根據(jù)問題調(diào)整其策略[2]。

各類基于傳統(tǒng)RAG架構(gòu)的大模型平臺,類似網(wǎng)站通用內(nèi)容管理系統(tǒng)(CMS),只能進行有限的低代碼開發(fā),比如自定義文檔知識庫、頁面樣式等,無法對大量核心邏輯進行重構(gòu)。這就導(dǎo)致匹配效率與精確度隨之變差,很多較為專業(yè)問題的響應(yīng),變得空洞沒有營養(yǎng)。傳統(tǒng)RAG模式如圖1所示。

圖1傳統(tǒng)RAG模式圖

而我們也在不斷探索和努力,是否可以基于RAG的理念,以本地多模態(tài)關(guān)系型數(shù)據(jù)庫、高維向量數(shù)據(jù)庫為知識擴展,在傳統(tǒng)挖掘算法構(gòu)建的輔助決策系統(tǒng)所形成的較為精準(zhǔn)結(jié)果的基礎(chǔ)上,通過工作流分層,形成檢索增強,再對檢索增強內(nèi)容進行評價過濾后,重構(gòu)提示詞prompt,再由基座大語言模型推理生成,從而構(gòu)建一個消除幻覺的、多層級的、精準(zhǔn)的、內(nèi)容可控的、基于古籍疫病醫(yī)案的數(shù)據(jù)挖掘AI智能體。

2技術(shù)路線與整體架構(gòu)

2.1 解決方案的設(shè)計

我們首先構(gòu)建傳統(tǒng)數(shù)據(jù)挖掘(關(guān)聯(lián)規(guī)則)為驅(qū)動核心的輔助系統(tǒng),將其作為多層級RAG及代理架構(gòu)的其中的一個層級,以供智能體代理驅(qū)動,輔以傳統(tǒng)關(guān)系型數(shù)據(jù)庫、基于嵌入(Embedding)模型的向量數(shù)據(jù)庫、生成式大語言模型(LLMs)、ReRank模型構(gòu)成多層級RAG-Rerank架構(gòu)及AI代理。

其中,關(guān)系型數(shù)據(jù)庫保證了范式響應(yīng)的精準(zhǔn)性,但代價是降低命中率;而在向量數(shù)據(jù)庫中,小范圍向量知識庫(如醫(yī)案庫)兼顧了精準(zhǔn)性和命中率,在保證一定準(zhǔn)確度的情況下大大提高了匹配率;而大范圍向量知識庫(如中醫(yī)病種古籍庫),以犧牲精準(zhǔn)性來確保用戶問題的極高命中率和響應(yīng)率。此三個層級基于AI代理的遞進式工作流,輔以基于傳統(tǒng)數(shù)據(jù)挖掘的病種輔助決策子系統(tǒng)的響應(yīng)結(jié)果,以檢索增強生成(RAG)的形式,經(jīng)Rerank后,再提交大語言模型(LLMs),最終生成自然語言輸出。

如此,共同保證了這種“基于多層級RAG及代理架構(gòu)的AI智能體為驅(qū)動核心的古籍病種挖掘科研范式”的精準(zhǔn)性和高命中率,進而緩解了數(shù)據(jù)預(yù)處理帶來的時間、人力成本問題,從根本上解決了垂直大語言模型的幻覺響應(yīng)問題,并在很大程度上緩解了傳統(tǒng)RAG帶來的匹配精確性相關(guān)性問題。

2.2 智能體的整體架構(gòu)

我們以模塊化構(gòu)建智能體:首先,以傳統(tǒng)數(shù)據(jù)挖掘(關(guān)聯(lián)規(guī)則)為驅(qū)動核心的輔助系統(tǒng),基于古籍抽取醫(yī)案的問答數(shù)據(jù)集、古籍醫(yī)案文檔向量庫、Rerank相關(guān)性評價模型及基于基座LMMs的中醫(yī)藥大語言大模型,構(gòu)建多層級RAG-Rerank模塊,嵌人AI智能體,以此作為AI服務(wù)的核心。其次,在AI服務(wù)模塊的前端和后端,構(gòu)建用戶交互模塊、數(shù)據(jù)支撐模塊,以形成完整的智能體模塊化架構(gòu)。每個模塊承擔(dān)著不同的職責(zé),分別負(fù)責(zé)用戶交互、問題處理與數(shù)據(jù)支撐。 ① 用戶交互模塊:用戶在這里輸入問題并獲得系統(tǒng)的回答; ② AI服務(wù)模塊:負(fù)責(zé)理解和處理問題,包括問答匹配、向量化處理和大模型生成答案等任務(wù); ③ 數(shù)據(jù)支撐模塊:管理和處理文檔及數(shù)據(jù),提供知識庫的基礎(chǔ)數(shù)據(jù),確保系統(tǒng)有足夠的知識儲備來回答問題。通過這種模塊化的設(shè)計,使得整個智能體的工作流程得以順暢運轉(zhuǎn)。智能體模塊如圖2所示。

圖2智能體模塊圖

2.3 多層級RAG及代理Agent業(yè)務(wù)流程

智能體以用戶提問輸入為起始,獲取提問后進行prompt構(gòu)造,通過代理Agent,對LLM進行RAG提問,判斷是否為中醫(yī)藥問答,如果為“否”提示用戶重新提問,如果為“是\"則將提問進行分詞、重構(gòu),若為中醫(yī)藥問診則增加相關(guān)癥狀的提取,最后將重構(gòu)后的若干相似、等價問題輸入AI服務(wù)環(huán)節(jié)。

在AI服務(wù)環(huán)節(jié),如果智能體通過代理Agent能夠從已有的關(guān)系數(shù)據(jù)庫中的問答對中直接查詢到相關(guān)答案,那么它會立刻向用戶返回答案,減少等待時間,提升用戶體驗。如果系統(tǒng)沒有找到現(xiàn)成的答案,則會根據(jù)問題的復(fù)雜程度,選擇進一步調(diào)用AI服務(wù)模塊中的向量化問答服務(wù)或大語言模型(LLMs服務(wù)來尋找或生成答案。這種遞進式的響應(yīng)模式,根據(jù)不同的問題處理路徑,采用不同的響應(yīng)策略:

第一層,通過代理Agent從關(guān)系型問題庫中找答案:通過系統(tǒng)中已有的問答對,直接找到答案。這種方式速度最快,適用于常見的、重復(fù)率高的問題。

第二層,通過輔助決策系統(tǒng)挖掘答案:智能體以AI代理的形式,通過調(diào)用基于傳統(tǒng)數(shù)據(jù)挖掘的醫(yī)療輔助決策子系統(tǒng)所提供的API,獲取中醫(yī)藥知識或者診療參考信息及相關(guān)古籍原文。

第三層,基于向量數(shù)據(jù)庫匹配答案:當(dāng)系統(tǒng)無法在QA問答關(guān)系庫找到直接答案;或者在輔助決策系統(tǒng)中,關(guān)聯(lián)規(guī)則的支持率無法達到閾值時,系統(tǒng)會調(diào)用向量數(shù)據(jù)庫中的相關(guān)信息,通過向量化服務(wù)找到匹配的內(nèi)容進行響應(yīng)。此部分分為兩個步驟:(1)從QA古籍醫(yī)案向量庫中歸納總結(jié)答案,如果匹配不符合相應(yīng)閾值,則進入下一步。2)從相關(guān)古籍的整體文檔向量庫中歸納提取相匹配的答案。

第四層,通過大語言模型(LLMs生成答案:對于那些復(fù)雜或無直接答案的問題,系統(tǒng)會調(diào)用大語言模型(如GPT、Qwen)進行輔助智能生成,隨后與前幾層的資料一起進行Rerank,最后返回更加復(fù)雜、個性化的回答。

智能體旨在盡量減少用戶的等待時間,同時保證回答的準(zhǔn)確性和相關(guān)性。這種遞進式多層次的響應(yīng)機制確保了無論問題多么復(fù)雜,系統(tǒng)都能通過不同路徑找到最優(yōu)解。多層級RAG-Rerank架構(gòu)Agent流程如圖3所示。

圖3智能體MultilayerRAG-Rerank架構(gòu)及運行流程圖

3本地知識庫及向量數(shù)據(jù)庫的構(gòu)建

本模塊是智能體的數(shù)據(jù)支撐部分,也是RAG檢索增強生成的本地知識庫和數(shù)據(jù)處理的核心,主要負(fù)責(zé)管理和維護系統(tǒng)運行所需的數(shù)據(jù)和文檔。它為用戶交互和AI服務(wù)提供知識支持,確保問題能夠得到充分、準(zhǔn)確的響應(yīng)。其知識內(nèi)容的構(gòu)建由以下幾個部分組成:

(1)館藏疫病類古籍善本文檔。根據(jù)館藏古籍書目,經(jīng)選定,將51種古籍書目列為本智能體第一批遴選書目。名錄如下:《麻科活人全書》《廣瘟疫論》《叢桂草堂醫(yī)案》《白喉條辨》《臨證指南醫(yī)案》《王旭高臨證醫(yī)案》《感證輯要》《溫?zé)嵴摗贰蹲C治準(zhǔn)繩》《隨息居重訂霍亂論》《濕熱病篇》《存存齋醫(yī)話稿》《吳鞠通醫(yī)案》《溫病指南》《傷暑論》《瘟疫發(fā)源》《保嬰撮要》《溫證指歸》《包氏喉證家寶》《霉新書》《傷寒瘟疫條辨》《松峰說疫》《旌孝堂醫(yī)案》《溫病研究》《眉壽堂方案選存》《臨診醫(yī)案》《得心集醫(yī)案》《證治匯補》《重訂通俗傷寒論》《時病論》《集驗方》《瘟疫論》《葉天士曹仁伯何元長醫(yī)案》《齊氏醫(yī)案》《張聿青醫(yī)案》《傷寒撮要》《小兒痘疹方論》《痧脹玉衡》《江澤之醫(yī)案》《溫?zé)崾钜呷珪贰渡凼戏桨浮贰督?jīng)驗麻科》《白喉全生集》《溫病條辨》《徐養(yǎng)恬方案》《溫病正宗》《王應(yīng)震要訣》《溫?zé)峤?jīng)緯》《丁甘仁醫(yī)案》《痧疹輯要》《傷寒指掌》。

將上述古籍掃描并OCR后,提取其古文、譯文的電子文檔存人關(guān)系型數(shù)據(jù)庫,并由嵌入(Embedding)模型M3E向量化后,在向量數(shù)據(jù)庫中生成相關(guān)向量信息。向量化處理的核心是通過將文檔中的內(nèi)容表示為高維向量,來實現(xiàn)語義上的精準(zhǔn)匹配。這一過程大幅提高了智能體對于非結(jié)構(gòu)化數(shù)據(jù)(如文本、報告等)進行問題響應(yīng)的能力。此部分是智能體在向量數(shù)據(jù)庫層面響應(yīng)用戶問題的最后一層保障,涵蓋了館藏疫病類古籍的全文數(shù)據(jù)。

(2)基于上述古籍中疫病類提取醫(yī)案的古文原文及現(xiàn)代譯文。基于上述古籍,針對疫病的臨床表現(xiàn)和病因病機,在《傷寒瘟疫條辨》《臨證指南醫(yī)案》等古籍中查找有關(guān)治療時疫的醫(yī)案。選取其中有關(guān)病因病機為:外感戾氣、感染疫毒、感受時疫的疾病,以及類似關(guān)鍵字的條目,共取得8170組醫(yī)案。將醫(yī)案原文及譯文導(dǎo)人關(guān)系型數(shù)據(jù)庫,之后向量化存入向量數(shù)據(jù)庫。

(3)基于上述醫(yī)案的譯文,形成的QA問答數(shù)據(jù)集。將所有醫(yī)案的譯文重寫成問答形式,以問答數(shù)據(jù)集形成json或者xml結(jié)構(gòu)化文件,并同步存入關(guān)系型數(shù)據(jù)庫、向量數(shù)據(jù)庫。

(4)基于上述醫(yī)案,提取其中癥狀,病機、處方等生成的結(jié)構(gòu)化數(shù)據(jù)。將每組醫(yī)案根據(jù)原文進行拆解,分解成表頭字段為病名、證型、癥狀、治法、處方明細(xì)、用法、加減、病因病機、辨證論治、原文、原文出處等的結(jié)構(gòu)化數(shù)據(jù),最后僅存入關(guān)系型數(shù)據(jù)庫,作為智能體子模塊“疫病癥-藥輔助決策系統(tǒng)\"的來源數(shù)據(jù)。

(5)基于公開網(wǎng)絡(luò)的中醫(yī)藥QA問答數(shù)據(jù)集。該數(shù)據(jù)集是智能體QA問答知識結(jié)構(gòu)的補充,增加了問題命中的概率,擴充了智能體在中醫(yī)藥垂直領(lǐng)域內(nèi)響應(yīng)用戶問題的范圍。

4基于傳統(tǒng)數(shù)據(jù)挖掘的子系統(tǒng)構(gòu)建

該系統(tǒng)是整個智能體的一個子模塊,也是多層RAG架構(gòu)中的一個層級,用于對用戶關(guān)于問診咨詢類的問題,給出一個可能的用藥組合,作為最終輸人LLMs的參考資料之一。本系統(tǒng)以古籍中的疫病醫(yī)案為切入點,基于關(guān)聯(lián)規(guī)則算法,挖掘醫(yī)案中癥與藥的關(guān)系。

該挖掘方法主要挖掘常見疫病的癥狀與用藥之間的頻繁項集,進而得出關(guān)聯(lián)規(guī)則。基于這種關(guān)聯(lián)規(guī)則,通過輸入癥狀集合可以得出最有可能的用藥集合。運用經(jīng)過Hash改進的FP-Growth算法3,對8000余條古籍疫病醫(yī)案的癥-藥記錄進行挖掘,獲得了若干頻繁項集(L)及其支持度(SUP);以上是計算數(shù)據(jù)集關(guān)聯(lián)規(guī)則前提。

關(guān)聯(lián)規(guī)則是形如X $$ Y的蘊含式,其中,X和Y分別稱為關(guān)聯(lián)規(guī)則的先導(dǎo)(LHS)和后繼(RHS)其中,關(guān)聯(lián)規(guī)則XY,存在支持度和置信度。支持度(Support)是事物集D中事務(wù)同時包含X、Y的百分比,即概率;置信度(Confidence)是D中事務(wù)已經(jīng)包含X的情況下,包含Y的百分比,即條件概率。

那么經(jīng)過算法挖掘后,設(shè)S1、S2是癥狀事物集S其中的2個頻繁項集,同時SUP(S1)SUP(S2)分別是S1、S2的支持度。那么關(guān)聯(lián)規(guī)則S1一S2的置信度則可通過如下式得出:

本項目旨在構(gòu)建基于古籍疫病醫(yī)案的數(shù)據(jù)挖掘模型,從而形成關(guān)于癥-藥的關(guān)聯(lián)規(guī)則,進而發(fā)現(xiàn)針對特定癥狀的用藥規(guī)律,由此,可以對特定癥狀產(chǎn)生建議藥方,進而形成針對疫病的“診斷-開方\"輔助決策。

就實現(xiàn)而言,即基于輸人癥狀,根據(jù)上述算法、尋找癥狀 處方明細(xì) (Φx,Pi) 的置信度集合,隨后遍歷所有關(guān)聯(lián)規(guī)則,若置信度高于一定閾值,則將該規(guī)則的明細(xì)藥物納入輸出集合。

該輔助決策系統(tǒng)系本地部署,并以web應(yīng)用程序及API接口兩種方式提供服務(wù)。其中,web應(yīng)用程序可獨立發(fā)布,API方式則供智能體的代理Agent調(diào)用并提供服務(wù)。

5智能體對大語言模型的整合與開發(fā)實現(xiàn)

所謂AI智能體,是感知環(huán)境、做出決策并采取行動的人工智能實體。而基于大語言模型(LLM)的智能體,就是利用LLM進行復(fù)雜任務(wù)執(zhí)行的應(yīng)用。智能體通過結(jié)合LLM與關(guān)鍵模塊(在本系統(tǒng)中,即交互模塊和數(shù)據(jù)支撐模塊)來執(zhí)行任務(wù)。而LLM充當(dāng)著控制中心或“大腦”的角色,負(fù)責(zé)管理完成任務(wù)或響應(yīng)用戶請求所需的一系列操作。由于LLM出色的自然語言理解、處理和生成能力,在記憶檢索、決策推理及行動順序選擇等方面為智能體提供了有力支持,從而使其不僅在對話和語言理解方面表現(xiàn)出色,還能利用豐富的知識庫和環(huán)境反饋做出高效決策。

5.1模型的本地部署

智能體選取Qwen2.5開源版72B作為基座大語言模型;選取通用文本向量模型m3e-large為Embedding向量化嵌人模型;選取bge-reranker-large作為Rerank模型,基于本地部署,以O(shè)llama或者LM-Studio作為模型本地化運行工具,對外發(fā)布基于OpenAI標(biāo)準(zhǔn)的服務(wù)接口。其中:

LLM的Http協(xié)議Post方法調(diào)用地址為:http://本地IP/compatible-mode/v1/chat/completionso

向量化服務(wù)Embedding模型的Http協(xié)議Post方法調(diào)用地址為:http://本地IP/compatible-mode/v1/embeddings。

Rerank模型的Http協(xié)議Post方法調(diào)用地址為:http://本地IP/rerank。

5.2 大語言模型應(yīng)用開發(fā)架構(gòu)

目前,大模型開發(fā)領(lǐng)域比較常用的應(yīng)用開發(fā)框架有LangChain、SemanticKernel等,其中,LangChain是一個專門為利用語言模型創(chuàng)建應(yīng)用程序而設(shè)計的全面框架,旨在幫助開發(fā)人員輕松構(gòu)建基于語言模型的應(yīng)用5。該框架與多種語言模型兼容,尤其與OpenAI的ChatGPT無縫集成。而SemanticKernel是一個微軟開發(fā)的基于LLMs的應(yīng)用開發(fā)框架,旨在通過提供一系列工具和功能,幫助開發(fā)人員快速構(gòu)建高性能、可擴展的LLMs應(yīng)用。該框架支持多種編程語言,如Python、Java、C#等,并提供了豐富的API接口,方便開發(fā)人員進行定制開發(fā)。

因此,本系統(tǒng)基于SemanticKernel框架,以VS2022為集成開發(fā)環(huán)境,引人KernelMemory來管理智能體本地知識庫及其多層級RAG。

5.3基于多層級RAG-Rerank智能體的實現(xiàn)

5.3.1 框架配置

在VS2022的NuGet包管理器中引人Microsoft.SemanticKernel及Microsoft.KernelMemory,并使用Kernel.CreateBuilder(語句對實例初始化,同時配置文本生成模型及文檔解析向量模型的APIKey、ModelID、TextModel、EmbeddingModel等參數(shù)。其中,SemanticKernel用于自然語言生成;KernelMemory用于本地知識庫的管理、文檔處理流程控制及向量化檢索。

由于框架本身默認(rèn)基于OpenAI的ChatGPT的無縫集成,因此還要在程序中使用newHttpClientO重定義一個符合OpenAI標(biāo)準(zhǔn)的大模型本地API服務(wù)地址。關(guān)于本地API在5.1章節(jié)中已經(jīng)聲明。

5.3.2 文檔的導(dǎo)入、標(biāo)簽、切分與向量化的實現(xiàn)

系統(tǒng)使用KernelMemory中的Document類來管理本地知識文檔,對在用戶交互模塊中獲取的文檔進行導(dǎo)入,并根據(jù)3.1章節(jié)知識層級分類,進行標(biāo)簽化(Tag)預(yù)處理,其中古籍譯文文檔設(shè)置標(biāo)簽“type”為“book”“name”,共51個文檔;8170組醫(yī)案文檔設(shè)置標(biāo)簽“type\"為“case”,同樣根據(jù)書目數(shù)量拆分為51個文檔;醫(yī)案問答設(shè)置標(biāo)簽“type\"為“caseQA”;中醫(yī)藥問答設(shè)置標(biāo)簽“type”為“tcmQA”,之后調(diào)用memory.ImportDocumentAsync(方法進行向量化存儲。

需要注意的是,在ImportDocumentAsync方法中,對文檔的默認(rèn)處理管道流程包括文本提取、切分、存儲、向量化、存入向量數(shù)據(jù)庫等幾個步驟。其中關(guān)于“切分”,由于文檔往往比較大,如果直接進行檢索使用的話,會導(dǎo)致最終的prompt提示詞上下文太長,從而造成Token的浪費。另外prompt提示詞太長的話,生成的速度也會變慢,從而導(dǎo)致花銷過大。另一個最主要的原因是embedding的接口是有token限制的,所以太長的話要么造成信息丟失,要么引起生成錯誤。因此,最好的方法就是將文本進行切分。由于前述知識庫文檔包含多種文檔類型,很難用一種默認(rèn)的文本切分方法準(zhǔn)確地切分。因此,我們根據(jù)不同類型的文檔內(nèi)容分別自定義3種切分方法,分別適用于普通文檔、醫(yī)案、問答對。

5.3.3 智能體分層級工作流實現(xiàn)

在實際業(yè)務(wù)環(huán)境中,我們將用軟件工程的程序流程實現(xiàn)第3章所提到分層級工作流,其中包括若干個代理Agent異步任務(wù)。以用戶問診咨詢?yōu)槔?/p>

第一步,選擇判斷為中醫(yī)藥知識問答、中醫(yī)藥問診或者其他。

構(gòu)造異步任務(wù):isMedQA(string input)。

程序從用戶交互模塊獲取用戶提問變量input,隨后,構(gòu)造提示詞prompt:“你是一位中醫(yī)藥專家,用戶輸入為:‘{input}',請判斷并選擇:1、以上用戶輸入為中醫(yī)藥相關(guān)知識問答2、以上用戶輸入為問診咨詢,需要開方建議。3、其他。請給出選擇,用‘1’、‘2'或者‘3'回答,不要有多余的字?jǐn)?shù)。\"

隨后調(diào)用SemanticKernel的CreateFunctionFromPrompt方法,基于prompt創(chuàng)建提示詞函數(shù)AgentPrompt;再調(diào)用InvokeAsync(AgentPrompt)方法獲取LLM的響應(yīng)回答。

第二步,抽取問題中的癥狀數(shù)據(jù)。

構(gòu)造異步任務(wù):GetSymptom (string input)。

獲取類別為“問診咨詢\"的用戶輸入input后,重構(gòu)提示詞prompt:“你是一位中醫(yī)藥專家,請基于以下內(nèi)容回答問題:‘{input}',在以上描述中,屬于癥狀的有哪些?給出的答案中,癥狀之間請用‘,分隔。”

第三步,在關(guān)系型數(shù)據(jù)庫中檢索答案,并進行閾值判斷。

構(gòu)造異步任務(wù):public async Task Get DBInfo (string symptom, string input,string asktype )。

根據(jù)代理1的asktype分類結(jié)果,如類別為問診,則將癥狀進行數(shù)組化后,分別經(jīng)LLM擴展近義詞后,構(gòu)造SQL循環(huán)查詢,如癥狀集匹配率高于設(shè)定閾值,則將查詢的處方結(jié)果存入候選變量allinfo。

第四步,在子系統(tǒng)以關(guān)聯(lián)規(guī)則或神經(jīng)網(wǎng)絡(luò)獲取答案,并進行閾值判斷。

構(gòu)造異步任務(wù):public async TaskGetSubInfo (string symptom)。

根據(jù)代理1的asktype分類結(jié)果,如類別為問診,則將癥狀進行數(shù)組化后,與子系統(tǒng)癥狀術(shù)語表進行匹配。若輸入癥狀集與癥狀術(shù)語表匹配率達到設(shè)定閾值,則進行關(guān)聯(lián)規(guī)則分析,并將處方結(jié)果存入候選變量allinfo。

第五步,在高維向量數(shù)據(jù)庫中檢索答案,并進行閾值判斷。

構(gòu)造異步任務(wù):public async TaskGet VectorDBInfo (string symptom, string input, string asktype )

根據(jù)代理1的asktype分類結(jié)果,如類別為問診,則將癥狀進行數(shù)組化后,重構(gòu)提示詞prompt:“你是專業(yè)的中醫(yī)師,現(xiàn)有病人出現(xiàn)如下癥狀‘{key}’,請問是什么原因,該如何治療?”,調(diào)用memory.SearchAsync(promptinput,filter:newMemoryFilter.ByTag(“type”,\"caseQA”),limit:1),將prompt輸人,并根據(jù)業(yè)務(wù)需求指定向量庫的醫(yī)案子庫,檢索并選取匹配度最高的檢索結(jié)果,最后存入候選變量allinfo。

第六步,將符合條件的所有候選結(jié)果進行Rerank后輸出。

構(gòu)造異步任務(wù):public async TaskGet RerankFinalInfo (List allinfo,string input, string asktype)。

將之前所有代理工作流的答案匯總allinfo,根據(jù)Rerank接口規(guī)范,構(gòu)造含有問題query和相關(guān)的文本texts這2個參數(shù)的json進行提交,返回json的結(jié)果表示每個文檔和問題的相似度分?jǐn)?shù),然后按照分?jǐn)?shù)大小來進行排序。最后以相似度順序區(qū)分主輔,順序文本輸出。

第七步,將經(jīng)Rerank后的參考結(jié)果連同用戶提問提交LLMs以自然語言輸出。

構(gòu)造異步任務(wù):publicasync Task GetLLMAnswer(string finalinfo, string input, string asktype)。

此工作流為主工作流,重構(gòu)提示詞prompt:“你是專業(yè)的中醫(yī)師,現(xiàn)有病人出現(xiàn)如下癥狀‘{keyl’,請問是什么原因,該如何治療?參考資料如下‘{finalinfo]’,請根據(jù)參考資料回答問題。”,隨后調(diào)用SemanticKernel的CreateFunctionFromPrompt方法,基于prompt創(chuàng)建提示詞函數(shù)AgentPrompt;再調(diào)用InvokeStreamingAsync(AgentPrompt)方法獲取LLM響應(yīng)的流式數(shù)據(jù),同時經(jīng)SignalR組件流式發(fā)送至客戶端。

第八步,多層RAG-Rerank工作流簡化后的偽代碼如圖4所示。

6 測試及結(jié)論

6.1術(shù)語在未標(biāo)準(zhǔn)化語境下的檢索召回測試

基于疫病8170組醫(yī)案,分別以 100% 癥狀重合率以自然語言構(gòu)造提示詞進行問診咨詢(癥狀隨機以非標(biāo)準(zhǔn)化近義詞表述)共構(gòu)造50條問診咨詢信息,并對每條問診信息進行癥狀抽取。根據(jù)關(guān)系型數(shù)據(jù)庫和向量數(shù)據(jù)庫特性分別進行無標(biāo)準(zhǔn)化術(shù)語檢索召回測試。

關(guān)系型數(shù)據(jù)庫Agent流程:通過LLMs對構(gòu)造的問診信息及數(shù)據(jù)庫原始醫(yī)案的癥狀進行抽取,并構(gòu)造prompt通過LLMs進行抽取癥狀的循環(huán)匹配,若原始醫(yī)案與構(gòu)造醫(yī)案癥狀匹配率達到 80% 以上,則對原始醫(yī)案進行SQL召回。

向量數(shù)據(jù)庫Agent流程:將測試的問診信息經(jīng)過Embedding后輸入向量庫匹配相關(guān)性,輸出所有具有相關(guān)性的醫(yī)案切片記錄,并以相關(guān)性排序,并對相關(guān)性最高者進行召回。結(jié)果表明,經(jīng)關(guān)系型數(shù)據(jù)庫召回率達到 96% ,經(jīng)向量數(shù)據(jù)庫召回率達到 100% 。

6.2 智能體工作流測試

(1)中醫(yī)藥醫(yī)案問診。基于疫病8170組醫(yī)案,分別以 100% 、 50% 、 10% 癥狀重合率構(gòu)造提示詞進行問診咨詢(癥狀隨機以近義詞表述)。每種重合率下構(gòu)造50條問診提示詞進行測試。平臺在已有醫(yī)案的復(fù)現(xiàn)上有較好的表現(xiàn),在全新癥狀組合下,對單個癥狀或簡單組合癥狀的用藥建議、病因病機解析的應(yīng)對上也有較好應(yīng)對。但隨著癥狀組合數(shù)量的增加,其響應(yīng)傾向于對單個癥狀或簡單組合癥狀應(yīng)對的簡單堆砌合并,缺少整體觀。

(2)中醫(yī)藥相關(guān)疫病知識問答。中醫(yī)藥相關(guān)疫病知識問答測試顯示,根據(jù)用戶輸人的中醫(yī)藥領(lǐng)域關(guān)鍵詞,經(jīng)LLMs進行近義詞表述擴展,也僅有少數(shù)問題(約 10% 可以在關(guān)系型數(shù)據(jù)庫中的中醫(yī)藥知識QA庫中直接命中。工作流數(shù)據(jù)采集多數(shù)都在下一層向量知識庫中,才能獲取具有相關(guān)性的文檔數(shù)據(jù),其來源包括向量古籍文檔庫的知識段落、向量中醫(yī)藥知識QA問答庫的相關(guān)問答對、向量醫(yī)案庫的相關(guān)醫(yī)案等。

向量庫參考資料召回率相較預(yù)期更多,其相關(guān)性也參差不齊,經(jīng)過Rerank進行相關(guān)性篩選后,僅保留若干高相關(guān)性資料,并進行主輔排序后再交由LLMs整合歸納后輸出。

平臺在中醫(yī)藥知識問答上有較好的表現(xiàn),基本能根據(jù)用戶問題查找到相關(guān)資料并進行高相關(guān)性回復(fù),較為成功地控制了幻覺響應(yīng)及低相關(guān)性的泛泛而談。

6.3結(jié)論

為解決傳統(tǒng)數(shù)據(jù)挖掘中數(shù)據(jù)預(yù)處理階段開銷巨大的問題,以及在AI賦能過程中出現(xiàn)的模型幻覺、傳統(tǒng)RAG低代碼平臺精度失常、核心邏輯無法自定義等問題,本文提出了一種基于多層次RAG-Rerank架構(gòu)的數(shù)據(jù)挖掘范式,并基于此范式,以軟件工程的方式構(gòu)建基于疫病古籍醫(yī)案的智能體平臺。測試表明,智能體對疫病相關(guān)的問診咨詢、中醫(yī)藥知識咨詢有一定的實用性,其輸出建議有一定的專業(yè)性,特別是多層次RAG-Rerank架構(gòu)的應(yīng)用,使得本平臺相較于目前市面上的純中醫(yī)大數(shù)據(jù)模型,有效避免了垂直大模型的幻覺問題;相較于傳統(tǒng)RAG單次檢索低代碼平臺生成的問答系統(tǒng),更具精準(zhǔn)性和專業(yè)性。同時,基于LLMs的智能體(Agent)和向量數(shù)據(jù)庫的結(jié)合,能在一定程度上有效緩解前期數(shù)據(jù)預(yù)處理過程中對術(shù)語標(biāo)準(zhǔn)化的依賴性。

參考文獻:

[1]LEE M.A mathematical investigation of hallucination and creativityin GPTmodels[J].Mathematics,2023, 11(10):2320.

[2]SINGHA,EHTESHAMA,KUMARS,etal.Agentic retrieval-augmented generation: a survey on agentic RAG[J/OL].[2024-10-20].https://arxiv.org/abs/2501. 09136.

[3]陳茵,閃四清.采用映射哈希表的頻繁模式挖 掘方法[J].計算機工程與應(yīng)用,2008,44(36):164 -167.

[4]MINSKY M. The society of mind[C]/:Simon amp; Schuster,1986:19-32.

[5]Building applications with LLMs through composability [EB/OL].[2023-11-03].https://github.com/yab/ langchain.

[6]Introductionto Semantic Kernel[EB/OL].[2024- 06-25].https://learn.microsoft.com/uk-ua/semantickernel/overview/.

許潔上海中醫(yī)藥大學(xué)圖書館研究館員。上海,201203。

梁國慶上海中醫(yī)藥大學(xué)圖書館副研究館員。上海,201203。

倪力強上海中醫(yī)藥大學(xué)圖書館常務(wù)副館長。上海,201203。

張懷瓊上海中醫(yī)藥大學(xué)圖書館高級顧問。上海,201203。

吳婷婷上海中醫(yī)藥大學(xué)圖書館館員。上海,201203。

(收稿日期:2025-02-08編校:謝艷秋,陳安琪)

主站蜘蛛池模板: 超碰免费91| 国产精品漂亮美女在线观看| 日韩在线视频网| 中文字幕首页系列人妻| 国产一区二区三区精品欧美日韩| 一级爱做片免费观看久久 | 免费国产黄线在线观看| 精品伊人久久久久7777人| 91精品国产一区自在线拍| 日韩精品一区二区三区大桥未久| a级毛片免费播放| 亚洲第一视频网| 色欲综合久久中文字幕网| 成人国产免费| 高清无码手机在线观看| 欧美激情第一欧美在线| 毛片网站在线看| 中文字幕乱码二三区免费| 国产成人盗摄精品| 福利姬国产精品一区在线| 国产高清不卡视频| 999精品色在线观看| 99尹人香蕉国产免费天天拍| 亚洲—日韩aV在线| 99免费视频观看| 国产精品不卡永久免费| 国产毛片不卡| 亚洲成a人在线播放www| 人妻丰满熟妇αv无码| 久久a毛片| 91探花在线观看国产最新| 欧美激情视频在线观看一区| 国产在线精彩视频论坛| 亚洲午夜福利精品无码不卡| 欧美成人精品在线| 看国产一级毛片| 日韩午夜伦| 国产美女精品人人做人人爽| 亚洲系列无码专区偷窥无码| 国产va免费精品观看| 国产亚洲精品yxsp| 欧美日韩激情| 又黄又湿又爽的视频| 自偷自拍三级全三级视频| 国产91精品久久| 婷婷色在线视频| 欧美日韩另类国产| 美女扒开下面流白浆在线试听 | 91在线精品麻豆欧美在线| 国产亚洲精| 一本综合久久| 久久综合九色综合97婷婷| 97国产在线观看| 国产黄网永久免费| 国产JIZzJIzz视频全部免费| 精品免费在线视频| 午夜精品一区二区蜜桃| 欧美v在线| 永久天堂网Av| 欧美区一区二区三| 亚洲av片在线免费观看| 国产爽妇精品| 正在播放久久| 亚洲综合色区在线播放2019| 欧美视频免费一区二区三区| 亚洲天堂日本| a级毛片在线免费| 青草精品视频| 国产第四页| 国产精品色婷婷在线观看| 特级做a爰片毛片免费69| 91精品久久久久久无码人妻| 天天综合色网| 国产精品xxx| 99热这里只有免费国产精品 | 99热这里只有免费国产精品 | 国产理论一区| 丁香六月激情婷婷| 九九免费观看全部免费视频| 国产精品第| 国产久草视频| 亚洲国产精品一区二区第一页免 |