Skip to main content
我們知道,市面上一些問答 API 的對接還是相對沒那麼容易的,比如說 OpenAI 的 Chat Completions API,它有一個 messages 字段,如果要完成連續對話,需要我們把所有的上下文歷史全部傳遞,同時還需要處理 Token 超出限制的問題。 AceDataCloud 提供的 AI 問答 API 針對上述情況進行了優化,在保證問答效果不變的情況下,對連續對話的實現進行了封裝,對接時無需再關心 messages 的傳遞,也無需關心 Token 超出限制的問題(API 內部自動進行了處理),同時也提供了對話查詢、修改等功能,使得整體的對接大大簡化。 本文檔會介紹下 AI 問答 API 的對接說明。

申請流程

要使用 AI 問答 API,首先到 Ace Data Cloud 控制台 獲取您的 API Token,留作備用。 如果你尚未登錄或註冊,會自動跳轉到登錄頁面邀請你註冊和登錄,完成後會自動返回當前頁面。 一個 API Token 即可調用平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 充值通用餘額。
📘 完整文檔:AI 問答 API →

基本使用

首先先了解下基本的使用方式,就是輸入問題,獲得回答,只需要簡單地傳遞一個 question 字段,並指定相應模型即可。 比如說詢問:“What’s your name?”,我們接下來就可以在界面上填寫對應的內容,如圖所示: 可以看到這裡我們設置了 Request Headers,包括:
  • accept:想要接收怎樣格式的響應結果,這裡填寫為 application/json,即 JSON 格式。
  • authorization:調用 API 的密鑰,申請之後可以直接下拉選擇。
另外設置了 Request Body,包括:
  • model:模型的選擇,比如主流的 GPT 3.5,GPT 4 等。
  • question:需要詢問的問題,可以是任意的純文本。
選擇之後,可以發現右側也生成了對應代碼,如圖所示:

點擊「Try」按鈕即可進行測試,如上圖所示,這裡我們就得到了如下結果:
可以看到,這裡返回的結果中有一個 answer 字段,就是該問題的回答。我們可以輸入任意問題,就可以得到任意的回答。 如果你不需要任何多輪對話的支持,這個 API 可以極大方便你的對接。 另外如果想生成對應的對接代碼,可以直接複製生成,例如 CURL 的代碼如下:
Python 的對接代碼如下:

多輪對話

如果您想要對接多輪對話功能,需要傳遞一個額外參數 stateful,其值為 true,後續的每次請求都要攜帶該參數。傳遞了 stateful 參數之後,API 會額外返回一個 id 參數,代表當前對話的 ID,後續我們只需要將該 ID 作為參數傳遞,就可以輕鬆實現多輪對話。 下面我們來演示下具體的操作。 第一次請求,將 stateful 參數設置為 true,並正常傳遞 modelquestion 參數,如圖所示: 對應代碼如下:
可以得到如下回答:
第二次請求,將第一次請求返回的 id 字段作為參數傳遞,同時 stateful 參數依然設置為 true,詢問「What I asked you just now?」,如圖所示: 對應代碼如下:
結果如下:
可以看到,就可以根據上下文回答對應的問題了。

流式響應

該接口也支持流式響應,這對網頁對接十分有用,可以讓網頁實現逐字顯示效果。 如果想流式返回響應,可以更改請求頭裡面的 accept 參數,修改為 application/x-ndjson 修改如圖所示,不過調用代碼需要有對應的更改才能支持流式響應。 accept 修改為 application/x-ndjson 之後,API 將逐行返回對應的 JSON 數據,在代碼層面我們需要做相應的修改來獲得逐行的結果。 Python 樣例調用代碼:
輸出效果如下:
可以看到,響應裡面的 answer 即為最新的回答內容,delta_answer 則是新增的回答內容,您可以根據結果來對接到您的系統中。 JavaScript 也是支持的,比如 Node.js 的流式調用代碼如下:
Java 範例代碼:
其他語言可以另外自行改寫,原理都是一樣的。

模型預設

我們知道,OpenAI 相關的 API 有對應的 system_prompt 的概念,就是給整個模型設置一個預設,比如它叫什麼名字等等。本 AI 問答 API 也暴露了這個參數,叫做 preset,利用它我們可以給模型增加預設,我們用一個例子來體驗下: 這裡我們額外添加 preset 字段,內容為 你是一位專業藝術家,如圖所示: 對應代碼如下:
運行結果如下:
可以看到這裡我們告訴 GPT 他是一個機器人,然後問它可以為我們做什麼,他就可以扮演一個機器人的角色來回答問題了。

圖片識別

本 AI 也能支持添加附件進行圖片識別,通過 references 傳遞對應圖片鏈接即可,比如我這裡有一張蘋果的圖片,如圖所示: 該圖片的鏈接是 https://cdn.acedata.cloud/ht05g0.png,我們直接將其作為 references 參數傳遞即可,同時需要注意的是,模型必須要選擇支持視覺識別的模型,目前支持的是 gpt-4-vision,所以輸入如下: 對應的代碼如下:
運行結果如下:
可以看到,我們就成功得到了對應圖片的回答結果。

聯網問答

本 API 還支持聯網模型,包括 GPT-3.5、GPT-4 均能支持,在 API 背後有一個自動搜索互聯網並總結的過程,我們可以選擇模型為 gpt-3.5-browsing 來體驗下,如圖所示: 代碼如下:
運行結果如下:
可以看到,這裡它自動連網搜索了 The Weather Channel 網站,並獲得了裡面的資訊,然後進一步返回了即時結果。
如果對模型回答質量有更高要求,可以將模型更換為 gpt-4-browsing,回答效果會更好。