ChatGPT API - 便利更上一层楼
3月2日,ChatGPT正式推出了他们的API,对于开发者和企业而言,可以将ChatGPT更方便地集成到他们的App和服务中,对于消费者而言,将从更多层面体验到Ai带来的便利。
所谓API ,就像是一份编程接口的“菜单”,服务员就像是 API 的“门面”,它接受你点的菜单,然后告诉厨师去做指定的菜,而厨师就像是 API 的“内部实现”,它负责处理你点的菜单并将最终的菜肴交给服务员。而消费者既享受到了服务员的服务,又享受到了厨师的菜品。
举个例子来说,ChatGPT非常擅长将非结构化的语言处理成结构化的语言,比如以往我们在使用一个记账App时,需要输入具体的金额数字、消费时间和消费分类等,再由App转为合适的格式保存到数据库中。
而如果这个记账App集成了ChatGPT API,用户只需要告诉App:“我今天在楼下餐馆吃饭,花了20元”这样口语化的语言,ChatGPT就可以自动将这段话转为诸如
[["Date":, xxxx-x-xx],["amount":, 20.0],["category":"food"]]
这样格式化的文本,再由App保存起来。这样用户不必再进行繁琐的操作,只需要如日常对话与App沟通。当这个场景扩展之后,我们可以想象一些更为复杂的操作,如编辑Excel、做PPT甚至写代码等等,Excel(VBA)或代码等都是非常结构化的文本,这些都可以通过对话自然而然的完成,而这些场景已经有人在使用ChatGPT慢慢实现了。
ChatGPT API 初探
由ChatGPT API官方文档可以知道,当我们在使用API向它发起一段对话时需要传入哪些参数。
其中,“model”决定了我们使用的是具体哪个ChatGPT模型,目前可用最新的版本为ChatGPT-3.5,这也是Bin正在使用的版本(不同的是,Bing Chat可以联机访问互联网上的信息)。
ChatGPT API中的”Temperature”(温度)参数,好比控制“火候”的开关。将Temperature设置得越高,ChatGPT输出的回复就会越不稳定。就像烹饪时,增加火力可能会更快地烤熟食物,但也可能更快糊掉。举个例子,如果你在使用 ChatGPT API 写一份商务邮件的草稿,可能想让 ChatGPT 回答比较正式的话,这个时候你就可以把 Temperature 参数拧到较冷的位置(接近或等于0);如果你在使用 ChatGPT API 聊天,可能想让 ChatGPT 回答比较活泼的话,这个时候你就可以把 Temperature 参数拧到较热的位置(接近或等于2)。通过调整 Temperature 参数,可以让 ChatGPT 的回答更加符合场景需求。
“messages”参数是指在API调用时,用户向ChatGPT发送的文本信息。比于聊天,就像是用户在与ChatGPT进行交流时所说的话语,比如“你好”、“今天天气怎么样”等等。使用时需要指定Messages的“role”和“content”,content就是具体的文本信息,而role包括:
- “user”,即用户向ChatGPT发送的文本(prompt),ChatGPT会根据用户文本作出相应的回答
- “system”,用来设定ChatGPT的行为,通俗来说,就是为ChatGPT立一个“人设”,比如告诉ChatGPT:“你是一个友好的人工智能助手”或“你是一个训练有素的翻译家”
例如,当我把system设为“你是一个翻译专家,负责将中文翻译成英文,每次翻译完成要在文末加上’Done’”之后发送用户文本:
who are you
I am an AI language model designed to assist with tasks such as translation, writing, and answering questions. How may I assist you today?
翻译:两只老虎
Two tigers. Done.
- “assistant”,这是ChatGPT所回答的内容,但是开发者同样可以指定assistant的内容,用于给ChatGPT指定的例子,让其作出特定的回答。经测试发现,assistant对ChatGPT的回答所做出的限制比system更加严格。官方文档给出了一个assistant内容的例子:
"The Los Angeles Dodgers won the World Series in 2020."
,当messages包含这段assistant内容后,用户如果问ChatGPT“Who the World Series in 2020.”
或类似的问题,则ChatGPT几乎百分百会回答"The Los Angeles Dodgers”
ChatGPT 人设妙用
在我们熟悉了ChatGPT API相关的几个参数后,便可以事先建立好ChatGPT的若干个“人设”方便我们在不同场景下使用。
如前文中提到的翻译家,下面给出几个通过给出system内容,设定人设的例子,你可以发挥自己的想象建立更多方便自己使用的“人设”。
- 翻译家:“你是一个翻译专家,负责将中文翻译成英文,翻译后的文本准确流利,可以适当加上补充的内容”
- 扩写员:“你是一个文本扩写专家,负责将给定的几个要点扩写成更长的文本,要求扩写内容紧贴要点,不能跑题”
- 提问者:“你是一个提问专家,负责对给出文本进行提问,问题围绕文本的质疑点、矛盾点和缺点进行展开,问题尽量富有建设性”
- 续写官:“你是一个续写官,在给出文本后根据文本的主题和逻辑对文本进行续写”
注意:前面提到system对ChatGPT的限制没有assistant严格,因此在设定system内容后,仍然需要在用户(user)文本中给出明确的指示,比如使用翻译家人设时,用户文本的形式为“翻译以下文本:xxxxxx”或“翻译:xxxxxx”。
Loading Comments...