見出し画像

gpt-4oを利用してアーキテクチャ図からCFNテンプレートを生成してみるはじめに

はじめに

株式会社TechoesインフラチームのTです!
今回は、5/13にリリースされたばかりのgpt-4oを使用してAWSのCFNテンプレートを生成する手順を解説していこうと思います。

実行環境

  • Windows: 11 Home

  • Python: 3.11.4

  • モデル: gpt-4o

  • openai: 1.30.1

Chatgpt APIとは

OpenAI社が提供しているChatGPTをPython等のプログラムから呼び出すためのインターフェースです。
Pythonなどのプログラミング言語からAPIを呼び出すことでアプリやサービスにテキストを生成する機能や理解する機能を実装することが可能になります。

料金について

ChatGPT APIは処理するテキスト量によって料金が決まる従量課金制となっています。このテキスト量を計測する単位がトークンです。
トークンは入力トークンと出力トークンの2種類があり「1000トークンあたり、いくら」という料金設定になっています。具体的な費用は使用するGPTモデルによっても変化します。

  • 入力トークン: APIに送るテキスト量

  • 出力トークン: APIから送られてくるテキスト量

[1000トークンあたりのコスト]

事前準備

※Open AIアカウントは発行済みとします。
※請求情報は設定済みとします。
※Python動作環境は構築済みとします。

API Keyの発行

  1. Open AIにログインしたら左のメニューからAPI Keysを選択します。

  2. Create new secret Keyを選択してKey Nameを指定したらsecret keyを発行します。

  3. 発行後、key情報が表示されるのでコピーして控えておく。

※注意※
セキュリティ上の理由で一度key表示の画面を閉じると再度確認ができません。

[Key 作成画面]

openai ライブラリのインストール

pythonからAPIを呼び出すためにopenaiライブラリが必要になるのでインストールします。

テストコードで動作確認

※警告※
API Keyを実際のシステムで使用する際は、セキュリティの観点から環境変数に格納してください。

結果

返答だけでなくトークン使用量も出力してくれました。

本題

動作環境も整ったので実際にAWSアーキテクチャ図を作成してCFNテンプレート化していただきましょう!

流れ

  • gpt-4oへの画像入力はURLまたはbase64形式を使用するので、アップロード処理の前に画像をbase64形式でエンコードします。

  • 命令文を日本語で記述すると英語に比べて消費トークン数が上昇するので英語での問い合わせをする。

  • 処理結果はcfnテンプレートになるのでyaml形式で出力する。


アーキテクチャー図
Pythonコード

結果

  • 生成時間は20秒ほど

  • 総消費トークン : 2321

  • 入力トークン : 787

  • 出力トークン : 1534

  • アーキテクチャ図内のcidrや名称も認識してテンプレート内に反映されている。

  • 画像内に存在していない必要なリソースまで生成している。

  • 作成したリソース一覧の出力をしてる。

  • ユーザーが作成、確認するべきリソースをピックアップしている。

所感

検証前は画像にあるものだけを生成して、大枠だけ作ってくれるくらいの気持ちでいたので正直驚きました。また、今回の検証では超低コストで検証できたのも嬉しいポイントです。ただ、もっと複雑なインフラ構成を生成できるのか、生成できたとしても複雑な分生成するテンプレートファイルも長文になるのでどのくらいのコストで生成できるのかが気になるところです。

参考資料

Pricing | OpenAI

API Reference - OpenAI API

https://chatgpt-lab.com/n/nea590e8f3e87

ChatGPTのAPIをPythonで試してみた #Python - Qiita

この記事が気に入ったらサポートをしてみませんか?