草庐IT

ChatGPT API 接入微信公众号(服务号)的坑及实现 (Part 2)

DG数据圈 2023-04-17 原文

前一篇我们聊了聊ChatGPT API接入微信公众号的数据流。

现在稍微介绍详细点,仅供参考。这是个通用的解决方案,并不仅限于ChatGPT API的调用。

本文有以下内容:

  1. 数据流详细介绍

  2. 一点笔记

  3. 与AI对话怎样问问题

  4. 法律条文

  5. 演示截图

1. 数据流详细介绍

之前我们已经知道,在公众号中与AI对话,数据流主要如下。

关于Azure Web App里的流程,主要如下:

 

2. 一点笔记

1. 公众号开发的前提条件

需要在公众号开发平台设置好相关的Azure服务器地址,配置一些安全相关的信息,比如IP Whitelist, 加密的Token等。

相应的,要在Azure上提供一个服务,为微信服务器提供验证,它会用到之前设置的Token等。官方有提供一些程序库给调用。

2. 时间限制

微信服务器在5秒内需要有返回。所以服务可以在拿到Request后,马上返回消息。再通过服务号的客服消息功能,获取AI模型的返回后,给用户第二次返回。这里主要用到了Quarkus的Eventbus.

3. Azure Web App的搭建以及调用ChatGPT API

https://medium.com/@datatec.studio/use-chatgpt-api-gpt-3-5-turbo-with-azure-quarkus-web-app-422b29d49782

4. Azure免费服务的中断情况

貌似如果有一段时间没有访问,Azure免费服务会进入休眠,不是很确定。所以可以创建一个Timer Trigger服务,定时调用服务唤醒它。

 

3. 与AI对话怎样问问题

首先要强调的是,AI给出的答案不保证是正确的,但作为参考一般很有价值。

和使用搜索引擎比较类似,所有答案是基于你的问题,甚至是基于你之前在网络上留下的痕迹。AI对话中,可以尝试让AI扮演不同角色给问题,也可以在问题的组织上,用一些模版,说不定会有惊喜。这里给出几个例子:

      • AI对话提问的例子

        1. 我正在准备某科目的考试,请出一些相关的练习题并附带答案

        2. 你如果是一个投资者,你会对这个项目有什么看法:

        3. 帮我修改一下这段英话:

        4. 你回答的不对吧,修改下答案

        5. 某电影,小说主要讲什么,有哪些比较类似或者完全不同的小说

        6. 用编程语言设计这个项目,怎么写

        7. (假如)我是什么职业,现在有这么个情况,你帮忙分析下

        8. 如果我想怎样,需要准备哪些步骤

        9. 我想要哪方面的资源,去哪里可以找到

        10. 现在棋盘上的棋子布局如下,该我走了,我该下到哪里,为什么?

 

4. 法律条文

还在学习中,具体大致如下:

  1. ChatGPT Service Term

  2. ChatGPT Use Term

  3. OpenAI Usage Policies

  4. 欧洲联盟通用数据保护条例

  5. 微信服务条款

  6. 公众号开发者规范

  7. 数据安全法

  8. 网络安全法

  9. 个人信息保护法

  10. 认证规范V2.0

  11. 电子商务法

  12. 网络信息安全技术保护条例

     

5. 演示截图

能访问官网的小伙伴,不妨直接去那里直接测试 https://chat.openai.com/

公众号德国数据圈目前虽然调用ChatGPT API,正如之前提到,由于一些原因,对问题文字进行了一定的检测。如果某些问题被拒绝回答,不妨试点别的。

 

 

有关ChatGPT API 接入微信公众号(服务号)的坑及实现 (Part 2)的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  5. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  6. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  7. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  8. 华为OD机试用Python实现 -【明明的随机数】 2023Q1A - 2

    华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o

  9. unity---接入Admob - 2

    目录1.AdmobSDK下载地址2.将下载好的unityPackagesdk导入到unity里​编辑 3.解析依赖到项目中

  10. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

随机推荐