版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
介紹567·24·LangChain快速??指南35在VertexAI代理程序中應(yīng)?于?產(chǎn)環(huán)境3842充他們的先前知識(shí),然后得出結(jié)論。就像?類?樣,?成式??智能模型可來(lái)訪問(wèn)實(shí)時(shí)信息或建議現(xiàn)實(shí)世界中的?動(dòng)。例如,?個(gè)模型可以利?數(shù)據(jù)庫(kù)定信息,?如客?的購(gòu)買歷史,以便為其?成定制的購(gòu)物建議?;蛘?,基于可以發(fā)起各種API調(diào)?,以向同事發(fā)送電?郵件回復(fù)或代表您完成財(cái)務(wù)交易。為了做到這?模型不僅需要訪問(wèn)?套外部?具,還需要有計(jì)劃地執(zhí)?任何任務(wù)的能?,這種推理、邏輯和對(duì)外部信息的訪問(wèn)相結(jié)合,與?成式??智能模型相關(guān)聯(lián),頭的?具采取?動(dòng)來(lái)嘗試實(shí)現(xiàn)?個(gè)?標(biāo)。代理是?治的,可以獨(dú)?于?當(dāng)?shù)?標(biāo)或?標(biāo)以供實(shí)現(xiàn)時(shí)。代理也可以積極主動(dòng)地努?實(shí)現(xiàn)他們的?的明確指令集的情況下,代理也可以推理出下?步該做什么來(lái)實(shí)現(xiàn)其最代理的概念?常普遍?強(qiáng)?,但本??書著重于?成式??智能模型在為了理解代理的內(nèi)部運(yùn)作,讓我們?先介紹驅(qū)動(dòng)代理?為、動(dòng)作和模型在代理范圍內(nèi),模型指的是將被?作代理過(guò)程中央決策者的語(yǔ)?模型(LM)。代理使?的模型可以是?個(gè)或多個(gè)規(guī)模任意??(?型/?型)的LM,能夠遵循基于指令的如ReAct、Chain-of-Though程序的模型,并且最好是已經(jīng)訓(xùn)練過(guò)與您計(jì)劃在認(rèn)知架構(gòu)中使?的?具相關(guān),通過(guò)為模型提供展?代理能?的?例,包括代理在各種情境中使?特定?具或推理步驟的實(shí)例,可以進(jìn)?步完善模型以適應(yīng)代理的任務(wù)。工具盡管基礎(chǔ)模型在?成?本和圖像??令?印象深刻,但由于?法與外部限制。?具彌合了這?差距,賦予代理?與外部數(shù)據(jù)和服務(wù)交互的能?,本?之外更?泛的?動(dòng)范圍。?具可以采取各種形式,具有不同API?法(如GET,POST,PATCH和DELETE)相?致。例如,?個(gè)?具可以更新數(shù)據(jù)庫(kù)中的客?信息或獲取天?數(shù)據(jù)以影響代理向??提供的旅?建議。有了?具,實(shí)世界的信息。這使它們能夠?持更專業(yè)的系統(tǒng),如檢索增強(qiáng)?成(RAG),這顯著擴(kuò)展了代理的能?,超出了基礎(chǔ)模型本?可以實(shí)現(xiàn)的范圍。我們將在下?更詳細(xì)地討編排層編排層描述了?個(gè)循環(huán)過(guò)程,規(guī)定了代理如何接收信息,進(jìn)??些內(nèi)部推理導(dǎo)其下?步?動(dòng)或決策。?般情況下,這個(gè)循環(huán)將繼續(xù),直到代理達(dá)到其?編排層的復(fù)雜性可以根據(jù)代理和任務(wù)的不同??不相同。有些循環(huán)可能只是規(guī)則,?其他循環(huán)可能包含鏈接邏輯、涉及其他機(jī)器學(xué)習(xí)算法或?qū)崿F(xiàn)其他概代理vs.模型為了更清晰地理解代理與模型之間的區(qū)別,請(qǐng)考慮以下圖表:管理的會(huì)話歷史(即聊天歷史),以允許基,ReAct等)來(lái)形成復(fù)雜提?,以引導(dǎo)模型進(jìn)使?推理框架(如CoT、ReAct)或其他預(yù)構(gòu)建的認(rèn)知架構(gòu):代理程序的運(yùn)作方式想象?個(gè)繁忙廚房?的廚師。他們的?標(biāo)是為餐廳顧客制作美味佳肴在整個(gè)過(guò)程中,廚師根據(jù)需要進(jìn)?調(diào)整,隨著?材減少或接收到顧客反并利?先前的結(jié)果來(lái)確定下?步的?動(dòng)計(jì)劃。這種信息獲取、規(guī)劃、執(zhí)就像廚師?樣,代理可以使?認(rèn)知架構(gòu)通過(guò)迭代處理信息、做出明智決?步?動(dòng)來(lái)實(shí)現(xiàn)?標(biāo)。代理認(rèn)知架構(gòu)的核?在于使?不斷發(fā)展的提??程領(lǐng)域和相關(guān)框架來(lái)引導(dǎo)推理和規(guī)劃,使代理能完成任務(wù)。提??程框架和語(yǔ)?模型的任務(wù)規(guī)劃領(lǐng)域的研究正在快速發(fā)?法。雖然不是窮盡列表,但以下是本出版物發(fā)表有時(shí)候會(huì)包括上下??例。ReAct提?已被證明勝過(guò)多個(gè)最先進(jìn)基準(zhǔn),并提?了LLMs的?類?Chain-of-Thought(CoT)是?種提??程框架,通過(guò)中間步驟實(shí)現(xiàn)推理能?。CoT有各種??Tree-of-thoughts(ToT)是?種提??程框架,?常適合探索或戰(zhàn)略前瞻任務(wù)。它概括了鏈?zhǔn)剿季S提?,并允許模型探索各種思維鏈,這些思維鏈可以作為語(yǔ)?例如,讓我們考慮?個(gè)代理,它被編程使?ReAct框架為??查詢選擇正確的操作和?b思考:模型對(duì)接下來(lái)該做什么的想法ii.例如,動(dòng)作可以是[航班、搜索、編碼、?]中的?個(gè),其中前3個(gè)代表模型可以選擇的已知?具,最后?個(gè)代表“不選擇?具”3代表模型可以選擇的已知?具,最后?個(gè)代表“不選擇?具”f最終答案:模型向原始用戶查詢提供的最終答案如圖2所?,模型、?具和代理配置共同提供了?個(gè)的查詢。雖然模型可以根據(jù)其先前的知識(shí)猜測(cè)答案(幻覺(jué)),但它選擇來(lái)搜索實(shí)時(shí)外部信息。這些額外的信息被提供給模型,使其能夠基于真總的來(lái)說(shuō),代理響應(yīng)的質(zhì)量可以直接與模型在理性和?動(dòng)??處理,包括選擇正確?具的能?以及?具的定義程度。就像?廚?新鮮?材精?烹飪菜肴并關(guān)注顧客反饋?樣,代理依靠合理推理和可靠信息提供最佳結(jié)果。在接下來(lái)雖然語(yǔ)?模型擅?處理信息,但缺乏直接感知和影響現(xiàn)部系統(tǒng)或數(shù)據(jù)進(jìn)?交互的情況下的有?性。這意味著,在某種意義上,語(yǔ)數(shù)據(jù)中學(xué)到的知識(shí)?已。但?論我們向模型提供多少數(shù)據(jù),它們?nèi)匀蝗狈δ?。那么我們?nèi)绾钨x予我們的模型與外部系統(tǒng)實(shí)時(shí)、上下?感知的交互雖然它們有很多不同名稱,但?具是連接我們基礎(chǔ)模統(tǒng)和數(shù)據(jù)的連接使得我們的代理能夠執(zhí)?更多種類的任務(wù),并且更以使代理調(diào)整智能家居設(shè)置,更新?歷,從過(guò)為代理配備?具,我們釋放了它們理解世界并對(duì)其采取?動(dòng)的巨?潛?,擴(kuò)展理解擴(kuò)展的最簡(jiǎn)單?式是將其視為以標(biāo)準(zhǔn)化?式橋接API和代理leFlightsAPI獲取航班信息,但您不確定如何讓您的代理調(diào)?此API端點(diǎn)。?種?法是實(shí)現(xiàn)?定義代碼,該代碼將接收的??查詢,I調(diào)?。例如,在航班預(yù)訂?例中,??可能會(huì)說(shuō)“我想要從奧斯汀到蘇黎世訂?張?機(jī)票?!痹谶@種情況下,我們的?定義代碼解決?案需要從??查詢中提取“奧斯汀相關(guān)實(shí)體,然后再嘗試進(jìn)?API調(diào)?。但是,如果??說(shuō)“我想要去蘇黎世訂?張?機(jī)票”?沒(méi)有提供出發(fā)城市怎么辦?缺少必要數(shù)據(jù)會(huì)導(dǎo)致API調(diào)?失敗,需要實(shí)現(xiàn)更多代碼來(lái)捕獲這類邊緣和特殊情況。這種?法不具備可擴(kuò)展性,很容易在超出實(shí)現(xiàn)的?定義代碼范更具韌性的?法是使?擴(kuò)展。擴(kuò)展通過(guò)以下?式彌合了代理和API之間的差距:擴(kuò)展可以獨(dú)?制作,但應(yīng)作為代理配置的?部分提供。代理在運(yùn)?時(shí)使?模擴(kuò)展,如果有合適于解決??查詢的,這凸顯了擴(kuò)展的?個(gè)關(guān)鍵優(yōu)勢(shì),即內(nèi)就像軟件開發(fā)?員在解決??問(wèn)題時(shí)決定使?哪些API端點(diǎn)?樣。如果??想要訂機(jī)票,開發(fā)決定哪個(gè)最適合??的查詢。如果想看到擴(kuò)展的操作,可以嘗試在Gemini應(yīng)?程序上測(cè)試它ts擴(kuò)展,然后問(wèn)Gemini“顯?下周五示例擴(kuò)展importvertexaiimportpprintPROJECT_ID="YOUR_PROJECT_ID"vertexai.init(project=PROJECT_ID,location=REGION)fromvertexai.preview.extensionsimportExtensionextension_code_interpreter=Extension.from_hub("code_interpreter")response=extension_code_interpreter.execute(operation_id="generate_and_execute",operation_params={"query":CODE_QUERY})pprint.pprint({response['generated_code']})```classTreeNode:self.val=valself.left=leftself.right=rig續(xù)下頁(yè)...定義反轉(zhuǎn)?叉樹函數(shù)(root):參數(shù):返回:如果沒(méi)有根節(jié)點(diǎn):#交換左右?節(jié)點(diǎn),遞歸調(diào)?root.leftinvert_binary_tree(root.right),invert_binary_tree(root.left)root.left=TreeNode(2)ot.left.right=TreeNode(3)root.right.lefinverted_root=invert_binary_tree(root)```總結(jié)?下,擴(kuò)展提供了?種?式,使代理能夠以多種?式感知、交互他們還會(huì)定義何時(shí)調(diào)?function_a與function_b的邏輯,以及預(yù)期的輸?和輸出。在代理的世界?,函數(shù)的?作?式與軟件開發(fā)?員類似,但我們可以?發(fā)?員。模型可以采??組已知的函數(shù),并根據(jù)函數(shù)的規(guī)范決定何時(shí)使?請(qǐng)注意,在這?的主要區(qū)別是,F(xiàn)unction和agent都不直接與這為開發(fā)?員提供了對(duì)應(yīng)?程序中數(shù)據(jù)流的更精細(xì)控制。有許多原因會(huì)導(dǎo)?需要在應(yīng)?程序堆棧的另?層中進(jìn)?API調(diào)?,?不是直接與代理架構(gòu)流進(jìn)?交互(例如?安全性或?份驗(yàn)證限制阻?代理直接調(diào)?API(例如API未暴露于互聯(lián)?上,或者代理基?時(shí)間或操作順序約束阻?代理實(shí)時(shí)進(jìn)?API?需要對(duì)代理?法執(zhí)?的API響應(yīng)應(yīng)?額外的數(shù)據(jù)轉(zhuǎn)換邏輯。例如,考慮?個(gè)不提供篩選機(jī)制以限制返回結(jié)果數(shù)量的API端點(diǎn)。在客?端使?函數(shù)提供了開發(fā)?員額外的機(jī)會(huì)來(lái)進(jìn)??開發(fā)?員希望在不部署額外基礎(chǔ)設(shè)施的情況下迭代代理開發(fā)(即函數(shù)調(diào)?可以像“存根”A使用案例模型可?于調(diào)?函數(shù)以處理復(fù)雜的客?端執(zhí)?流程,其中代理開發(fā)?員可能不理API執(zhí)?(就像擴(kuò)展的情況?樣)。讓我們考慮以下?例,其中?個(gè)代理正在接受培訓(xùn)成為旅?科羅拉多州克雷斯特巴特,美國(guó)?加拿?卑詩(shī)省惠斯勒?瑞?采爾?特雖然上述輸出包含我們需要的數(shù)據(jù)(城市名稱但格式),function_call{名稱:"display_cities"參數(shù):{}}種特定情況下,我們將調(diào)??歌地點(diǎn)API,以獲取模型提供的城市并查找圖像,然后將它們作為圖9中?例的結(jié)果是模型被利?來(lái)“填補(bǔ)空?”,提供客?端UI調(diào)?Goog參數(shù)。客?端UI使?模型返回的函數(shù)提供的參數(shù)管理實(shí)際的API調(diào)?。這只是函數(shù)調(diào)?的?個(gè)?例,但還有許多其他情景需要考慮,例如:?您希望語(yǔ)?模型建議可在您的代碼中使?的函數(shù),但?不希望在代碼中包含憑據(jù)。由于函數(shù)?您正在運(yùn)?可能需要超過(guò)?秒鐘的異步操作。這些場(chǎng)景很適合函數(shù)調(diào)?,因?yàn)檫@是?項(xiàng)異關(guān)于函數(shù)的?個(gè)關(guān)鍵要點(diǎn)是,它們旨在為開發(fā)?員提供這不相關(guān)于代理可能采取的未來(lái)操作。但是,基于應(yīng)?程序的架構(gòu),將外部API調(diào)?數(shù)據(jù)返回給代理以影響未來(lái)的推理、邏輯和?動(dòng)選擇可能是有意義的。最終,由應(yīng)?要實(shí)現(xiàn)來(lái)?我們滑雪假期場(chǎng)景的上述輸出,讓我們擴(kuò)展每個(gè)組件,使其與我們的Gemini?先,我們將定義我們的display_cities函數(shù)作為?個(gè)簡(jiǎn)單的Python?法。defdisplay_cities(cities:list[str],preferences:Optional[str]=None)參數(shù):preferences(str):??的搜索偏好,如滑雪、海灘、餐館、燒烤等.cities(list[str]):推薦給??的城市列表.返回:list[str]:推薦給??的城市列表.接下來(lái),我們將實(shí)例化我們的模型,構(gòu)建?具,然后將??的查詢和?具傳fromvertexai.generative_modelsimportGenerativeModel,Tool,FunctionDeclarationdisplay_cities_function=FunctionDeclaration.from_func(display_cities)tool=Tool(function_declarations=[display_cities_function])print(f"函數(shù)名稱:{res.candidates[0].content.parts[0].function_}")print(f"函數(shù)參數(shù):{res.candidates[0].content.parts[0].function_call.args}")>函數(shù)名稱:display_cities>函數(shù)參數(shù):{'preferences':'滑雪','cities':['Aspen','Vail',總之,函數(shù)提供了?個(gè)直觀的框架,賦予應(yīng)?程序開發(fā)?員對(duì)數(shù)據(jù),同時(shí)有效地利?代理/模型進(jìn)?重要輸??成。開發(fā)?員可以有選擇性地選擇是否通過(guò)返回外數(shù)據(jù)存儲(chǔ)想象?個(gè)語(yǔ)?模型就像是?座龐?的圖書館,包含著其訓(xùn)練數(shù)據(jù)。但與持續(xù)同,這個(gè)模型保持靜態(tài),僅保存最初訓(xùn)練時(shí)的知識(shí)。這帶來(lái)了?個(gè)挑戰(zhàn),因斷演進(jìn)。數(shù)據(jù)存儲(chǔ)解決了這個(gè)限制,提供對(duì)更加動(dòng)態(tài)和最新信息的訪問(wèn),并考慮?個(gè)常?情景,開發(fā)?員可能需要向模型提供少量額外數(shù)據(jù),也許以電?表格或PDF的數(shù)據(jù)存儲(chǔ)允許開發(fā)?員以其原始格式向代理提供附加數(shù)據(jù),消除了耗時(shí)的練或微調(diào)的需要。數(shù)據(jù)存儲(chǔ)將傳?的?檔轉(zhuǎn)換為代理可以使?的?組?在?成式AI代理的背景下,數(shù)據(jù)存儲(chǔ)通常被實(shí)現(xiàn)為開發(fā)?員希望代理在運(yùn)?時(shí)訪問(wèn)的?量數(shù)據(jù)庫(kù)。雖然我們?cè)谶@?不會(huì)深?介紹?量數(shù)據(jù)庫(kù),但需要理解的關(guān)鍵點(diǎn)是式存儲(chǔ)數(shù)據(jù),這是?種數(shù)據(jù)的?維向量或數(shù)學(xué)表?。近來(lái)語(yǔ)?模型與數(shù)?諸如PDF、Word?檔、CSV、電?表格等格式的結(jié)構(gòu)化數(shù)據(jù)?諸如HTML、PDF、TXT等格式的?結(jié)構(gòu)化數(shù)據(jù)最終結(jié)果是?個(gè)應(yīng)?程序,允許代理通過(guò)向量搜索將??的查詢與已內(nèi)容,并將其提供給編排層和模型以進(jìn)?進(jìn)?步處理。下?步操作可能工具概述總之,擴(kuò)展、函數(shù)和數(shù)據(jù)存儲(chǔ)組成了?種不同類型的?具,供代?開發(fā)?員希望代理控制與API端點(diǎn)的交互?在利?本機(jī)預(yù)構(gòu)建擴(kuò)展?多跳規(guī)劃和API調(diào)?安全或?份驗(yàn)證限制阻?代理直接調(diào)?API?時(shí)序約束或操作順序約PI調(diào)?(即批量操作,??復(fù)核等)問(wèn)增強(qiáng)?成(RAG):?來(lái)?預(yù)索引域名和UR?結(jié)構(gòu)化數(shù)據(jù),如PDF、Word?檔、CSV、電?表格等?HTML、PDF、TXT等格有效使?模型的關(guān)鍵在于其在?成輸出時(shí)選擇正確?具的能?,特時(shí)。雖然?般培訓(xùn)有助于模型培養(yǎng)這種技能,但真實(shí)場(chǎng)景通常需要將這看作是基本烹飪技能和掌握特定烹飪技藝之間的區(qū)別。兩者都?上下?學(xué)習(xí):這種?法在推斷時(shí)為通?模型提供提?、?具和少量?例,使其能夠‘即興學(xué)習(xí)’如何以及何時(shí)使?這些?具來(lái)完成特定任務(wù)。ReAct?基于檢索的上下?學(xué)習(xí):這種技術(shù)通過(guò)從外部?jī)?nèi)存中檢索最相關(guān)的信息、?具和相關(guān)?例動(dòng)態(tài)填充模型提?。?個(gè)例?是VertexAI擴(kuò)展中的‘?例存儲(chǔ)’或之前提到的基于RA?基于微調(diào)的學(xué)習(xí):這種?法涉及在推斷之前使?更?的特定?例數(shù)據(jù)集對(duì)模型進(jìn)?訓(xùn)練。這有?想象?位廚師收到了?個(gè)具體的?譜(提?)、?些關(guān)鍵的?材(相關(guān)?具)和?些?例菜肴(少量樣本?例)從客?那?。基于這些有限的信息和廚師對(duì)烹?現(xiàn)在讓我們想象?下我們的廚師在?個(gè)備有豐富?材的廚房?(外部數(shù)據(jù)存儲(chǔ)??裝滿各種?材和?譜書(?例和?具)。廚師現(xiàn)在能夠動(dòng)態(tài)地從?材庫(kù)中選擇?材和與客?的?譜和偏好相匹配。這使廚師能夠利?現(xiàn)有知識(shí)和新知識(shí)創(chuàng)造出更具?最后,讓我們想象我們把廚師送回學(xué)校學(xué)習(xí)?種新的烹飪或?套烹飪(在特定?例的更?數(shù)據(jù)集上進(jìn)?預(yù)訓(xùn)練)。這使得廚師能夠更深?地理解未來(lái)看不?的客??這些?法各有獨(dú)特的優(yōu)勢(shì)和劣勢(shì),涉及速度、成本和延遲等??。然?,?個(gè)代理框架中,我們可以利?各種優(yōu)勢(shì)同時(shí)減少其為了提供?個(gè)真實(shí)的代理?例,我們將使?LangChain和LangGraph庫(kù)快速構(gòu)建原型。這些流?的開源庫(kù)允許??通過(guò)“鏈?zhǔn)健边B接?系列邏輯、推理和?具調(diào)?我們將使?SerpAPI(?于?歌搜索)和GooglePlacesAPI這些?具。在執(zhí)?Snipp。fromlanggraph.prebuiltimportcreate_react_agentfromlangchain_core.toolsimporttoolfromlangchain_community.utilitiesimportSerpAPIWrapperfromlangchain_community.toolsimportGooglePlacesToolos.environ["SERPAPI_API_KEY"]="
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024項(xiàng)目融資合同協(xié)議書
- 2025年度中醫(yī)食療研究與推廣合同4篇
- 2025年度特色餐飲連鎖品牌授權(quán)合同3篇
- 2025年度生態(tài)修復(fù)工程承包商借款合同范本4篇
- 2025年度數(shù)據(jù)中心運(yùn)維外包合同4篇
- 2025年度體育用品代理服務(wù)合同模板4篇
- 2025年度物流車輛環(huán)保排放檢測(cè)合同4篇
- 2025年度人工智能技術(shù)應(yīng)用與開發(fā)合同2篇
- 2024版全新銷售擔(dān)保合同范本下載
- 2025年度新能源汽車充電站車位銷售與管理協(xié)議4篇
- 專升本英語(yǔ)閱讀理解50篇
- 施工單位值班人員安全交底和要求
- 中國(guó)保險(xiǎn)用戶需求趨勢(shì)洞察報(bào)告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場(chǎng)工藝紀(jì)律檢查表
- 醫(yī)院品管圈與護(hù)理質(zhì)量持續(xù)改進(jìn)PDCA案例降低ICU病人失禁性皮炎發(fā)生率
- 新型電力系統(tǒng)研究
- 烘干廠股東合作協(xié)議書
- 法院服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論