有沒有想過像Siri和Alexa這樣的AI代理商是如何工作的?這些智能係統在我們的日常生活中變得越來越重要。本文介紹了React模式,該方法通過結合推理和動作技巧來增強AI代理的方法。我們將向您展示如何從頭開始構建AI代理,涵蓋基本工具,庫和實現步驟。讓我們開始吧!
學習目標
- 掌握AI代理的基本概念及其在各種應用中的重要性。
- 了解如何在AI代理中實施理性行為(REACT)模式以增強其能力。
- 設置從頭開始構建AI代理所需的必要工具和庫。
- 使用Python開發AI代理,整合各種動作並實施推理循環。
- 有效測試和調試AI代理,以確保其正常運行。
- 提高AI代理的魯棒性和安全性,並增加更多功能。
- 確定AI代理的實際應用,並了解其未來的前景。
本文作為數據科學博客馬拉松的一部分發表
目錄
- 什麼是AI代理?
- 為什麼AI代理很重要?
- AI代理的申請和用例
- 簡要介紹反應模式
- 使用React的重要性和好處
- 需要工具和庫
- 設置環境
- 建造AI代理
- 實施反應模式
- 實施動作
- 測試和調試
- 調試常見問題
- 改善AI代理
- 結論
- 常見問題
什麼是AI代理?
人工智能代理人是自治生物,可以使用傳感器來關注其環境,過程信息並實現預定義的目標。從基本機器人到復雜的系統,它們可以隨著時間的推移進行調整和學習。典型的實例包括Netflix和Amazon's等推薦引擎,Siri和Alexa等聊天機器人以及Tesla和Waymo的自動駕駛汽車。
這些代理也是許多領域中必不可少的:uipath和blue Prism是自動化重複過程的機器人過程自動化(RPA)程序的示例。 DeepMind和IBM Watson Health是醫療保健診斷系統的例子,可幫助診斷疾病並推薦治療。在他們的領域,AI代理人大大提高了生產力,精度和定制。
為什麼AI代理很重要?
這些代理在改善我們的日常生活和實現特定目標方面發揮著關鍵作用。
AI代理很重要,因為他們可以:
- 降低完成常規操作所需的人工數量,從而提高產量和效率。
- 分析大量數據,以提供支持決策的結論和建議。
- 利用聊天機器人和虛擬助手提供個性化的互動和幫助。
- 在銀行,運輸和醫療保健等行業中啟用複雜的應用。
從本質上講,AI代理在推動下一波技術進步方面至關重要,使系統更聰明,對用戶需求更加敏感。
AI代理的申請和用例
AI代理在各個行業中都有廣泛的應用。以下是一些值得注意的用例:
- 客戶服務:聊天機器人和虛擬助手的形式的AI代理人處理客戶查詢,解決問題並提供個性化支持。他們可以24/7全天候運營,提供一致,高效的服務。
- 財務:財務預測,算法交易和欺詐檢測是AI代理的應用。他們根據市場趨勢進行交易,檢查交易數據以及現貨可疑模式。
- 醫療保健: AI特工協助診斷疾病,推薦治療和監測患者健康。他們分析醫療數據,提供見解並支持臨床決策。
- 營銷: AI代理個性化營銷活動,細分受眾並優化廣告支出。他們分析客戶數據,預測行為並根據個人偏好量身定制內容。
- 供應鏈管理: AI系統估計需求,提高庫存水平並簡化物流。他們檢查製造商,供應商和零售商的信息,以保證運營平穩。
簡要介紹反應模式
反應模式在經過思考的循環中運行,動作,停頓,觀察,答案。
該循環允許AI代理對輸入進行推理,通過利用外部資源來對其進行採取行動,然後將結果重新集成到其推理過程中。通過這樣做,AI代理可以提供更準確和上下文相關的響應,從而大大擴展其效用。
React模式是一種有效的設計模式,結合了推理和動作技巧,以提高AI代理的能力。 GPT-3或GPT-4等LLM從該技術中受益匪淺,因為它允許他們與其他工具和API進行交互,從而超出其原始編程以外的活動。
React模式以由以下步驟組成的環狀循環運行:
- 思想: AI代理處理需要做什麼的輸入和原因。這涉及理解問題或命令並確定適當的行動。
- 行動:基於推理,代理執行預定義的動作。這可能涉及搜索信息,執行計算或與外部API進行交互。
- 暫停:代理等待完成該操作。這是一個至關重要的步驟,代理會停止接收執行動作的結果。
- 觀察:代理觀察動作的結果。它分析了從操作中收到的輸出,以了解獲得的信息或結果。
- 答:代理使用觀察到的結果來生成響應。然後將此響應提供給用戶,完成循環。
使用React的重要性和好處
該反應模式很重要,原因有幾個:
- 增強功能:通過集成外部操作,AI代理可以執行需要特定信息或計算的任務,從而增強其整體功能。
- 提高精度:該模式允許AI代理獲取實時信息並執行準確的計算,從而導致更精確和相關的響應。
- 靈活性:反應模式使AI代理更加靈活和適應各種任務。他們可以與不同的API和工具進行互動以執行各種各樣的動作。
- 可伸縮性:這種模式可以隨著時間的推移添加新的動作和功能,從而使AI代理可擴展且適合未來。
- 現實世界應用: React模式使AI代理可以在現實世界中部署,在那裡他們可以與動態環境進行交互並提供寶貴的見解和幫助。
需要工具和庫
Python是一種多功能且功能強大的編程語言,由於其簡單性和廣泛的圖書館支持,可在AI和機器學習中廣泛使用。對於建造AI代理,幾個Python庫是必不可少的:
- OpenAI API:此庫允許您與OpenAI語言模型(例如GPT-3和GPT-4)進行交互。它提供了必要的功能來生成文本,回答問題並執行與語言相關的各種任務。
- HTTPX:這是一個強大的HTTP客戶端,用於Python,支持異步請求。它用於與外部API相互作用,獲取數據並執行Web搜索。
- RE(正則表達式):此模塊為Python中的正則表達式提供了支持。它用於解析字符串中的模式,這對於處理AI代理的響應非常有用。
OpenAI API和HTTPX庫
OpenAI API是一個強大的平台,可訪問OpenAI開發的高級語言模型。這些模型可以理解並生成類似人類的文本,使其非常適合構建AI代理。使用OpenAI API,您可以:
- 根據提示生成文本
- 回答問題
- 執行語言翻譯
- 總結文本
- 還有更多
HTTPX庫是Python的HTTP客戶端,支持同步和異步請求。它旨在易於使用,同時提供用於製作網絡請求的功能。使用HTTPX,您可以:
- 發送並發布請求
- 處理JSON響應
- 管理會議和餅乾
- 執行異步請求以提高性能
OpenAI API和HTTPX庫一起提供了構建和增強AI代理所需的基礎工具,使它們能夠與外部資源進行交互並執行廣泛的動作。
設置環境
現在讓我們通過遵循某些步驟來建立環境:
步驟1:安裝所需庫
要開始構建AI代理,您需要安裝必要的庫。這是設置您的環境的步驟:
- 安裝Python:確保您在系統上安裝了Python。您可以從Python官方網站下載它:
- 設置虛擬環境:為您的項目管理依賴項創建虛擬環境是一個好習慣。運行以下命令來設置虛擬環境:
Python -M Venv ai_agent_env 源ai_agent_env/bin/activate#在Windows上,使用`ai_agent_env \ scripts \ activate`
- 安裝OpenAI API和HTTPX:使用PIP安裝所需的庫:
PIP安裝OpenAI HTTPX
- 安裝其他庫:您可能還需要其他庫,例如RE for Re for Python標準庫中,因此不需要單獨的安裝。
步驟2:設置API鍵和環境變量
要使用OpenAI API,您需要一個API鍵。請按照以下步驟設置您的API密鑰:
- 獲取API密鑰:在OpenAI網站上註冊帳戶,並從API部分獲取您的API密鑰。
- 設置環境變量:將API密鑰存儲在環境變量中以確保其安全。將以下行添加到您的.bashrc或.zshrc文件(或為操作系統使用適當的方法):
導出openai_api_key ='your_openai_api_key_here'
- 訪問代碼中的API鍵:在Python代碼中,您可以使用OS模塊訪問API鍵:
導入操作系統 OpenAI.API_KEY = OS.GEGENV('OpenAi_Api_Key')
設置環境後,您現在準備開始構建您的AI代理。
建造AI代理
現在讓我們建立AI代理。
創建AI代理的基本結構
為了構建AI代理,我們將創建一個可以處理與OpenAI API交互的類,並管理推理和行動。這是開始的基本結構:
進口Openai 導入 導入httpx 聊天機器人: def __init __(self,system =“”): self.System =系統 self.messages = [] 如果Self.System: self.messages.append({“ crom”:“ system”,“ content”:system}) def __call __(自我,消息): self.messages.append({“ crom”:“ user”,“ content”:message})) 結果= self.execute() self.messages.append({“角色”:“助手”,“ content”:result}) 返回結果 def execute(self): 完成= openai.chatcompletion.create(model =“ gpt-3.5-turbo”,messages = self.messages) 返回完成。選擇[0] .message.content
此類使用可選的系統消息初始化AI代理並處理用戶交互。 __call__方法獲取用戶消息並使用OpenAI API生成響應。
實施反應模式
為了實現反應模式,我們需要定義思想,行動,暫停,觀察和答案的循環。這是我們可以將其納入我們的AI代理的方式:
定義提示
提示=“” 您以思想,動作,停頓,觀察的循環奔跑。 在循環結束時,您會輸出答案。 使用思想來描述您對您被問到的問題的想法。 使用操作來運行可用的操作之一 - 然後返回暫停。 觀察將是執行這些動作的結果。 您的可用操作是: 計算: 例如計算:4 * 7/3 運行計算並返回數字 - 使用Python,因此請確保使用浮點 如有必要,語法 維基百科: 例如Wikipedia:Django 返回搜索Wikipedia的摘要 Simon_Blog_search: 例如Simon_Blog_search:Django 搜索Simon的博客此術語 示例會話: 問題:法國的首都是什麼? 思想:我應該在維基百科上查找法國 行動:維基百科:法國 暫停 您將再次被打電話給您: 觀察:法國是一個國家。首都是巴黎。 然後您輸出: 答:法國的首都是巴黎 “““。條()
定義查詢功能
action_re = re.compile('^action:(\ w):(。*)
查詢函數通過將問題發送給AI代理,解析操作,執行它們並將觀測值饋回循環來運行React循環。
實施動作
現在讓我們研究實施動作。
動作:Wikipedia搜索
Wikipedia搜索操作使AI代理可以搜索有關Wikipedia的信息。這是實施它的方法:
Def Wikipedia(Q): 響應= httpx.get(“ https://en.wikipedia.org/w/api.php”,params = { “動作”:“查詢”, “列表”:“搜索”, “ srsearch”:q, “格式”:“ JSON” })) 返迴響應。
動作:博客搜索
博客搜索操作允許AI代理在特定博客上搜索信息。這是實施它的方法:
def simon_blog_search(q): 響應= httpx.get(“ https://datasette.simonwillison.net/simonwillisonblog.json”,params = { “ SQL”:“”“” 選擇 blog_entry.title || ':'|| substr(html_strip_tags(blog_entry.body),0,1000)作為文本, blog_entry.創建 從 blog_entry在blog_entry.rowid = blog_entry_fts.rowid上加入blog_entry_fts 在哪裡 blog_entry_fts匹配sevase_fts(:q) 訂購 blog_entry_fts.rank 限制 1 “““。條(), “ _ shape”:“ array”, “ q”:q, })) 返迴響應。 JSON()[0] [“ text”]
動作:計算
計算作用允許AI代理執行數學計算。這是實施它的方法:
DEF計算(什麼): 返回評估(什麼)
向AI代理添加動作
接下來,我們需要在字典中註冊這些操作,以便AI代理可以使用它們:
nown_actions = { “ Wikipedia”:Wikipedia, “計算”:計算, “ simon_blog_search”:simon_blog_search }
與AI代理集成行動
為了將操作與AI代理集成,我們需要確保查詢功能可以處理不同的動作並將觀測值饋回推理循環中。這是完成整合的方法:
def查詢(問題,max_turns = 5): i = 0 bot =聊天機器人(提示) next_prompt =問題 當我<max_turns i="1" bot action="%5Baction_re.match%EF%BC%88a%EF%BC%89for" in result.split n .groups print next_prompt="f“觀察:{觀察}”"><p>通過此設置,AI代理可以推理輸入,執行操作,觀察結果並生成響應。</p> <h2 id="測試和調試">測試和調試</h2> <p>現在讓我們遵循測試和調試的步驟。</p> <h4 id="運行示例查詢">運行示例查詢</h4> <p>要測試AI代理,您可以運行樣本查詢並觀察結果。這裡有幾個例子:</p> <pre class="brush:php;toolbar:false">打印(查詢(“英格蘭與什麼共享邊界?”))))
打印(查詢(“西蒙去過馬達加斯加嗎?”))))
打印(查詢(“十五 *二十五”))
調試常見問題
在測試時,您可能會遇到一些常見問題。這裡有一些調試的技巧:
- API錯誤:確保正確設置API鍵並具有必要的權限。
- 網絡問題:檢查您的Internet連接,並確保您呼叫的端點是可觸及的。
- 輸出不正確:驗證操作功能中的邏輯並確保它們返回正確的結果。
- 未經處理的動作:確保在已知_actions詞典中定義所有可能的動作。
改善AI代理
現在讓我們改善AI代理。
增強魯棒性和安全性
使AI代理更強大和安全:
- 驗證輸入:確保對所有輸入進行正確驗證以防止注射攻擊,尤其是在計算功能中。
- 錯誤處理:在操作功能中實現錯誤處理以優雅地管理異常。
- 記錄:添加日誌記錄以跟踪代理的操作和觀察值,以便更輕鬆的調試。
添加更多動作和功能
為了增強AI代理的功能,您可以添加更多動作,例如:
- 天氣信息:與天氣API集成以獲取實時天氣數據。
- 新聞搜索:實施新聞搜索動作以獲取最新的新聞文章。
- 翻譯:使用翻譯API添加翻譯操作來支持多語言查詢。
現實世界應用
- 客戶支持: AI代理可以處理客戶查詢,解決問題並提供個性化建議。
- 醫療保健: AI特工協助診斷疾病,推薦治療和監測患者健康。
- 財務: AI代理人發現欺詐,執行交易並提供財務建議。
- 營銷: AI代理個性化營銷活動,細分受眾並優化廣告支出。
未來的前景和進步
AI代理商的未來是有希望的,隨著機器學習,自然語言處理和AI倫理的進步。新興趨勢包括:
- 自主系統:能夠處理複雜任務的更複雜的自主系統。
- 人類合作:增強了人類與AI代理之間的合作,以改善決策。
- 道德AI:專注於發展優先級隱私,公平和透明度的道德AI代理。
另外,請查看有關向AI代理構建的步驟的文章
結論
在本綜合指南中,我們探討了AI代理的概念,其意義以及增強其能力的反應模式。我們涵蓋了必要的工具和庫,設置環境,然後從頭開始構建AI代理。我們還討論了實施操作,將其與AI代理集成在一起,並測試和調試系統。最後,我們研究了AI代理商的現實應用程序和未來前景。
通過遵循本指南,您現在有知識來從頭開始創建自己的構建AI代理。嘗試不同的動作,增強代理商的能力,並探索令人興奮的人工智能領域的新可能性。
關鍵要點
- 了解AI代理的核心概念和意義。
- 實施反應模式以允許AI代理執行其觀察結果和理由。
- 了解基本工具和庫,例如OpenAI API,HTTPX和Python正則表達式。
- 詳細的指南從頭開始構建AI代理,包括定義操作和集成。
- 有效測試和調試AI代理的技術。
- 增強AI代理能力並確保其穩健性和安全性的策略。
- 實際示例說明了AI代理在各個行業及其未來的進步中如何使用的實例。
常見問題
Q1。 AI中的反應模式是什麼?答:React模式(原因法)涉及實施AI代理可以採取的其他措施,例如搜索Wikipedia或運行計算,並教給代理要求這些措施並處理其結果。
Q2。從頭開始構建AI代理需要哪些工具和庫?答:要從頭開始構建AI代理,您將需要必需的工具,庫包括Python,OpenAI API,HTTPX用於HTTP請求以及Python的正則表達式(RE)庫。
Q3。我如何確保AI代理的安全性,尤其是在使用諸如eval之類的動作時?答:徹底驗證輸入以防止注射攻擊,在可能的情況下使用沙箱技術,實施錯誤處理以及對日誌操作進行監視和調試。
Q4。我可以向指南中描述的AI代理添加更多動作嗎?答:是的,您可以添加各種動作,例如獲取天氣信息,搜索新聞文章或使用適當的API翻譯文本並將其集成到AI代理的推理循環中
以上是如何從頭開始構建AI代理? - 分析Vidhya的詳細內容。更多資訊請關注PHP中文網其他相關文章!

自2008年以來,我一直倡導這輛共享乘車麵包車,即後來被稱為“ Robotjitney”,後來是“ Vansit”,這是城市運輸的未來。 我預見這些車輛是21世紀的下一代過境解決方案Surpas

革新結帳體驗 Sam's Club的創新性“ Just Go”系統建立在其現有的AI驅動“掃描和GO”技術的基礎上,使會員可以在購物旅行期間通過Sam's Club應用程序進行掃描。

NVIDIA在GTC 2025上的增強可預測性和新產品陣容 NVIDIA是AI基礎架構的關鍵參與者,正在專注於提高其客戶的可預測性。 這涉及一致的產品交付,達到績效期望以及

Google的Gemma 2:強大,高效的語言模型 Google的Gemma語言模型家族以效率和性能而慶祝,隨著Gemma 2的到來而擴展。此最新版本包括兩種模型:270億個參數VER

這一領先的數據劇集以數據科學家,天體物理學家和TEDX演講者Kirk Borne博士為特色。 Borne博士是大數據,AI和機器學習的著名專家,為當前狀態和未來的Traje提供了寶貴的見解

這次演講中出現了一些非常有見地的觀點——關於工程學的背景信息,這些信息向我們展示了為什麼人工智能如此擅長支持人們的體育鍛煉。 我將從每位貢獻者的觀點中概括出一個核心思想,以展示三個設計方面,這些方面是我們探索人工智能在體育運動中應用的重要組成部分。 邊緣設備和原始個人數據 關於人工智能的這個想法實際上包含兩個組成部分——一個與我們放置大型語言模型的位置有關,另一個與我們人類語言和我們的生命體徵在實時測量時“表達”的語言之間的差異有關。 Alexander Amini 對跑步和網球都很了解,但他還

卡特彼勒(Caterpillar)的首席信息官兼高級副總裁傑米·恩格斯特(Jamie Engstrom)領導了一支由28個國家 /地區的2200多名IT專業人員組成的全球團隊。 在卡特彼勒(Caterpillar)工作了26年,其中包括她目前的四年半,Engst

Google Photos的新Ultra HDR工具:快速指南 使用Google Photos的新型Ultra HDR工具增強照片,將標準圖像轉換為充滿活力的高動態範圍傑作。對於社交媒體而言,此工具可提高任何照片的影響,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6
視覺化網頁開發工具