自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度解析 REAcT Agent 的實(shí)現(xiàn):利用 LlamaIndex 和 Gemini 提升智能代理工作流 原創(chuàng) 精華

發(fā)布于 2024-11-11 11:32
瀏覽
0收藏

01、概述

在過(guò)去的兩三年中,人工智能領(lǐng)域經(jīng)歷了令人矚目的發(fā)展,尤其是在大語(yǔ)言模型、擴(kuò)散模型和多模態(tài)技術(shù)等方面。其中,我對(duì)智能代理工作流產(chǎn)生了濃厚的興趣。今年初,Coursera 的創(chuàng)始人、深度學(xué)習(xí)先鋒 Andrew Ng 發(fā)了一條推特:“智能工作流將推動(dòng)今年的 AI 巨大發(fā)展”。自那時(shí)起,智能代理領(lǐng)域的進(jìn)展令人驚嘆,許多人開(kāi)始構(gòu)建自主代理和多代理架構(gòu)。

02、什么是 REAcT 提示?

REAcT 代表 Reasoning(推理)、Acting(行動(dòng)) 和 Thinking(思考),它是一種提示技術(shù),使大語(yǔ)言模型(LLMs)能夠?qū)?fù)雜任務(wù)分解為一系列思考過(guò)程、行動(dòng)和觀察。

深度解析 REAcT Agent 的實(shí)現(xiàn):利用 LlamaIndex 和 Gemini 提升智能代理工作流-AI.x社區(qū)

REAcT 提示的過(guò)程簡(jiǎn)單明了,主要包括以下三個(gè)步驟:

  1. 思考:根據(jù)用戶查詢,代理生成關(guān)于如何解決問(wèn)題的思路。
  2. 行動(dòng):代理根據(jù)其思考執(zhí)行某些操作,利用可用的工具或 API,例如谷歌搜索、文件加載等。
  3. 觀察:代理分析其行動(dòng)結(jié)果,并決定是否繼續(xù)該過(guò)程或提供最終答案。

這個(gè)過(guò)程會(huì)循環(huán)進(jìn)行,直到獲得令人滿意的結(jié)果或達(dá)到最大迭代次數(shù)。

REAcT 提示的示例

讓我們看一個(gè)典型的 REAcT 提示結(jié)構(gòu):

  • 思考:關(guān)于任務(wù)的推理。
  • 行動(dòng):要執(zhí)行的動(dòng)作,例如“搜索”。
  • 行動(dòng)輸入:執(zhí)行該動(dòng)作的輸入,例如搜索查詢。
  • 觀察:該動(dòng)作的結(jié)果。
  • 思考:基于觀察的進(jìn)一步推理。
  • 最終答案:代理的結(jié)論。

實(shí)時(shí)示例

假設(shè)用戶查詢:“最近的印度與英格蘭測(cè)試系列賽的最佳球員是誰(shuí),他們的關(guān)鍵表現(xiàn)如何?”

輸出(使用 crewAI 生成):

  • 思考:為了準(zhǔn)確回答這個(gè)查詢,我需要找到關(guān)于最近的印度與英格蘭測(cè)試系列賽的信息,確定最佳球員,并收集他們的表現(xiàn)細(xì)節(jié)。我將開(kāi)始搜索系列賽的結(jié)果。
  • 行動(dòng):搜索
  • 行動(dòng)輸入:“2024 年印度與英格蘭測(cè)試系列賽結(jié)果”
  • 觀察:最近的印度與英格蘭測(cè)試系列賽以印度 4-1 獲勝告終,該系列賽于 2024 年 1 月至 3 月在印度進(jìn)行。

通過(guò)不斷的思考、行動(dòng)和觀察,代理最終得出了答案:Yashasvi Jaiswal 被評(píng)選為最佳球員,并列出了他的關(guān)鍵表現(xiàn)。

REAcT 提示在構(gòu)建代理中的價(jià)值

傳統(tǒng)上,從 LLM 中獲取結(jié)果的方式是編寫(xiě)結(jié)構(gòu)良好的提示。然而,需要注意的是,LLMs 本身并不具備推理能力。雖然多種方法試圖使 LLMs 能夠推理和計(jì)劃,但許多方法未能取得成功。REAcT 的出現(xiàn),在一定程度上成功地設(shè)計(jì)了比以往更合乎邏輯的研究計(jì)劃。

REAcT 通過(guò)將復(fù)雜任務(wù)分解為一系列思考、行動(dòng)和觀察,使代理能夠以之前難以實(shí)現(xiàn)的透明度和適應(yīng)性處理復(fù)雜問(wèn)題。這種方法使開(kāi)發(fā)者更容易理解代理的決策過(guò)程,從而進(jìn)行調(diào)試、優(yōu)化和改進(jìn)。

此外,REAcT 提示的迭代特性使代理能夠處理不確定性。隨著代理在多個(gè)思考、行動(dòng)和觀察周期中的進(jìn)展,它可以根據(jù)新信息調(diào)整其方法,類似于人類在面對(duì)復(fù)雜任務(wù)時(shí)的應(yīng)對(duì)方式。

03、REAcT 代理的關(guān)鍵應(yīng)用與案例

接下來(lái),我們將探索 REAcT 代理的多種應(yīng)用和實(shí)際案例,突顯其在各個(gè)領(lǐng)域提升推理、決策和適應(yīng)能力的潛力。

實(shí)時(shí)體育分析與預(yù)測(cè)

REAcT 代理可以利用互聯(lián)網(wǎng)上大量信息提供體育行業(yè)的分析和預(yù)測(cè)。例如,在 IPL 比賽中,代理可以:

  • 分析球員表現(xiàn)趨勢(shì)。
  • 預(yù)測(cè)最佳擊球順序或投球調(diào)整。
  • 根據(jù)擊球手的擊球區(qū)域建議場(chǎng)上布陣。

自動(dòng)化客戶支持

客戶支持需要提供有效反饋的技能。REAcT 代理非常適合在 LLM 或代理需要提供智能反饋時(shí)使用,幫助:

  • 理解復(fù)雜的客戶查詢。
  • 獲取相關(guān)產(chǎn)品信息和故障排除指南。
  • 逐步引導(dǎo)客戶解決問(wèn)題。

個(gè)性化學(xué)生學(xué)習(xí)

教育領(lǐng)域也是 REAcT 代理可能產(chǎn)生巨大影響的領(lǐng)域。想象一個(gè)個(gè)性化的 AI 輔導(dǎo)員,它可以:

  • 評(píng)估學(xué)生當(dāng)前的知識(shí)水平。
  • 將復(fù)雜主題分解為可管理的小塊。
  • 根據(jù)學(xué)生的反饋調(diào)整教學(xué)風(fēng)格。
  • 提供實(shí)時(shí)反饋并建議額外資源。

04、使用 LlamaIndex 實(shí)現(xiàn) REAcT 代理

現(xiàn)在,我們進(jìn)入實(shí)現(xiàn) REAcT 代理的激動(dòng)人心的部分。實(shí)際上,使用 LlamaIndex 實(shí)現(xiàn)起來(lái)相當(dāng)簡(jiǎn)單,只需幾行代碼。

安裝和設(shè)置

在進(jìn)行代碼實(shí)現(xiàn)之前,我們需要安裝一些必要的庫(kù),包括 LlamaIndex。LlamaIndex 是一個(gè)有效連接大語(yǔ)言模型與數(shù)據(jù)的框架。我們將使用 DuckDuckGo 搜索作為我們的動(dòng)作工具,并將 Gemini 作為集成的 LLM。

!pip install llama-index
!pip install duckduckgo-search
!pip install llama-index-llms-gemini

導(dǎo)入必要組件

我們首先需要導(dǎo)入必要的組件。REAcT 代理需要與外部工具交互以獲取數(shù)據(jù),這可以通過(guò) LlamaIndex 核心工具中的 Function Tool 實(shí)現(xiàn)。邏輯很簡(jiǎn)單:每當(dāng)代理需要訪問(wèn)真實(shí)數(shù)據(jù)時(shí),它會(huì)觸發(fā)一個(gè) Python 函數(shù)來(lái)檢索所需信息。

python

from llama_index.core.tools import FunctionTool
from duckduckgo_search import DDGS
from llama_index.llms.gemini import Gemini

定義 Gemini LLM

在 LlamaIndex 中,OpenAI 是默認(rèn)的 LLM。為了覆蓋 Gemini,我們需要在設(shè)置中初始化它。您可以在 Google AI Studio 獲取 API 密鑰。

from llama_index.core import Settings
import os

GOOGLE_API_KEY = "" # 在這里添加您的 API 密鑰
os.environ["GOOGLE_API_KEY"] = GOOGLE_API_KEY

llm = Gemini()
Settings.llm = llm

創(chuàng)建 REAcT 代理的動(dòng)作工具

接下來(lái),我們定義搜索工具 DuckDuckGo 搜索。需要記住的一個(gè)重要細(xì)節(jié)是,在定義用于執(zhí)行操作的 FunctionTool 時(shí),需要指定輸入?yún)?shù)的數(shù)據(jù)類型。例如,search(query: str) -> str 確保查詢參數(shù)是字符串。由于 DuckDuckGo 返回的搜索結(jié)果包含附加元數(shù)據(jù),我們將提取結(jié)果的主體內(nèi)容以簡(jiǎn)化響應(yīng)。

def search(query:str) -> str:
    """
    Args:
        query: 用戶提示
    return:
        context (str): 用戶查詢的搜索結(jié)果
    """
    req = DDGS()
    response = req.text(query, max_results=4)
    context = ""
    for result in response:
        context += result['body']
    return context

search_tool = FunctionTool.from_defaults(fn=search)

編寫(xiě) LlamaIndex 的 REAcT 代理

隨著代理的主要組件已設(shè)置完畢,我們現(xiàn)在可以定義 REAcT 代理。我們可以直接使用 LlamaIndex 核心中的 ReAct Agent。此外,我們?cè)O(shè)置 verbose=True 以了解幕后發(fā)生的事情,設(shè)置 allow_parallel_tool_calls=True 允許代理在適當(dāng)情況下做出決策而無(wú)需總是依賴外部操作。

from llama_index.core.agent import ReActAgent

agent = ReActAgent.from_tools(
    [search_tool], 
    llm=llm, 
    verbose=True,
    allow_parallel_tool_calls=True
)

這樣,我們就創(chuàng)建了 REAcT 代理?,F(xiàn)在可以使用它來(lái)回答查詢,通過(guò)運(yùn)行 agent.chat 方法。

template = """
你是一位專業(yè)的體育分析記者。
分析 Virat Kohli 在 2024 年 IPL 的表現(xiàn)趨勢(shì),并提供他的優(yōu)缺點(diǎn)。
還需提供 Virat Kohli 在 IPL 2024 的總得分。
我還需要他在同一賽季的最高分。
"""

response = agent.chat(template) 
print(response)

輸出

最終,我們得到了 REAcT 代理的響應(yīng)。通過(guò)這樣的實(shí)現(xiàn),代理能夠有效地回答實(shí)時(shí)用戶查詢。

深度解析 REAcT Agent 的實(shí)現(xiàn):利用 LlamaIndex 和 Gemini 提升智能代理工作流-AI.x社區(qū)

05、結(jié)語(yǔ)

REAcT 代理代表了人工智能和智能工作流領(lǐng)域的一大進(jìn)步。通過(guò)使用 LlamaIndex 實(shí)現(xiàn) REAcT 代理,我們創(chuàng)建了一個(gè)強(qiáng)大的工具,能夠在實(shí)時(shí)用戶查詢中進(jìn)行推理、行動(dòng)和思考。

參考:

  1. ??https://medium.com/@akash-modi/logical-reasoning-with-react-agent-from-scratch-in-python-part-2-b74ef462244b??

?

本文轉(zhuǎn)載自公眾號(hào)Halo咯咯  作者:基咯咯

原文鏈接:??https://mp.weixin.qq.com/s/0CG6AOqnRiiCEDDsqYCwXQ??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦