【ChatGPT初学者】OpenAIのAPIでAIチャットボット機能を作ってみた

## はじめに

流行りのAIでラフに開発したいなぁというモチベを抱き早3ヶ月。
「AIってむずかしそう」「開発のレベル高そう」って謎にこじらせていました。
たしかに、やったことないことに挑戦するのはハードルが高いです。
しかし、そういう時こそ「まずは手を動かしてみる」ことでした。（猛省）

今回は、たった10分で多くの人がChatGPTの門戸を叩けるような開発備忘録を残したいと思います。
テーマは「AIチャットボット開発」。
この開発が完了して実行したら、チャットボットにありがちな文章がターミナルで表示されていることです。
写経でも動かせるプログラムなので、ぜひ10分チャレンジに挑戦してみてください。

参考URL：https://udemy.benesse.co.jp/development/system/chatgpt-chatbot.html 

#### 想定読者のレベル
* python初学者
* OpenAI APIでの開発未経験者


#### 開発環境 
* vs code

#### 使用言語
* python (python3)

#### 使用ライブラリ
* OpenAIライブラリ 

## 【OpenAI側】 事前準備 （所要時間：5分）
1. OpenAIのアカウント準備
2. OpenAI利用にあたり支払い先の登録（従量課金性）
3. OpenAIのAPIキー発行

### 1. OpenAIのアカウント準備

まずはOpenAIの住民になるために自身のアカウントを登録しましょう。
公式サイトからアカウント作成できます。
登録URL：https://chat.openai.com/auth/login

![スクリーンショット 2023-07-11 23.10.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/96b724fc-81bd-6da9-d18e-6f78524907c8.png)
「Sign up」をクリック。
メールアドレスだけでなくGoogle、Microsoft、Apple等で登録できます。


### 2. OpenAI利用にあたり支払い先の登録（従量課金性）

前項で登録したアカウントで、OpenAIの公式ページにログインできることを確認しましょう。
ログインURL：https://platform.openai.com/signup

![FireShot Capture 002 - Overview - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/c22950e9-a344-68e0-d0ba-1e4b290ef7c1.png)
こんな画面に遷移します。（きれい）

右上「Personal」▶️「Manage Account」をクリックします。
▶️「Billing」をクリックします。
支払い先を登録しましょう。

![FireShot Capture 009 - Billing overview - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/d9ce005f-8f85-a8ce-aaf1-ec81e0e46d50.png)



【念のため】
従量課金制のリスクを回避するために「Usage limits」で使用制限をかけるなどして工夫しましょう。
![FireShot Capture 010 - Usage limits - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/7d41083b-8f17-58bf-881a-f7c70cbf7843.png)




### 3. OpenAIのAPIキー発行

![スクリーンショット 2023-07-11 23.17.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/b9358aad-a066-d59e-f4e5-620926507682.png)

右上「Personal」▶️「View API keys」をクリックします。

![FireShot Capture 004 - API keys - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/eb183136-df38-5a1c-3735-7386bfbb7605.png)

「Create new secret keys」をクリックします。

![FireShot Capture 006 - API keys - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/51406e78-f28e-89c3-9085-2d0d0de2cba1.png)

自分でわかる名前を付けます。（例：ai chatbot）▶️ 「Create secret key」をクリックします。

![FireShot Capture 008 - API keys - OpenAI API - platform.openai.com.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/0b01b617-37e6-d6d5-e772-e721b8559885.png)

APIキーが発行されました！
あとで設定で使うので、テキストメモなどで残しておいてください。

## 【vs code側】 チャットボットを作ろう （所要時間：5分）
1. ターミナルでOpenaiのライブラリをインストール
2. ファイルを1つ作ってコードを書く
3. ターミナルで実行

### 1. ターミナルでOpenaiのライブラリをインストール
設定が終わったらvs codeを開きます。
ターミナルを開いて以下のコマンド入力します。

```terminal
pip install openai
```
:::note info
pipをインストールしていない場合は、ターミナルで「pip install」を実行してください。
:::

![スクリーンショット 2023-07-11 23.54.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/ce555841-517d-bda6-465e-2b8024b6cb1d.png)
こんな画面が出ます。
「Successfully installed~ 」みたいなのが最後に出てきたらひとまずOKです。

### 2. ファイルを1つ作ってコードを書く

test.pyを作理、以下のコードを書きます。
APIは発行したキーを入れましょう。

```python:test.py
import openai

openai.api_key = "先ほど取得したAPIキーを入力"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "あなたは学校の先生です。"},
        {"role": "user", "content": "おはようございます"},
    ]
)

print(f"ChatGPT: {response['choices'][0]['message']['content']}")
print(response['usage'])

```


### 3. ターミナルで実行

ターミナルで以下のコマンドを入力し実行します。

```terminal
python test.py
```

![スクリーンショット 2023-07-12 0.02.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3067561/a0650543-24f4-f089-ac2c-d6ade87b5dff.png)

ターミナルに先生を呼び出すことに成功しました。やったー！

## おわりに
以上でChatGPTのAI技術を10分で触れることができました。
10分しか触っていないですが、この開発を通して開発アイデアが湧き上がってきました。
留意点などご指摘事項があれば、コメントで教えていただけたら嬉しいです。

🐧