譯者| 崔皓
#審查者| 重樓
審查學校| 重樓
OpenAI剛剛宣布了ChatGPT插件-一種讓ChatGPT在Web上執行操作的方法。這不僅意味著ChatGPT可以存取網路並瀏覽最新內容和新聞,還可以代替我們執行一些操作,例如購買雜貨、預訂機票等等。
實作過程非常簡單:
#外掛程式提供者使用OpenAPI標準來撰寫API規格。這是一個已經存在了一段時間的標準,也是類似Swagger API文件工具的支持者。
然後,將這個規範編譯成提示,向ChatGPT解釋它如何使用API來增強答案。想像一下詳細的提示,包括每個可用端點的描述。 #最後,使用者提出新的問題。如果ChatGPT需要
從API中獲取信息,它將在回答之前進行請求並添加到上下文中。
儘管在撰寫本文時,這個過程已經在官方OpenAI文件中有所記錄,但訪問受到了限制。由於還沒有取得存取權限,我決定根據以上內容實作自己的機制。因此,以下是我嘗試實作自己的ChatGPT插件機制。 #鄭重「我
#1 也只能透過公開資訊來了解ChatGPT外掛,並沒有其他管道了解
額外的
資訊。 本文的示範是為了說明實現的概念,
#########並不能代表實現之後的樣子。 ########################選擇API規格#############第一步是了解如何指定API。 OpenAI提供了一些樣本API規範,因此我決定使用相同的輸入來實現自己的解決方案,並為單一端點編寫了一個簡單規範。 ###############################我使用DummyJSON,一個專門用於測試的簡單API,特別是「取得所有代辦事項」的端點。我編寫了以下YAML檔案作為規格。 #####################openapi: 3.0.1 info: title: TODO Plugin description: A plugin that allows the user to create and manage a TODO list using ChatGPT. version: 'v1' servers: - url: https://dummyjson.com/todos paths: /todos: get: operationId: getTodos summary: Get the list of todos parameters: - in: query name: limit schema: type: integer description: Number of todos to return - in: query name: skip schema: type: integer description: Number of todos to skip from the beginning of the list responses: "200": description: OK content: application/json: schema: $ref: '#/components/schemas/getTodosResponse' components: schemas: getTodosResponse: type: object properties: todos: type: array items: type: object properties: id: type: int todo: type: string completed: type: bool userId: type: string description: The list of todos.##########如上面設定檔所示,########### #一個端點有兩個參數: "limit" 和"skip"。 ##############################現在,我需要將上面的############ ##################經過反覆討論,最後得到了以下結果:#################### #
You are a virtual assistant that helps users with their questions by relying on information from HTTP APIs. When the user asks a question, you should determine whether you need to fetch information from the API to properly answer it. If so, you will request the user to provide all the parameters you need, and then ask them to run the request for you. When you are ready to ask for a request, you should specify it using the following syntax: <http_request>{ "url": "<request URL>", "method": "<method>", "body": {<json request body>}, "headers": {<json request headers>} }</http_request> Replace in all the necessary values the user provides during the interaction, and do not use placeholders. The user will then provide the response body, which you may use to formulate your answer. You should not respond with code, but rather provide an answer directly. The following APIs are available to you: --- <OpenAPI Specification goes here>
我会告诉ChatGPT以特定的语法回应,并告诉它用户将提供响应。这是因为AI模型不会执行任何API调用——它必须将该操作委托给不同的系统。由于我们无法访问ChatGPT的内部组件,于是要求它将HTTP请求委托给用户。只要隐藏对话转换对最终用户不可见就行了,用户甚至感知不到HTTP请求,就万事大吉了。
编排
ChatGPT是一个通过REST API公开的AI模型。向OpenAI模型发出请求只是端到端聊天机器人体验中的一步。这意味着可以设置模型传递的信息,以及向最终用户显示的信息。
为了使用ChatGPT实现虚拟助手的功能,我使用了Bot Framework Composer,这是一种基于UI的工具,允许我们构建对话体验并将其发布到不同的渠道。以下是高级别的解决方案架构:
我用Bot Framework Composer构建了这个虚拟助手,因为它可以快速部署到多个终端用户渠道,且只需要很少的代码。如果您想要复制这个解决方案,您可能还需要考虑使用Power Virtual Agents,尤其是在生产中使用。
以下是对话流程的构建方式:
1. 用户提问
2.ChatGPT用预格式化的消息进行回复:
2.<http_request>{ "url": "https://dummyjson.com/todos?limit=5", "method": "GET", "body": "", "headers": {} }</http_request>
3.Azure Bot检测到这种格式,并将请求提交给DummyJSON API,而不会牵扯到最终用户。
4.Azure Bot代表用户向ChatGPT发出新请求,以获取响应正文。
5.ChatGPT格式化响应:"这是你的前5个待办事项:..."
6.Azure Bot回复给用户。
有一件事情立即吸引了我的注意產品##可以阻止它透過產生程式碼的方式呼叫其他網站或套用。 出於這個原因,我應用了一個簡單的網域允許列表,這樣保證所有請#求只能傳送到DummyJSON API,而且只能一次發送一條– 可確保訊息傳送的安全性。
以上是設部##部 分的整體思路。
最終結果上面
##跳過
細節,直到體驗完美為止。這是一個統計工具,預計需要一些試錯,直到找到正確的提示。但最終,這是我與機器人的最終版本進行的對話。 #結論ChatGPT插件功能的實作比上面的快速示範要更複雜。這次Demo的目的是展示如何完成ChatGPT的 整合-相信我,我跟你一樣對實作#過程非常好奇。 這個Demo給ChatGPT整合HTTP的能力提供了可能性,我迫不及待想看看社群能夠拋出什麼
###新鮮### #########花樣############。 #####################同時,我們作為該 技術的使用者#,也有一種責任感:如果一個有惡意的提示讓Azure Bot向一個未知的伺服器發出請求會發生什麼事?現在有哪些新的攻擊向量?在我編寫的機器人中,應用了簡單的網域白名單——隨著新的用例不斷出現,這是否足夠?我還設法在後續的提示中重寫了API規範——是否存在與此可能相關的風險?有許多與AI 相關的 #安全問題需要考慮,而OpenAI當然也意識到了這一點。
#總的來說,這次Demo讓我印象深刻。 ChatGPT的可能性確實是無限的,我一定會關注這個功能,看它在未來幾周和幾個月內的發展。我也希望盡快在Azure OpenAI中看到它!
譯者介紹
崔皓,51CTO社群編輯,資深架構師,擁有18年的軟體開發與架構經驗,10年分散式架構經驗。
原文標題:#How ChatGPT Plugins (could) work
####################################################以上是如何使用ChatGPT插件工作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

AI增強食物準備 在新生的使用中,AI系統越來越多地用於食品製備中。 AI驅動的機器人在廚房中用於自動化食物準備任務,例如翻轉漢堡,製作披薩或組裝SA

介紹 了解Python函數中變量的名稱空間,範圍和行為對於有效編寫和避免運行時錯誤或異常至關重要。在本文中,我們將研究各種ASP

介紹 想像一下,穿過美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

繼續使用產品節奏,本月,Mediatek發表了一系列公告,包括新的Kompanio Ultra和Dimenty 9400。這些產品填補了Mediatek業務中更傳統的部分,其中包括智能手機的芯片

#1 Google推出了Agent2Agent 故事:現在是星期一早上。作為AI驅動的招聘人員,您更聰明,而不是更努力。您在手機上登錄公司的儀表板。它告訴您三個關鍵角色已被採購,審查和計劃的FO

我猜你一定是。 我們似乎都知道,心理障礙由各種chat不休,這些chat不休,這些chat不休,混合了各種心理術語,並且常常是難以理解的或完全荒謬的。您需要做的一切才能噴出fo

根據本週發表的一項新研究,只有在2022年製造的塑料中,只有9.5%的塑料是由回收材料製成的。同時,塑料在垃圾填埋場和生態系統中繼續堆積。 但是有幫助。一支恩金團隊

我最近與領先的企業分析平台Alteryx首席執行官安迪·麥克米倫(Andy Macmillan)的對話強調了這一在AI革命中的關鍵但不足的作用。正如Macmillan所解釋的那樣,原始業務數據與AI-Ready Informat之間的差距


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版
中文版,非常好用

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

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能