response = openai.ChatCompletion.create(...)
ai_reply = response.choices.message.content
return jsonify({'reply': ai_reply}) # 把AI回复打包送回小程序
```
写好后,把这个后端程序部署到你的云服务器上,并确保它能通过一个网址(比如`https://yourserver.com/ask`)被访问到。
后端服务部署好了,现在让小程序前端和它“握上手”。
回到小程序的`chat.js`里,在那个发送函数中,使用`wx.request`方法,将用户输入的文字`inputText`,以POST请求的方式,发送到你刚部署的后端地址(比如`https://yourserver.com/ask`)。
后端处理完,返回AI的回复,小程序再把这个回复内容更新到页面的`replyText`变量里,界面就自动显示出来了。
接下来就是在微信开发者工具里反复测试了。输入文字,点击发送,看能不能收到回复。这里一定要有耐心,调试是开发的常态。如果出错了,就依次检查:网络请求是否成功发出、后端服务日志有没有报错、API密钥是否正确、费用是否充足等等。
基本的对话功能跑通,你就算成功了一大半!但如果你想让它更像一个“产品”,这里有几个我强烈建议你考虑的方向:
*给对话加上“次数限制”:这是保护你钱包的必备措施!OpenAI的API是按使用量收费的。你可以为每个用户设置每天或每次的免费对话次数,超过后就需要付费或等待。实现方法可以在后端记录用户的OpenID和使用次数。
*优化用户体验:
*加载提示:请求AI时,在按钮或屏幕上显示“思考中…”,别让用户干等。
*错误处理:网络出错、AI服务繁忙时,给用户友好的提示,而不是一堆代码报错。
*历史记录:把对话保存在本地,下次打开还能看到。
*部署与发布:在微信开发者工具里点击“上传”,将代码提交给微信审核。审核通过后,你就可以在微信里搜索到自己做的小程序了。
根据我的经验和观察,新手朋友最容易在下面几个地方摔倒:
1.把密钥写在代码里并公开:这绝对是第一大忌!一定要用环境变量来管理密钥。
2.没有错误处理:代码不能只想着成功的那条路。网络会波动,API可能会暂时不可用,你的代码里必须有`try...catch`这样的异常捕获机制,给用户一个友好的交代。
3.混淆模型名称:OpenAI有不同的模型,比如`gpt-3.5-turbo`和`text-davinci-003`,它们的调用方式、费用和效果都不同,写代码时一定要对照官方文档,别用错了。
4.忽略Token长度限制:AI单次对话能处理的文字量是有限的(Token数)。对于长对话,你需要设计机制,要么截断,要么总结之前的聊天内容再发送,否则会请求失败。
说到底,搭建一个ChatGPT小程序,就像按图纸拼装一个有趣的模型。图纸(开发文档)是现成的,零件(各种工具和API)也都有,你需要的就是一份清晰的组装顺序说明和一点耐心。这个过程里,你会真切地感受到,一个想法是如何通过代码一步步变成现实的,这种成就感,可是单纯的“使用者”体验不到的。别被那些术语吓到,从最简单的界面和功能开始,先让它跑起来,遇到问题就搜索、查文档、在开发者社区提问。动手去做,是破解所有疑惑的唯一捷径。祝你搭建顺利,早日拥有属于自己的AI小助手!
