Azure

Azure OpenAI のChatGPTとPythonでちょっとだけ戯れてみる

はじめに

Azure OpenAI のChatGPT が利用できるようになったので遊んで見ようと思います。

ChatGPT is now available in Azure OpenAI Service - Azure のブログ - Microsoft Azure
ChatGPT is now available in Azure OpenAI Service - Azure のブログ - Microsoft Azure

Today, we are thrilled to announce that ChatGPT is available in preview in Azure OpenAI Service.

azure.microsoft.com

クイックスタートで遊ぶのですがそのままでは動かないので補足

Quickstart - Get started using GPT-35-Turbo and GPT-4 with Azure OpenAI Service - Azure OpenAI Service | Microsoft Learn
Quickstart - Get started using GPT-35-Turbo and GPT-4 with Azure OpenAI Service - Azure OpenAI Service | Microsoft Learn

Walkthrough on how to get started with GPT-35-Turbo and GPT-4 on Azure OpenAI Service.

learn.microsoft.com

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をは少々フォーマットが異なることも注意です。

モデルの操作については下記も参考にしてください。

Azure OpenAI Service の GPT のモデル操作 Chat Completion と ChatML について - 技術的な何か。
Azure OpenAI Service の GPT のモデル操作 Chat Completion と ChatML について - 技術的な何か。

はじめに GPT ででモデルを操作する方法としてChat Completion と ChatMLがあります。これはGPTを利用するアプリケーション開発において方向性を決める重要な箇所となります。 これ

level69.net

変数として入力できるようにしましょう。

#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で遊びました。これはこれで面白いし応用が色々と効きそうです。

-Azure
-