ChatGPTをローカルPCで実行する

ChatGPTをローカルPCで実行

ChatGPTをローカルPCで実行するための手順を以下にまとめる。
これにより、APIキーの取得からPythonでChatGPTを呼び出すまでの流れを網羅できる。


実行の流れ

  1. APIキーの発行方法

  2. チャージ方法と料金について

  3. リクエストの作成方法

  4. Pythonでの呼び出しコードと結果


APIキーの発行方法

ChatGPT(OpenAI)のAPIを利用するためには、まずAPIキーを取得する必要がある。以下の手順でAPIキーを発行する。

手順

  1. OpenAIアカウントの作成
    OpenAI公式サイト(platform.openai.com)にアクセスし、アカウントを作成する。GoogleやMicrosoftアカウントで簡単に登録できる。

  2. APIキーの発行
    アカウント作成後、ダッシュボードにログインし、左側メニューから「API keys」を選択する。

    • Create new secret key」ボタンをクリックし、新しいAPIキーを生成する。

    • 生成されたAPIキーは一度しか表示されないため、必ずコピーして安全な場所に保存する。

  3. APIキーの管理
    APIキーは複数作成可能なので、用途ごとに名前を付けて管理すると便利。APIキーが漏洩すると不正利用される可能性があるため、厳重に管理することが重要。
    (必ず自分だけがわかるような状態にし、原則他人に教えない)
    (また、ハードコーティングも行わないこと)


※APIキーとは、API(アプリケーションプログラミングインターフェース)へのアクセスを認証するための一意な識別子である。APIキーは、特定のアプリケーションやサービスがAPIを利用できるようにし、認証やアクセス制御、課金のために使用される

※ハードコーディングとは、プログラムのソースコード内に固定値や設定値を直接書き込むことを指す。通常、これらの値は外部の設定ファイルやデータベースから取得するべきだが、ハードコーディングではそれらをコード内に埋め込んでしまう。


チャージ方法と料金について

OpenAI APIは無料クレジットが提供されるが、一定量を超えると有料になる。以下の手順でチャージ方法を説明する。

手順

  1. 支払い情報の登録
    ダッシュボードから「Settings」→「Billing」に移動し、「Payment methods」でクレジットカード情報を登録する。

  2. チャージ方法
    「Billing」ページで「Add to credit balance」ボタンをクリックし、希望する金額(最低$5)をチャージする。これで利用可能なクレジットが追加される。

  3. 自動チャージ設定(任意)
    残高が一定金額以下になった時に自動的にチャージする設定も可能。「Enable auto recharge」をオンにして設定する。

※チャージ後、実際に使用できるまでには5分ほどかかる


リクエストの作成方法

PythonなどのプログラムからChatGPT APIを呼び出す際には、リクエストフォーマットが重要になる。以下は基本的なリクエスト構造とその出力。

コード(Powershell)

PS C:\Users> curl https://api.openai.com/v1/chat/completions `
>>   -Method POST `
>>   -Headers @{
>>     "Content-Type" = "application/json"
>>     "Authorization" = "Bearer $env:OPENAI_API_KEY"
>>   } `
>>   -Body '{
>>     "model": "gpt-4o-mini",
>>     "messages": [{"role": "user", "content": "Say this is a test!"}],
>>     "temperature": 0.7
>>   }'

必要な修正(Powershellの場合、環境変数を設定する)

PS C:\Users> $env:OPENAI_API_KEY = "your-api-key"


出力

StatusCode        : 200
StatusDescription : OK
Content           : {
                      "id": "chatcmpl-id",
                      "object": "chat.completion",
                      "created": 1111111111,
                      "model": "gpt-4o-mini-2024-DD-MM",
                      "choices": [
                        {
                          "index": 0,
                          "message":...
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    access-control-expose-headers: X-Request-ID
                    openai-organization: user-wktkph8zaafncqgqvt0vmr7w
                    openai-processing-ms: 322
                    openai-version: 2020-10-01
                    x-ratel...
Forms             : {}
Headers           : {[Connection, keep-alive], [access-control-expose-headers, X-Request-ID], [openai
                    -organization, user-wktkph8zaafncqgqvt0vmr7w], [openai-processing-ms, 322]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : System.__ComObject
RawContentLength  : 796



Pythonでの呼び出しコード

Python用パッケージをインストール

pip install openai

Pythonコード例(ファイル名は任意、~.py)

import openai

# OpenAI APIキーを設定(例として 'your-api-key' を使用)
openai.api_key = 'your-api-key'

# チャット履歴(システムメッセージとユーザーメッセージ)
messages = [
    {"role": "system", "content": "You are a helpful assistant."}
]

# 無限ループでチャットを続ける
while True:
    # ユーザーからメッセージ入力
    user_input = input("User: ")

    # 終了コマンド
    if user_input.lower() == 'exit':
        print("Chat ended.")
        break

    # ユーザーメッセージを追加
    messages.append({"role": "user", "content": user_input})

    # ChatCompletionのインスタンスを作成
    chat_completion = openai.ChatCompletion()

    # ChatGPT APIへのリクエスト
    response = chat_completion.create(
        model="gpt-3.5-turbo",  # GPTモデル(最新モデルも利用可能)
        messages=messages
    )

    # AIからの応答メッセージを取得
    reply = response['choices'][0]['message']['content']
    
    # 応答メッセージを表示
    print(f"ChatGPT: {reply}")

    # 応答メッセージも履歴に追加
    messages.append({"role": "assistant", "content": reply})

必要な修正

APIキー: 実際のAPIキーを削除し、'your-api-key' というプレースホルダーに置き換えた。実際に使用する際には、OpenAIのダッシュボードで発行されたAPIキーをここに設定する必要がある。
別ファイルから呼び出すなどの州を加えること。


出力

PS C:\Users> python gpt_app.py
User: おはよう
ChatGPT: おはようございます!良い1日をお過ごしください。何かお手伝いできることがあればお知らせくださいね。
User: Pythonについて教えて
ChatGPT: Pythonは、汎用プログラミング言語の1つであり、シンプルで読みやすいコードを書くことができることが特徴です。Pythonは、データ処理、ウェブ開発、機械学習、人工知能などさまざまな分野で広く利用されており、初心者から上級者まで幅広いプログラマーに支持されています。

Pythonの特徴としては、インデントによるブロック構造や豊富な標準ライブラリ、さまざまなサードパーティーライブラリのサポートなどが挙げられます。また、初学者にも取っ付きやすいため、プログラミングの入門言語としてもおすすめです。

Pythonの基本的な構文やデータ型、制御構造、関数定義などの基礎から応用まで幅広く学ぶことができます。Pythonに関する具体的な質問や情報を提供したいテーマがあればお知らせください!
User: exit
Chat ended.
PS C:\Users\takky\OneDrive\デスクトップ\code_work\chatgpt> 

いいなと思ったら応援しよう!

Ken @ インフラエンジニア
よろしければサポートお願いします!よりいい情報を発信します。