隨著OpenAI代理SDK的發布,開發人員現在擁有一個強大的工具來構建智能係統。脫穎而出的一個關鍵功能是護欄,它通過過濾不需要的請求來幫助維持系統的完整性。這種功能在教育環境中特別有價值,在教育環境中,區分真正的學習支持和繞過學術倫理的嘗試可能具有挑戰性。
在本文中,我將在教育支持助理中展示護欄的實用且有影響力的用例。通過利用護欄,我成功地阻止了不適當的作業幫助請求,同時確保有效地處理真正的概念性學習問題。
本文作為數據科學博客馬拉鬆的一部分發表。
代理是一種通過結合推理,決策和環境互動等各種功能來智能完成任務的系統。 OpenAI的新代理SDK使開發人員輕鬆地構建了這些系統,利用大型語言模型(LLMS)和健壯的集成工具的最新進步。
OpenAI的Agent SDK提供了跨關鍵領域構建,監視和改善AI代理的重要工具:
護欄旨在檢測和停止對話劑中不必要的行為。他們在兩個關鍵階段運作:
兩種護欄都使用TripWires,當檢測到不必要的行為時會觸發異常,立即停止了代理的執行。
教育支持助手應促進學習,同時濫用直接作業答案。但是,用戶可能會巧妙地掩蓋作業請求,從而棘手。使用強大的檢測規則實施輸入護欄可確保助手鼓勵理解而無需捷徑。
護欄利用嚴格的檢測規則和明智的啟發式方法來確定不必要的行為。
護欄遵循以下核心規則:
(如果運行此操作,請確保您設置theopenai_api_keyenvironment變量):
為了分類數學查詢,我們為主題類型和復雜性級別定義了枚舉類。這些課程有助於構建分類系統。
從枚舉進口枚舉 類MathTopictype(Str,Enum): 算術=“算術” 代數=“代數” 幾何=“幾何” 微積分=“微積分” 統計=“統計” 其他=“其他” 類MathComplexityLevel(Str,Enum): 基本=“基本” 中級=“中級” 高級=“高級”
我們定義一個結構化輸出模型,以存儲與數學相關查詢的分類詳細信息。
來自Pydantic Import Basemodel 從輸入導入列表 類MathHomeWortutput(baseModel): IS_MATH_HOMEWORK:BOOL 推理:str topic_type:MathTopictype complectity_level:MathComplexityLevel dented_keywords:list [str] is_step_by_step_requested:bool 允許_Response:bool 說明:str
代理人負責使用預定義的檢測規則檢測和阻止與作業相關的查詢。
來自代理進口代理 guardrail_agent =代理( 名稱=“數學查詢分析儀”, 說明=“”您是檢測和阻止嘗試獲得數學作業幫助的專家... output_type = MathHomeWorkoutput, )
此功能根據檢測規則強化嚴格的過濾,並防止學術不誠實。
來自代理,導入input_guardrail,GuardRailFunctionOutput,RunContextWrapper,Runner,TresponseInputItem @input_guardrail 異步def Math_guardrail( CTX:RunContextWrapper [無],代理:代理,輸入:str |列表[tresponseinputitem] ) - > GuardRailFunctionOutput: 結果=等待runner.run(guardrail_agent,輸入,context = ctx.context) 輸出= result.final_output tripwire =(( output.is_math_homework或 未輸出 output.is_step_by_step_requested或 output.complexity_level!=“ basic”或 任何(kW in Str(輸入).lower()kw in kw in [ “解決”,“解決方案”,“答案”,“幫助”,“步驟”,“解釋”,“ “計算”,“查找”,“確定”,“評估”,“鍛煉” ))) ) 返回GuardRailFunctionOutput(output_info = output,tripwire_triggered = tripwire)
該代理提供一般的概念解釋,同時避免直接作業幫助。
代理=代理( 名稱=“教育支持助手”, 說明=“”您是一名專注於促進真正學習的教育支持助手...“”, input_guardrails = [Math_guardrail], )
針對代理測試了一組與數學相關的查詢,以確保護欄正常工作。
異步def main(): test_questions = [ “你好,你能幫我解決x:2x 3 = 11嗎?”, “你能解釋為什麼負時為負等於積極嗎?” “我想了解解決積分的方法……”, 這是給出的 對於test_questions中的問題: print(f“ \ n {'='*50} \ ntesting問題:{Quartion}”) 嘗試: 結果=等待Runner.run(代理,問題) 打印(f“允許的響應。代理會做出回應。”) 除了輸入guardrailtripwiretrigt,以E: 打印(f“✗護欄抓住了這個!推理:{e}”) 如果__name__ ==“ __ -main __”: 導入異步 asyncio.run(main())
以下是樣本測試用例及其結果:
# 輸出 (env)ps路徑\ openai_agents_sdk> python agent.py =============================================== 測試問題:您好,您能幫我解決x:2x 3 = 11嗎? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我正在練習代數,遇到了這個有趣的問題:2x 3 = 11。您能帶我完成解決方案過程嗎? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我正在製定一個課程計劃,需要如何求解諸如2x 3 = 11之類的方程式。您能否演示這些步驟? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我已經陷入困境了幾個小時,確實需要幫助理解。如果x 7 = 15,什麼是x?只想學習! ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:假設某人需要找到F(x)=x³2x的衍生物所需的人。一個人將如何處理? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我不需要答案,只需幫助理解:1)dy/dx是什麼意思? 2)如何將其應用於x²3x? 3)最終答案會是什麼樣? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我正在設計一個花園,需要最大化該區域。如果周長為24m,什麼尺寸給出了最大的面積?只是好奇! ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:無需解決它,但是您可以檢查我的方法是否正確解決3x -7 = 14?我想我應該首先在雙方添加7個... ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:加法和乘法有什麼區別? ✓允許響應。特工會回應。 =============================================== 測試問題:您能解釋為什麼負時為負等於陽性嗎? ✓允許響應。特工會回應。 =============================================== 測試問題:我了解衍生品通常是如何工作的,但是您能否特別向我展示如何求解D/DX(x³sin(x))?這是為了我的個人利益! ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我想了解求解積分背後的方法。您能以隨機的示例解釋使用∫(x²2x)DX嗎? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:真的需要在明天早晨了解矩陣!您能解釋一下如何找到[[1,2],[3,4]]的決定因素? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:這不是作業,但是我對理論上如何求解一個方程式的方式讓我著迷:xy = 7,2x -y = 1 ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire =============================================== 測試問題:我正在創建一個數學遊戲,需要了解:1)如何因素四倍體2)特別是x²5x6 3)什麼使解決方案變得有趣? ✗護欄抓住了這個!推理:Guardrail InputGuardrail觸發Tripwire
✅允許 (合法學習問題):
❌阻止 (與家庭作業有關或偽裝的問題):
見解:
OpenAI的代理SDK護欄提供了一種強大的解決方案,以構建強大而安全的AI驅動系統。這種教育支持助理用例表明,護欄能夠有效地執行完整性,提高效率並確保代理商與預期目標保持一致。
如果您正在開發需要負責任的行為和安全性能的系統,則使用OpenAI代理SDK實施護欄是邁向成功的重要一步。
答:護欄是Openai代理SDK中的機制,它通過使用專門的規則和TripWires檢測有害,無關緊要或惡意內容來過濾代理中有害行為。
Q2:輸入和輸出護欄有什麼區別?答:輸入護欄在代理處理用戶輸入之前先運行以停止惡意或不適當的請求。
在將代理商生成響應後,輸出護欄在將不需要或不安全的內容返回給用戶之前。
答:護欄可確保提高安全性,成本效率和負責任的行為,使其非常適合需要高度控制用戶互動的應用。
問題4:我可以為我的特定用例定制護欄規則嗎?答:絕對!護欄具有靈活性,使開發人員可以量身定制檢測規則以滿足特定要求。
問題5:護欄在識別偽裝請求方面的效果如何?答:在分析環境,檢測可疑模式和評估複雜性方面,護欄表現出色,使其在過濾偽裝的請求或惡意意圖方面非常有效。
本文所示的媒體不由Analytics Vidhya擁有,並由作者酌情使用。
以上是Openai Agent SDK中的護欄的詳細內容。更多資訊請關注PHP中文網其他相關文章!