多くの学生は多かれ少なかれ Python で GPT API を使用し、openai
GPT モデルを呼び出すために Python 経由でライブラリをインストールしたことがあると思います。
次の図に示すように、OpenAI の公式ドキュメントに例が記載されています。
API アカウントが 1 つしかない場合は、この方法で記述しても問題はないかもしれません。しかし、同時に 2 つのアカウントを使用したい場合はどうすればよいでしょうか?
一部の学生は、Microsoft Azure にも GPT インターフェイスが提供されていることを知っているかもしれませんが、これも Python のライブラリを通じて呼び出す必要がありますopenai
。その呼び出し例は次のとおりです。
グローバルに設定した後openai.api_type = 'azure'
、OpenAI の GPT インターフェイスを同時に使用するにはどうすればよいですか?
これら 2 つのドキュメントに示されている書き込みメソッドの例はすべてグローバルな書き込みメソッドです。一度設定すると、ここで設定したパラメーターは、実行時間全体で GPT インターフェイスが呼び出されるすべての場所で使用されます。
import openai
openai.xx = yy
一部の学生は、Python SDK で同時に複数のアカウントを使用する方法を知らないため、GPT の Rest HTTP インターフェイスのみを使用して、異なるアカウント間で切り替えるリクエストを開始する関数をカプセル化します。Python SDK が提供する便利な機能をすべて放棄します。
しかし実際には、それほど難しいことではありません。openai
モジュール内では、複数のアカウントを切り替えるのが自然です。ドキュメントには書かれていませんが、関数のシグネチャからこのメソッドを見つけることができます。
以下の図に示すように、PyCharm では、openai
モジュールを呼び出すコードを記述するだけで、Windows ではキーボードの Ctrl キーを押し、MacOS ではキーボードの Command キーを押して、create
マウスの左ボタンで関数をクリックします。
ジャンプ関数には、create
次の図に示すように、上記の方法に従ってジャンプし続ける別の関数があります。
create
次に、この関数が受け入れることができるパラメータには、いくつかのよく知られた名前が含まれていることがわかります。
つまり、複数のアカウントを同時に呼び出したい場合、最初に openai に対応するパラメータを設定する必要はなく、関数を呼び出すときに対応する API パラメータを渡すだけで済みます.create
。サンプルコードは次のとおりです。
import openai
# 使用OpenAI账号1
response1 = openai.ChatCompletion.create(
engine="chatgpt",
messages=messages,
temperature=0.9,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
api_key='xxxxxxxx', # 在这里传入API Key
stop=["<|im_end|>"])
# 使用OpenAI账号2
response2 = openai.ChatCompletion.create(
engine="chatgpt16k",
messages=messages,
temperature=0.9,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
api_key='yyyyyyyyy', # 在这里传入API Key
stop=["<|im_end|>"])
# 使用Azure OpenAI 账号
response3 = openai.ChatCompletion.create(
engine="gpt4",
messages=messages,
temperature=0.9,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
api_key='zzzzzzz', # 在这里传入API Key
api_base='https://xxx.openai.azure.com/',
api_type="azure",
api_version='2023-05-15',
stop=["<|im_end|>"])
この方法を使用すると、1 つのプログラムで複数の GPT アカウントを同時に使用できます。