はじめに
文章生成AIとして有名なChatGPTですが、単純に文章を作る以外の活用方法がないかと考え、ユーザーが入力したテキストをもとにHTMLを自動生成するプログラムを作ってみました。
OpenAI APIとは
OpenAI APIは、OpenAIが提供する人工知能のAPIです。
このAPIを使用することで、プログラム内にレベルの高い自然言語処理を組み込むことができます。
OpenAI APIの利用には料金がかかります。料金はAPIの使用量に基づいており、生成されるテキストの量に応じて請求されます。
料金体系の詳細については、OpenAIの公式ウェブサイトや料金ページを参照ください。
openai.com
今回使用するAPIについて
OpenAIからは、画像や音声などに関するものまで複数の種類がありますが、
今回は受け取ったテキストに対するメッセージを返すChat Completionsを使用します。
https://platform.openai.com/docs/guides/text-generation/chat-completions-api
messages配列で会話内容を渡すことで回答を生成させることができます。
messages=[ {"role": "system", "content": "とてもフランクな口調で回答してください"}, {"role": "user", "content": "英語を学びたいのですが、何から勉強すればいいですか?"} ]
roleについて
userは自分のメッセージ、systemはassistantの行動を設定できます。
作ってみる
今回はpythonを使用して、
①ユーザーからの入力を受け付け
②APIを呼び出し、入力されたテキストの解析・コードの生成
③ファイル出力&ブラウザ上で表示
のプログラムを作成します。
ソースコード
import os from openai import OpenAI import codecs import webbrowser # apiキーの設定 client = OpenAI( api_key="APIキー" ) # 引数をのテキストをもとにHTMLを生成して返す def generateHTML(txtInput): chat_completion = client.chat.completions.create( messages=[ { "role": "system", "content": "HTMLを生成してください。UIは、ユーザーが見やすく使いやすいものにしてください。" }, { "role": "user", "content": txtInput } ], model="gpt-3.5-turbo" ) return chat_completion.choices[0].message.content # ユーザーの入力を受け付け txtInput = input(">> ") # HTMLの生成 txtAnswer = generateHTML(txtInput) # 生成されたHTMLをhtmlファイルに出力 txtFileName = "index.html" fileResult = codecs.open(txtFileName, "w","utf-8") fileResult.write(txtAnswer) # 出力したhtmlをブラウザ上で開く webbrowser.open_new_tab(txtFileName) fileResult.close()
最後に
ユーザーからの入力に応じたWebページ生成プログラムを作ってみました。
今回作成したのは非常に簡単な作りのプログラムですが、工夫次第でさらに効果的に活用できる余地がありそうです。