導(dǎo)讀 |上周OpenAI發(fā)布了對話語言模型 ChatGPT,相關(guān)討論引爆全網(wǎng)。你是否也迫不及待體驗一番?本文特邀作者騰訊云開發(fā)者社區(qū)作者戴傳友從開發(fā)環(huán)境準(zhǔn)備、開發(fā)過程、服務(wù)器接口、騰訊API網(wǎng)關(guān)接入到部署,詳細(xì)教你如何動手開發(fā)一個chatGPT微信小程序。
在《ChatGPT-地表最強AI模型!要消滅人類?》、《算法工程師深度解構(gòu)ChatGPT技術(shù)》兩篇文章中,我們分別囊舉了ChatGPT的豐富玩法并解析其工作原理。如果你對相關(guān)內(nèi)容感興趣,歡迎回溯圍觀~公眾號的粉絲朋友們在評論區(qū)暢想了更多ChatGP應(yīng)用實踐,也有粉絲表示想要親自體驗下其奇妙之處。此次,我們邀請騰訊云開發(fā)者社區(qū)開發(fā)者由淺入深帶你動手開發(fā)一個ChatGPT微信小程序,其中會詳細(xì)介紹開發(fā)環(huán)境準(zhǔn)備、項目實現(xiàn)、服務(wù)接口搭建、騰訊API網(wǎng)關(guān)接入、部署等環(huán)節(jié)。至此,基本準(zhǔn)備工作已全部完成,接下來將為各位開發(fā)者講述核心代碼的開發(fā)流程。開發(fā)環(huán)境1)新建小程序首先,根據(jù)自己的實際情況下載對應(yīng)版本的微信開發(fā)者工具。下載地址如下:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html其次,我個人建議新建小程序時選擇最簡單的基礎(chǔ)模版,并勾選使用微信云開發(fā)環(huán)境。去除繁雜的配置以便你能更快速的對微信小程序的代碼結(jié)構(gòu)有初步了解。我成文時,因為申請的小程序還沒有審核通過,所以選擇下述測試號用來進(jìn)行開發(fā)。2)環(huán)境介紹導(dǎo)出初始化項目之后,你會看到比較清晰的文件結(jié)構(gòu)。小程序開發(fā)跟普通的html、css、js 三劍客用來開發(fā)網(wǎng)頁沒有本質(zhì)的區(qū)別。在微信體系內(nèi),wxml、wxss、js 都是 html、css、js的子集。頁面的結(jié)構(gòu)在wxml 中寫,用到的樣式在 wxss中定義;變量和函數(shù)以及網(wǎng)絡(luò)請求 等在 js 中執(zhí)行。簡單說來,小程序包含一個描述整體程序的 app 和多個描述各自頁面的 page。這里的 app 是指放在根目錄的 app.js、app.json、app.wxss 這三個文件,他們主要負(fù)責(zé)全局性的邏輯、配置及樣式。pages 則是你即將編寫的多個頁面。多個 pages 之間可以通過官方提供的導(dǎo)航功能進(jìn)行跳轉(zhuǎn)。每個 page 頁面由 page.js、page.json、page.wxml、page.wxss 四個文件組成。其中 WXML 頁面類似 HTML 文件,主要負(fù)責(zé)頁面的結(jié)構(gòu)。相比于HTML而言,WXML 更加簡單。開發(fā)過程中,布局基本上是在使用submitForm: function (e) { //一般前置檢查代碼 ... const that = this wx.request({ url: "http://youdomain.com/api/xxxx", method: "post", header: {"content-type": "application/x-www-form-urlencoded"}, data: data, success(rsp) { console.log("ask result-----",rsp.data) that.setData({ result: rsp.data.data.rsp, disabled: false, loading: false, }) }, complete(d) { console.log(d) } }) console.info("form.submited") ....其他相關(guān)代碼},值得注意的是,上面用到的url需要在小程序中進(jìn)行域名白名單注冊,否則無法被訪問到。同時進(jìn)行注冊的域名,需要進(jìn)行備案。配置地址:登錄微信小程序管理后臺,在開發(fā)管理-服務(wù)器域名中進(jìn)行配置。如下圖。上述內(nèi)容搭建完成后,下一步是配置服務(wù)器。本著快速開發(fā)的原則,可以借用“現(xiàn)成的輪子”,保障效率第一。各位可以參考現(xiàn)有的api-server腳手架(https://github.com/wytxer/template-node-egg)。之后配置接口名字以及對應(yīng)的handle。我定義了一個名字叫做 /ask 的接口名字,同時定義了處理ask接口的 handle函數(shù)如下。
async ask() { const { request, helper, axios, logger } = this.ctx const { message } = request.body logger.info("requset body===", request.body) logger.info("message===",message) ...其余相關(guān)代碼 這里的token就是前面提到的在openai上申請到的token const config = { headers: { Authorization: `Bearer ${token}` } } const req = { model: "text-curie-001", prompt: message, max_tokens: 2000, temperature: 0.5 } console.log("req===",req) let text = "" const result = await axios.post("https://api.openai.com/v1/completions", req, { timeout: 300000, headers: { Authorization: "Bearer ${token}" } }) .then(rsp => { console.log("pdf file result", rsp) if (rsp.choices) { text = rsp.choices[0].text } }) .catch(err => { console.log("pdf file error", err) }) const data = { rsp: text } helper.success(data, "success")}這里的token就是前面提到的在openai上申請到的token ,注意不要泄漏。騰訊api網(wǎng)關(guān)接入及部署1)網(wǎng)關(guān)接入考慮到并發(fā)能力,頻率限制,自動擴(kuò)容等能力的接入,我選擇了騰訊云api網(wǎng)關(guān)。如何把api通過騰訊云暴露到外網(wǎng)呢?首先,訪問https://console.cloud.tencent.com/apigateway/service?rid=1。其次,新建一個service,并且選擇https協(xié)議【微信要求https協(xié)議】。最后,新建接口ask并且映射到我們自己的服務(wù)器。2)部署過程在微信開發(fā)者工具里面進(jìn)行代碼上傳,然后在微信小程序后臺里面就能看到上傳的版本。建議各位開發(fā)者提交審核之前用真機(jī)掃描體驗一下,有bug及時修復(fù)。粉絲福利,后臺回復(fù)“ChatGPT”獲得本篇作者推薦相關(guān)學(xué)習(xí)材料
標(biāo)簽:
Copyright © 2015-2022 太平洋獸藥網(wǎng) 版權(quán)所有 備案號:豫ICP備2022016495號-17 聯(lián)系郵箱:93 96 74 66 9@qq.com