活用無限大！ChatGPT APIの機能と使い方

## はじめに
2023年はAI元年と言われ、今年以来、ChatGPTをはじめ、さまざまな大規模言語モデルは全世界を席巻しています。日常的にはChatGPTを使って、効率性を向上する事ができますが、開発者や事業者にとって、ChatGPT APIを導入して、自社のサービスの機能を拡張しようと思っています。それでは、ChatGPT APIとは何ですか？ChatGPT APIができることは何ですか？このような問題を解明するために、本文では、ChatGPT APIの基本情報、料金体系、利用方法などを完全に解説します。

:::note info
もし、APIやアプリケーションを開発しており、強力なAPIツールとのシームレスな統合が必要であれば、ぜひ無料でApidogをお試しください！[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)は、洗練されたユーザーインターフェースの構築に集中しながら、APIのスムーズな連携を実現するための理想的なツールです。
:::

## そもそもChatGPT APIとは？
ChatGPT APIは、OpenAI APIとも呼ばれ、OpenAIが提供するプログラムのAPI（Application Programming Interface）になります。開発者がChatGPTを通じて、ChatGPTを独自のアプリケーション、プロダクト、サービスに統合するためのインターフェースです。ChatGPTは、自然な対話を行うために設計されたAIモデルであり、ユーザーからのテキスト入力に対してテキストベースの回答を生成します。

![chtgpt-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/74eefe70-4269-0590-7665-a88a049894e9.jpeg)

### ChatGPT APIとChatGPTの違い
それでは、ChatGPT APIとは何かを深く理解するために、次は、開発者が使用するChatGPT APIと一般ユーザーが日常的に利用するChatGPTサービスとの違いを解説しようと思います。

ChatGPT APIとChatGPTとの違いといえば、主に次のような4つの方面から分析する事ができます。

#### インタフェース
ChatGPTサービスは、OpenAIのWebサイトで提供される対話型のユーザーインターフェースとして、ユーザーはブラウザを通じてテキストベースの質問を入力し、ChatGPTがテキストベースの回答を生成します。その一方で、 ChatGPT APIは、開発者向けのプログラムインターフェースです。開発者は自分のアプリケーションやサービスに統合できます。ユーザーがアプリケーションを通じてChatGPTを利用できるようになります。

#### 統合性
一般のユーザーがOpenAIのWebサイトを訪れて利用できるため、ChatGPTサービスを簡単にアクセスできますが、ChatGPT APIを利用するには、開発者がアプリケーションやプロダクトに統合する必要があります。統合にはプログラムミングスキルが必要で、開発者向けのAPIキーが必要です。

#### カスタマイズ性
一般のユーザー向けに提供されるため、ChatGPTサービス自身のカスタマイズや制御の程度は限定的です。開発者はChatGPT APIを使用して、対話の流れや挙動をより詳細にカスタマイズおよび制御できます。開発者は、自分のアプリケーションの要件に合わせてChatGPTの応答を調整できます。

#### 使用料金
ChatGPTサービスは、一般のユーザーには**基本無料**で提供されたり、有料のプランが提供されたりしているのに対して、ChatGPT APIの使用には料金がかかり、利用状況に従う従量課金性になっています。

## ChatGPTができることは？
ChatGPT APIは、自然言語処理に関連するさまざまなタスクやアプリケーションの開発に利用されています。ChatGPT APIを使用すると、自然言語処理タスクを実行し、対話型のAIアプリケーションを構築できます。ChatGPT APIができることといえば、主に次ようなことを実現できます。

### 対話型システムの構築
ChatGPT APIを使用して、ユーザーとの対話を可能にするカスタムチャットボットや仮想アシスタントを作成できます。ユーザーの質問に回答したり、タスクを実行したりするために利用できます。

### カスタマーサポート
ChatGPT APIを使用して、ウェブサイトやアプリケーション内でカスタマーサポートボットを提供できます。ユーザーからの質問や問題に対応し、自動応答を提供します。

### 質問応答システム
ChatGPT APIを用いて、テキストデータの質問応答システムを構築できます。ユーザーが質問を入力し、ChatGPTが詳細な回答を生成します。

### コンテンツ生成
ChatGPT APIを活用して、ブログ記事、ニュース記事、レビュー、プロダクトの説明文などのコンテンツを自動生成するアプリケーションを開発できます。

### 自動要約
長いテキスト文書や記事を要約するためにChatGPT APIを使用できます。大量のテキストデータから要約を生成するアプリケーションを構築できます。

### 言語翻訳
ChatGPT APIを利用して、テキストの翻訳サービスを提供できます。ユーザーが入力したテキストを他の言語に翻訳する機能を提供します。

### エンターテインメント
ゲーム内のキャラクターやストーリーテリングの一部としてChatGPT APIを組み込んで、プレイヤーとの対話を楽しむゲームを開発できます。

### カスタマイズ
ChatGPT APIを使用して、対話のスタイルや挙動をカスタマイズし、特定のアプリケーションやブランドに合わせた独自の対話エクスペリエンスを提供できます。

## ChatGPT APIの活用事例
上記の内容から、ChatGPT APIはどのようなことを実現する事ができるかを理解した上、次は、ChatGPT APIを導入してサービスの機能を拡張したり、業務プロセスの自動化を実現したりする活用事例を皆さんに紹介します。実際には、OpenAIの公式サイトでも、ChatGPT APIの活用事例をたくさん掲載されていますので、より詳しく知りたい方は、公式サイトにアクセスする事ができます。

関連情報：[OpenAI APIのカスタマーストーリー](https://openai.com/customer-stories)

### モルガン・スタンレーとChatGPT API
モルガン・スタンレーは、アメリカの大手金融グループです。投資銀行、証券、資産運用など、グローバルに幅広い金融サービスを提供しています。同社は世界最大級の総合金融サービス企業の一つであり、資産運用部門では世界有数の規模を誇っています。個人向けウェルスマネジメント(資産運用)サービスも手掛けており、富裕層向けビジネスが強みの一つです。

![morgan-stanley-chatgpt-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/b196359f-7034-1f11-e56e-1f18b2c9e573.png)

モルガン・スタンレーは、GPTの埋め込みと検索機能を活用することを探索し始めました。最初はGPT-3、そして現在はGPT-4を使って、**社内のチャットボット**を動作させることで、資産管理のコンテンツを包括的に検索し、モルガン・スタンレーが長年蓄積された資産管理の知識を解き放つ事ができたと言われています。GPT-4は、すべての洞察を使いやすく実行可能なフォーマットに変換する能力を備えているとも言われています。

### StripeとChatGPT API
Stripeは、アメリカのフィンテック企業で、オンライン決済サービスを提供しています。クレジットカード決済などの決済処理を簡単にウェブサイトやアプリに実装できるAPIを中心に展開しています。

![stripe-chatgpt-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/14a033eb-b25e-a3fa-864a-046a7b4bc131.png)

StripeはChatGPT APIを通じて、ChatGPTの能力が幅広く業務中に利用されています。例えば、ChatGPTはStripeのドキュメンテーションを理解した上、カスタマーサポートのアシスタントとして機能できます。ChatGPTは、お客様の技術問題に直ちに回答して、問題解決において役割を果たす事ができます。

### NotionとChatGPT API
今年、Notionが新リリースした人工知能ツールであるNotion AIは、全世界で大ヒットしています。Notion AIを使って、高品質で自然な文章を生成する事ができるので、業務の効率化や生産性向上を実現できると言われています。

実際には、Notion AIのシステムの基盤として、ChatGPT APIの「**GPT-3**」という大規模言語モデルに基づいて開発されてきたツールです。

## ChatGPT APIの料金体制
ChatGPT APIの料金体制といえば、利用する言語モデルによってずいぶん違っています。現在、利用可能なChatGPTが推奨されている言語モデルには、GPT-4、GPT-3.5 Turbo、Fine-tuning models、Embedding models、Base models、Image models、Audio modelsといった7つがあります。各モデルには、サブモデルも分けられています。それぞれの料金体制も違っていますし、出力と入力に利用されるトークンの利用料金も違っています。

例えば、GPT4の8K contextモデルの入力に利用される場合、1000個トークンにつき0.03米ドルの料金が発生し、同じモデルの出力に使用されるトークンは、1000個につき、0.06米ドルの料金が発生します。

すべてのモデルの使用料金を知りたい場合、ChatGPT APIの公式サイトにアクセスして、[OpenAI APIの料金表](https://openai.com/pricing)を確認する事がおすすめです。

![gpt4-vs-gpt3.5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/09ad88d7-2e3b-3dac-a77e-2fac12140723.png)

### ChatGPT API料金の注意事項
以上のChatGPT API料金体制を確認した上、いくつかの注意実行があります。

- ChatGPT API料金は1000トークンを単位に発生します。入力するメッセージもレスポンスのメッセージもトークンを消費することがあります
- 日本語は英語より消費するトークン数が多くなります。英語の場合は、通常1つの単語は1つのトークンを消費していますが、日本語の場合、1つの仮名は1トークン強、1つの漢字は２トークンを消費しています。そこで、トークン数を節約するために、英語に変換して質問をするか、質問をなるべく簡潔にする必要があるのでしょう

## ChatGPT APIの利用方法
それでは、ChatGPT APIについて詳しく知った上、ChatGPT APIの利用を開始するには、どうしたらいいですか？次は、誰でも利用できるように、ChatGPT APIの利用方法を詳しく説明していきたいと思います。

### OpenAIアカウントに登録
ChatGPT APIの利用を開始するために、まずはOpenAIのアカウントを開設する必要があります。[OpenAIの公式サイト](https://openai.com/)にアクセスして、右上隅にある「**Get Started**」ボタンをクリックして、アカウントを開設する事ができます。

![sign-up-openai-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/77b874f9-575f-0ff0-d74c-bef606c40dff.png)

### ChatGPT APIキーの取得
OpenAIのアカウントを開設すると、ChatGPT APIの利用要件の1つとされている認証用のAPIキーを取得する必要があります。次のステップを参照して、ChatGPT APIのAPIキーを取得できます。

**ステップ⒈** OpenAIの [API Keysページ](https://platform.openai.com/account/api-keys) にアクセスして、自分のアカウントでログインします。（アカウントが無ければ新規登録）

**ステップ⒉** 「**Create new secret key**」ボタンをクリックして、新しいAPIキーを生成します。

![openai-api-key-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/a903fbf8-3270-8cf6-85ee-c78cbfca6cee.png)

APIキーを生成すると、APIキーはすぐ画面に表示されます。当該APIキーは再度と表示する事ができないので、APIキーを記録して別の保存に保管する事がお勧めです。

### ChatGPT APIの呼び出す
上記の事前準備が揃った場合、ChatGPT APIを利用し始める事ができます。ChatGPT APIを呼び出すには、Python、Rubyなどのフレームワークを利用したり、APIクライアントを利用したりするなど、たくさんの方法がありますが、ここで使いやすいAPI管理ツールの[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)を使って、コードなしでChatGPT APIを呼び出す方法を紹介します。

**ステップ⒈** Apidogを開き、新しいリクエストの画面で、ChatGPTの仕様書に従って、HTTPメソッドとエンドポイントURLを入力した上、「**Body**」タブでChatGPTに送信したいメッセージをJSONフォーマットで記述します。

![chatgpt-api-call-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/4bd9fe8d-97dc-81f5-4637-3affcbd833d7.png)

**ステップ⒉**「**Header**」タブに切り替え、ChatGPT APIの認証を通すために、Authorizationパラメータを追加して、取得したChatGPT APIのAPIキーを入力して、「**送信**」ボタンをクリックします。

![chatgpt-api-call-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/145bd117-faa5-2098-bf69-5a07e2c7cc0f.png)

**ご案内**：Apidogでは、ChatGPT APIのAPIキーを **環境変数** として保存することもできます。ChatGPT APIのAPIキーを環境変数として保存すると、後でAPIキーを再利用する場合でも環境変数を直接に参照することができるので、APIキーを何度も再入力する必要がなくなるので、便利です。

![chatgpt-api-call-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/8c1097f3-f3be-5e6d-f6ec-8b456bc4b548.png)

### ChatGPT APIからのレスポンスを確認
上記のステップを参照して、ChatGPT APIにリクエストを送信すると、ChatGPT APIからレスポンスを取得することができます。

**レスポンスの例**

```
{
  "id": "chatcmpl-814nvC1LN7da7fuiwEf2a7I1WSSXo",
  "object": "chat.completion",
  "created": 1695267487,
  "model": "gpt-3.5-turbo-0613",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "こんにちは！ChatGPTはOpenAIが開発した自然言語処理（NLP）モデルです。GPTは「Generative Pretrained Transformer」の略で、大量のテキストデータを学習して言語生成のタスクを行うことができます。ChatGPTは、人間のように対話を行うことができるように調整されたバージョンです。ユーザーが入力した文脈に基づいて応答を生成することが可能です。ChatGPTは多くの異なる目的で使用できますが、是正が難しい誤った情報を提供する可能性があるため、利用時には注意が必要です。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 17,
    "completion_tokens": 204,
    "total_tokens": 221
  }
}
```

上記は、ChatGPT APIからのレスポンスの例になります。`content` 部分は、ChatGPTがリクエストに対する回答内容になります。`usage`部分では、リクエストとレスポンスに消費したトークンを別々に計算され、今回のやり取りに消費した合計のトークン数も表示されています。

http://apidog.com/jp/blog/debug-openai-api-online/

## ChatGPT API連携、Apidogを使用するのが便利
Apidogを使用してChatGPT APIに連携することを簡単に実現することができます。次は、ChatGPT [API連携](http://apidog.com/jp/blog/api-alignment-introduction/)を実現するために、Apidogをどのように使用するかを解説していきたいと思います。


### サーバー送信イベント（SSE）が利用可能
Apidogは、サーバー送信イベントに対応できるAPIクライアントです。Apidogを使うことで、非常に直感的な操作で、サーバー送信イベントを実装する事ができるのでChatGPT APIレスポンスをストリーミングすることができます。

![sse-effect-10.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/1b1d111a-c023-12e2-f6fc-1eeb07dfd14c.gif)
出典：https://zenn.dev/chot/articles/a089c203adad74

http://apidog.com/jp/blog/server-sent-events-chatgpt-api-stream/

### ChatGPT APIプロジェクトを直接に利用可能
Apidogには、API Hubというサービスが利用できます。[API Hub](https://apidog.com/apihub/)は利用可能なサードパーティのAPIをまとめるWebサイトです。このサイトでは、なんと1800個強のAPIが掲載されています。ChatGPT APIを利用する必要がある場合、ここで直接に利用することができますし、１クリックだけでApidogにクローンして利用することもできます。

![chatgpt-api-clone-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/983dc674-ab77-bbbb-89dc-513dded166fd.png)

### ChatGPT APIエンドポイントのテストが快適
ChatGPT APIの各エンドピントが正確に動作できることを確保するために、ChatGPT APIエンドポイントのテストを行う必要があります。ChatGPT APIをApidogに複製すると、Apidogですべてのエンドポイントを簡単にテストすることができます。

![chatgpt-api-call-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/06499c4f-e07d-178d-89c4-6ca8b5d3f0d5.png)

### ChatGPT API連携後、API自動テストで業務プロセス検証を
また、ChatGPT API連携を行なって、業務プロセスに統合した場合で、Apidogの自動テスト機能を使って、業務プロセスに従って、テストシナリオを作成することで、業務プロセスにピッタリするAPIの自動テストを簡単に行うこともできます。

![single-test-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/795c17be-76d8-04a9-e5fe-699a9b011daf.png)

## 終わりに

**最後まで読んでくださり、ありがとうございました！
この記事を読んで少しでも理解を深めていただければ幸いです！**