2023年3月1日,也就是今天,OpenAI终于发布了ChatGPT API。这也意味着,手痒的小伙伴,有使用这个API的机会了。
我尝试了一下,用微软云Azure上的Python Azure Function, 调用了ChatGPT 的API。最终在本地运行成功: 可以在浏览器地址栏中输入各种问题,然后再显示ChatGPT的答案。
我在网址里输入了去年的一道物理高考题, 程序本身运行没问题。不过ChatGPT看来还需要加油,据说标准答案是C,而不是它认为的A。
这个软件项目是个很简单的实验,只是为了看看ChatGPT的接口是否能调用成功。不过这个尝试也是接下来做其他实验的一个基础,所以总结一下,有兴趣的小伙伴可以往下看。技术细节在我的英文博客中有讲,学有余力的同学可以移步到那边:
https://medium.com/@datatec.studio/guide-invoke-openai-api-with-python-azure-functions-1c128974c49
以下主要有这几个部分:
Python Azure Function可以理解为一段跑在云上的程序,也就是所谓的无服务。它运行起来后就能提供一个网址,用户访问这个网址,就能得到相关的服务了。这次实验只需要修改两个文件,一个是Python代码,另一个是关于Python包的定义文件。剩下的都是配置安装。
在Python文件中, 我调用了ChatGPT API。也就是说,当用户在网址中输入问题后,这段程序能读取地址栏中编码后的问题,然后将问题传给ChatGPT API, 获得答案后,将答案再返回给了用户。
如果以后要把这个功能扩展,除了要将本地代码发布到云上外,还需在客户端设计一个输入框页面,用户就不需要在网址中输入问题,只需在输入框输入问题,点击按钮后把问题传到这个网址,这样更加人性化。或者使用别的软件,直接调用这个Python Azure Function提供的网址,或者说是Endpoint。例如整合在小程序,公众号等等,如果允许的话。或者通过一些附加的数据处理,拓展一些用户场景,也许更靠谱些。至于整个应用在性能,安全等方面的提升,那以后再聊了。
这次伴随ChatGPT API发布的,还有他们对数据管理的更新。感觉这个信息还很重要的,不知道这个条件是否已经满足在微信生态或其他国内应用上做开发呢。
OpenAI 官方信息 https://platform.openai.com/docs/guides/chat:
As of March 1st, 2023, we retain your API data for 30 days but no longer use your data sent via the API to improve our models.
2. 开发步骤
3. Python Azure Function: 调用ChatGPT API的核心代码
项目的结构图如下, 其中function_app.py 以及 requirements.txt是之前提到的两个文件。
function_app.py 的代码如下。这段代码有兴趣的同学可以继续扩展,因为ChatGPT API支持同时接收多个message,代码中,你可以看到它是一个数组。
import azure.functions as func
import openai
openai.api_key = "your-openai-api-key"
app = func.FunctionApp()
@app.function_name(name="HttpTrigger1")
@app.route(route="hello")
def test_function(req: func.HttpRequest) -> func.HttpResponse:
prompt = req.params.get('prompt')
if not prompt:
return func.HttpResponse( "Please provide a prompt.", status_code=400)
completions = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
message = completions.choices[0].message.content.strip()
return func.HttpResponse(message)
链接:
A. 所受地球引力的大小近似为零
B. 所受地球引力与飞船对其作用力两者的合力近似为零
C. 所受地球引力的大小与其随飞船运动所需向心力的大小近似相等
D. 在地球表面上所受引力的大小小于其随飞船运动所需向心力的大小
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。