はじめに
Azure OpenAI のChatGPT が利用できるようになったので遊んで見ようと思います。
クイックスタートで遊ぶのですがそのままでは動かないので補足
ChatGPT プレイグラウンドで遊ぶ
これはいたって簡単です
ChatGPTをデプロイしてそのまま利用してます。

pythonで遊ぶ
WSLの環境で行っています。
pip install openai
何かエラーが出る場合にはpip をアップデートしてください。
pip install --upgrade pip
環境変数を定義します。ポータルから確認します。

echo export OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE" >> /etc/environment && source /etc/environment
echo export OPENAI_API_BASE="REPLACE_WITH_YOUR_ENDPOINT_HERE" >> /etc/environment && source /etc/environment
ここでREPLACE_WITH_YOUR_ENDPOINT_HERE はhttpsを含んだ形です。
Pythonコードは以下になります。
ドキュメントと異なります。engine には作成時のデプロイメント名を入力します。モデル名ではありません。
#Note: The openai-python library support for Azure OpenAI is in preview.
import os
import openai
openai.api_type = "azure"
openai.api_base = os.getenv("OPENAI_API_BASE")
openai.api_version = "2022-12-01"
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
engine="ChatGPT",
#engine="gpt-35-turbo",
prompt="<|im_start|>user\nこんにちは\n<|im_end|>\n<|im_start|>assistant",
temperature=1,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
stop=["<|im_end|>"])
print(response['choices'][0]['text'])
「こんにちは」 を入力しています。
これで回答が返ってくると思います。
promptについては下記のようにMessagesに修正した方が良いと思います。
response = openai.Completion.create(
engine="ChatGPT",
messages = [{"role":"user","content":"こんにちは"}],
temperature=1,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
stop=None)
何度か実行すると異なった回答が返ってきます。

本家のOpenAIをは少々フォーマットが異なることも注意です。
モデルの操作については下記も参考にしてください。
変数として入力できるようにしましょう。
#Note: The openai-python library support for Azure OpenAI is in preview.
import sys
import os
import openai
args = sys.argv
openai.api_type = "azure"
openai.api_base = os.getenv("OPENAI_API_BASE")
openai.api_version = "2022-12-01"
openai.api_key = os.getenv("OPENAI_API_KEY")
print("-----あなた-----\n"+args[1])
response = openai.Completion.create(
engine="ChatGPT",
#engine="gpt-35-turbo",
prompt="<|im_start|>user\n" + args[1] + "\n<|im_end|>\n<|im_start|>assistant",
temperature=1,
max_tokens=800,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
stop=["<|im_end|>"])
print("-----ChatGPT-----"+response['choices'][0]['text'])
会話が成り立っているように思えます。

まとめ
Azure OpenAI のChatGPTで遊びました。これはこれで面白いし応用が色々と効きそうです。


