• 一日一技:Python如何同时调用多个GPT的API?


    相信很多同学或多或少都在Python中使用过GPT API,通过Python安装openai库,来调用GPT模型。

    OpenAI官方文档中给出了一个示例,如下图所示:

    OpenAI API 测试

    图片

    如果你只有一个API账号,那么你可能不觉得这样写有什么问题。但如果你想同时使用两个账号怎么办?

    有些同学可能知道,微软的Azure也提供GPT接口,在Python中也需要通过openai库来调用,它的调用示例为:

    图片

    当你全局设置了openai.api_type = 'azure'以后,你怎么同时使用OpenAI的GPT接口?

    这两个文档中给出的示例写法,都是全局写法,一但设定以后,在整个运行时中,所有调用GPT接口的地方,都会使用这里设置的参数:

    1. import openai
    2. openai.xx = yy

    有些同学不知道怎么在Python SDK中同时使用多个账号,于是他们只有使用GPT的Rest HTTP接口,自己封装一个函数来发起请求从而切换不同的账号。放弃了Python SDK提供的各种便利。

    但实际上,根本没有那么麻烦。在openai模块里面,天然就可以切换多个账号。虽然文档里面没有写,但是我们可以通过函数签名来找到这种方法。

    如下图所示,在PyCharm中,随便写一段调用openai模块的代码,然后Windows按下键盘的Ctrl,MacOS按下键盘的Command,并鼠标左键点击create函数:

    图片

    跳转到的函数里面,还有一个create函数,继续按上面的方法跳入,如下图所示:

    图片

    接下来,你就会看到这个create函数能够接受的参数里面,包含了几个很熟悉的名字:

    图片

    也就是说,当你想同时调用多个账号时,不需要在一开始给openai设置对应的参数,你只需要在调用.create函数的时候,把对应的API参数传入就可以了。示例代码如下:

    1. import openai
    2. # 使用OpenAI账号1
    3. response1 = openai.ChatCompletion.create(  
    4.             engine="chatgpt",  
    5.             messages=messages,  
    6.             temperature=0.9,  
    7.             max_tokens=800,  
    8.             top_p=0.95,  
    9.             frequency_penalty=0,  
    10.             presence_penalty=0,  
    11.             api_key='xxxxxxxx',  # 在这里传入API Key
    12.             stop=["<|im_end|>"])
    13. # 使用OpenAI账号2
    14. response2 = openai.ChatCompletion.create(  
    15.             engine="chatgpt16k",  
    16.             messages=messages,  
    17.             temperature=0.9,  
    18.             max_tokens=800,  
    19.             top_p=0.95,  
    20.             frequency_penalty=0,  
    21.             presence_penalty=0,  
    22.             api_key='yyyyyyyyy',   # 在这里传入API Key
    23.             stop=["<|im_end|>"])
    24. # 使用Azure OpenAI 账号
    25. response3 = openai.ChatCompletion.create(  
    26.             engine="gpt4",  
    27.             messages=messages,  
    28.             temperature=0.9,  
    29.             max_tokens=800,  
    30.             top_p=0.95,  
    31.             frequency_penalty=0,  
    32.             presence_penalty=0,  
    33.             api_key='zzzzzzz',   # 在这里传入API Key
    34.             api_base='https://xxx.openai.azure.com/',  
    35.             api_type="azure",  
    36.             api_version='2023-05-15',  
    37.             stop=["<|im_end|>"])

    使用这种方法,我们就可以在一个程序里面同时使用多个GPT账号了。

  • 相关阅读:
    数据结构初阶 —— 二叉树链式结构
    集成算法——随机森林(Random Forest)
    YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.77】引入百度最新提出RT-DETR模型中AIFI模块
    全局异常拦截和Spring Security认证异常的拦截的顺序
    一个程序员的成长之路
    OpenCV(四十二):Harris角点检测
    Java项目:基于Springboot+vue实现的付费自习室系统设计与实现(源码+数据库+毕业论文)附含微信小程序端代码
    faker.js 创建者希望 GitHub 恢复他的权利;微软公布 VS Code 2022 年路线图;Java 18 的新特性 | 开源日报
    (60)矩阵中的局部最大值
    MySQL的下载、安装、配置
  • 原文地址:https://blog.csdn.net/Jernnifer_mao/article/details/132689021