1 账号2 接口调用
我们可以用 提供的API接口实现很多NLP的任务,还可以支持生成图像,提取以及的功能。接下来我们来看下具体怎么调用接口。
2.1 生成key
首先需要从网址://api…,==生成我们的API key==:
获得key后我们就可以调用API接口了。目前 的 API 服务提供了一个免费的 API 计算单元 (ACU) 的额度,该额度可以用于测试和试用 提供的服务。免费的额度用完后,需要购买额外的 ACU 才能继续使用 的 API 服务。我们可以从Usage和://usa… 里去查看我们的免费额度以及进行额度充值:
2.2 接口功能
首先我们需要安装
pip install openai
安装好以及获得API key后,我们就可以调用接口了,首先我们来看下能够提供的模型有什么:
import openai
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"
models = openai.Model.list()
for model in models['data']:
print(model['id'])
我们可以看出,目前提供的模型有如下:
目前开放的是基于gpt-3.5模型来的。接下来大概介绍一下我们应该怎样去调用接口,获取我们想要的结果。
2.2.1 图片生成 (image )
import openai
import json
# 设置API密钥
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"
def image_genaration(prompt):
response = openai.Image.create(
prompt=prompt,
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
return image_url
if __name__=='__main__':
prompt='a delicious dessert'
result = image_genaration(prompt)
print(result)
===’a ‘==, 其中返回url地址,我们将地址复制到浏览器中,打开看到如下图:
当===’母亲在厨房忙碌着’==,返回的效果图如下:
人物画像细节生成还不够逼真。来试一试中国的古诗词效果,===’踏花归去马蹄香’==
马蹄上应该画出一些蝴蝶来表达马蹄的花香味啊,不太满意~
2.2.2 对话(chat)
我们可以从提供的接口调用,api接口调用代码如下所示:
import openai
import json
# 设置API密钥
openai.api_key = "sk-Wljk3BVhN0VieGCwAzEXT3BlbkFJ*******"
def chat(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content":prompt}
]
)
answer = response.choices[0].message.content
return answer
if __name__=='__main__':
prompt='人口最多的国家'
result = chat(prompt)
print(result)
结果如下:
2.2.3 中文纠错 ( )
我们可以通过合理的写,基于问答形式,让gpt-3.5做NLP任务。比如对中文纠错,我们可以这样写,让能够做纠错NLP任务。如下所示:
def correct():
prompt="改正错词输出正确句子:nn我在京东电商平台买了苹果耳几和华为体脂称" #建议prompt: 改正错词输出正确句子:nn input_sentence
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content":prompt}
]
)
answer = response.choices[0].message.content
return answer
if __name__=='__main__':
result = correct()
print(result)
结果如下:
2.2.4 关键词提取 ( )
def keyword():
prompt="对下面内容识别2个关键词,每个词字数不超过3个字:nn齐选汽车挂件车内挂饰车载后视镜吊坠高档实心黄铜玉石出入平安保男女 红流苏-玉髓平安扣" #建议prompt: 对下面内容识别n个关键词,每个词字数不超过m个字:nn input data
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content":prompt}
]
)
answer = response.choices[0].message.content
return answer
if __name__=='__main__':
result = keyword()
print(result)
对于不同的,输出的结果差异也较大。所以对于具体的任务场景,我们需要==尝试不同的, 根据结果的反馈,不断的调整和优化,从而得到更加准确的结果==。
2.2.5 抽取文本向量 ()
def embedding():
content = '苹果手机'
response = openai.Embedding.create(
model="text-embedding-ada-002",
input=content
)
answer = response.data[0].embedding
return answer
if __name__=='__main__':
result = embedding()
print(len(result))
print(result)
得到结果如下:
是一个1536维度的向量,我们可以基于文本的向量去做很多任务,比如计算==两个向量的余弦值,计算相似性分值==等。
2.2.6 微调 (fine tune)
提供了接口可以用我们自己的数据进行fine tune,得到适应我们自己业务场景的新模型。假如我们需要训练一个适应我们自己领域知识的聊天机器人,我们可以按照下面流程来做fine tune。
我们可以先把数据转成csv格式,需提供列和对应的列,其中==相当于问题,就是对应的答案==,如下是我们要用来fine tune模型的.csv训练样本内容显示:
然后我们可以用提供的数据处理工具对数据转成json格式的文件
openai tools fine_tunes.prepare_data -f result.csv
执行完后,我们会得到一个对应的json文件:.jsonl
export OPENAI_API_KEY="sk-Wljk3BVhN0VieGCwAzEX*********"
然后开始训练:
openai api fine_tunes.create -t result_prepared.jsonl -m ada
在这里用我们==自己的数据.jsonl,基于base model: ada模型提交fine tune任务==。提交后会返回给我们一个JOB ID,通过这个job id我们可以跟进模型在远程服务器训练情况:
openai api fine_tunes.follow -i ft-sWKDNnTmUyOGEdpvbAOvEaZt
我们可以看到结果如下:
323AI导航网发布