6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Jupyter Notebook上でもChatGPTを使う方法、コードと会話が融合する新次元の開発!

Posted at

Jupyter Notebookでの作業が一息ついたところで、ふと疑問が浮かんだことはありませんか?「このJupyter Notebook上で、いつもお世話になっているあのChatGPTを使えたら最高なのに」と。しかし、GPT-4は使えるものの、まるで悪戯にもChatGPTは使えないように思えます。しかし、今日はその壁を越える方法をご紹介します。コードは若干地味なものになりますが、最後まで見届けていただければJupyter Notebook上でChatGPTを使うことが出来ます。

必要なモジュールのインストール

まずは、Azure OpenAI ServiceとJupyter Notebookを連携させるために必要なライブラリをインストールし、インポートしましょう。
!pip install openai

Azure APIキーの設定

ChatGPTを利用するためには、Azure APIキーが必要です。環境変数に設定し、安全に利用できるようにしましょう。

環境変数に設定をする前提ですが、ここでは .env ファイルを作成する方法で紹介します。各環境に合わせてjupyter notebookを実行するディレクトリに .env ファイルを作成します。

Azure OpenAI Serviceの場合

OPENAI_API_BASE=[YOUR RESOURCE NAME]
OPENAI_API_KEY=****************

OpenAIの場合

OPENAI_API_KEY=sk-*************************

ライブラリのインポートと認証

必要なライブラリをインポートし、Azure OpenAI Serviceへの認証を行います。

Azure OpenAI Serviceの場合

import os
import openai
from dotenv import load_dotenv
OPENAI_API_BASE = os.getenv("OPENAI_API_BASE")
openai.api_type = "azure"
openai.api_base = f"https://{OPENAI_API_BASE}.openai.azure.com/"
openai.api_version = "2023-03-15-preview"
openai.api_key = os.environ['AZURE_OPENAI_KEY']

OpenAIの場合

import os
import openai
from dotenv import load_dotenv

openai.api_key = os.environ['AZURE_OPENAI_KEY']

ChatGPT関数の定義

Jupyter Notebook上でChatGPTとやりとりするための関数を定義します。これにより、簡単なプロンプト入力でChatGPTとの対話が可能になります。

Azure OpenAI Serviceの場合

# 出力用
from IPython.display import display, Markdown

def chat(messages):
    response = openai.ChatCompletion.create(
        engine="Azure OpenAI StudioでDeployしたDeploy Name",
        messages=messages
    )
    return response["choices"][0]["message"]["content"]
# 会話履歴を初期化
conversation_history = [
    {"role": "system", "content": "You are a helpful assistant."}
]

OpenAIの場合

# 出力用
from IPython.display import display, Markdown

def chat(messages):
    response = openai.ChatCompletion.create(
        model="gpt-4",
        engine="gpt-4",
        messages=messages
    )
    return response["choices"][0]["message"]["content"]

# 会話履歴を初期化
conversation_history = [
    {"role": "system", "content": "You are a helpful assistant."}
]

ChatGPTっぽい使い方

上記まで行えば、準備は完了です。あとは、ノードブック内で以下を繰り返し実行するだけです。このブロックを複数作ることで、会話として繰り返しすることも可能です。
message = "ここにChatGPTに投げる質問を入力"
conversation_history.append({"role": "user", "content": message})
response = chat(conversation_history)
display(Markdown(response))
conversation_history.append({"role": "assistant", "content": response})

実行すると以下のように displayがMarkdownを綺麗に出力してくれます。

まとめ

これで、あなたもJupyter Notebook上でもChatGPTと仲良くなる準備が整いました。Azure OpenAI Serviceを利用して、Jupyter Notebook上でChatGPTの力を引き出す方法をご紹介しました。これで、手持ちのデータやプロジェクトにChatGPTの知恵を取り入れることができます。さあ、コードと一緒に、ChatGPTとのアドベンチャーに出かけましょう!
6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?