统计
  • 文章总数:861 篇
  • 评论总数:1353 条
  • 分类总数:2 个
  • 最后更新:昨天 15:02
原创技术知识

python调用openai接口有时候会报错,如何重复请求!

本文阅读 3 分钟
首页 技术知识 正文

我们经常使用python访问openai接口的时候偶尔会出现链接不稳定报错,或者是其他情况报错,然后重复运行代码又是正确的。这时候如何设置错误过后重复请求?下面就给大家附上完整的代码!16原创内容,禁止转载!
2023-12-10T05:22:33.png

这里是正常调用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,如若转载,请注明出处:http://hhpi.cn/634.html
简约风好看的个人主页源码
« 上一篇 12-10
星域社区原版源码,今年最美社区源码。
下一篇 » 12-11

发表评论

发表评论

作者信息

动态快讯

    请配置好页面缩略名选项

热门文章

标签TAG

没有任何标签

热评文章