我们经常使用python访问openai接口的时候偶尔会出现链接不稳定报错,或者是其他情况报错,然后重复运行代码又是正确的。这时候如何设置错误过后重复请求?下面就给大家附上完整的代码!16原创内容,禁止转载!
这里是正常调用gpt的函数打包名为ai_create_art()
content是传进去的内容,我的代码目的是将一些关键词或者文章句子通过ai重组,生成一篇新的文章,并按照SEO的方式去写作,按照我的要求排版。最终扩写成一篇心得SEO文章!下面是大多数人的一个python代码写法!
#gpt写作函数
# def ai_create_art(content):
# print(content)
# messages =[{'role':'system','content':'你是一个高级的seo人员,我需要你帮我改写文章,我提供给你的内容是多段组成或者不完整的,请根据内容和主题重新构建文章,并用h1生成60-120字符的标题,确保100%的人类写作风格,并解决语法问题,并改为主动语态,删除无关部分和不完整内容,确保文章通顺'}]# 在 messages 中加入 `用户(user)` 角色提出第 1 个问题
# #messages = [{'role':'user'}]
# messages.append({'role':'user','content':f'扩写几百个字:{content[:3500]}'})
# response = openai.ChatCompletion.create(
# #model="gpt-3.5-turbo",
# model='gpt-3.5-turbo-16k-0613',
# messages=messages,
# )
# print(response['choices'][0]['message']['content'])
# try:
# assistant_response = response['choices'][0]['message']['content']
# except KeyError:
# if 'message' in response:
# assistant_response = response['message']['content']
# else:
# assistant_response = ""
# return assistant_response
重复请求如何实现?
很多时候由于自身网络或者请求时间过长,或者其他原因导致请求中断,我们肯定是想开着程序就让他一直跑,如果错误只要代码没问题,能继续运行就尽量不要中断进程,所以就会涉及到重复请求,提交数据给openai的接口,让他返回数据。
下面是16改好的完整代码!自己也在使用!
from tenacity import (
retry,
stop_after_attempt,
wait_random_exponential,
retry_if_exception_type
)
@retry(
retry=retry_if_exception_type((openai.error.APIError, openai.error.APIConnectionError, openai.error.RateLimitError, openai.error.ServiceUnavailableError, openai.error.Timeout)),
wait=wait_random_exponential(multiplier=1, max=60),
stop=stop_after_attempt(10)
)
def chat_completion_with_backoff(**kwargs):
return openai.ChatCompletion.create(**kwargs)
def ai_create_art(content):
print(content)
messages =[{'role':'system','content':'你是一个高级的seo人员,我需要你帮我扩写文章,我提供给你的内容是多段组成或者不完整的,请根据内容和主题重新构建文章,并生成60-120字符的标题,确保100%的人类写作风格,并解决语法问题,并改为主动语态,删除无关部分和不完整内容,确保文章通顺'}]# 在 messages 中加入 `用户(user)` 角色提出第 1 个问题
#messages = [{'role':'user'}]
messages.append({'role':'user','content':f'扩写几百个字:{content[:3500]}'})
response = chat_completion_with_backoff(
#model="gpt-3.5-turbo",
model='gpt-3.5-turbo-16k-0613',
messages=messages,
)
print(response['choices'][0]['message']['content'])
try:
assistant_response = response['choices'][0]['message']['content']
except KeyError:
if 'message' in response:
assistant_response = response['message']['content']
else:
assistant_response = ""
return assistant_response
以上是完整的函数代码,直接拉入项目就可以使用,原创内容,来之不易请勿转载!
原创文章,作者:lichen360,如若转载,请注明出处:https://hhpi.cn/634.html