ターミナル開いて、PythonプロンプトからChatGPTを使うことはできた。
次はファイルから呼び出すことをします。
プロジェクトフォルダを作成して、「sample.py」ファイルを新規作成
・OpenAI APIの新しいバージョンでは、レスポンスの内容が choices[0].message.content に格納されるようになっているので、古いAPI用の書き方をしている人(私)は注意。
import openai # openai のインストールに失敗しているとここでエラーが出る
# openAIへAPIリクエストを投げて、レスポンスを返却するクラス
def getOpenAIResponse(question):
openai.api_key="sk-<YOUR API KEY>"# 取得したAPIキーを入力
print(question) # debug
response=openai.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role":"user", "content":question}
],
max_tokens=1000,
)
responsetext=response.choices[0].message.content.replace('\n', '')
print(responsetext) # debug
returnresponsetext
#(確認用)追加コード
question = "これはテストです。何か文書を作って返してください。"
response = getOpenAIResponse(question)
print("--- 以下、Debug出力 ---")
print(response)
ファイルを実行
上記のコードを書いたら、ターミナルで次のように実行。
※注意:以下のコードはファイルがある場所で実行すること(VSCodeなどでターミナル開いたら、自動的にファイルのある場所で開いてくれるので便利)
python3 sample.py
タグを指定して、返却されたコンテンツを囲う
#(確認用)追加コード
question = "これはテストです。何か文書を作って返してください。"
response = getOpenAIResponse(question)
print("--- 以下、Debug出力 ---")
print(response)
上記のコードの箇所に変更を加えていく。
#(確認用)追加コード
# 引数で受け取ったHTMLタグで引数contentsを囲う
def getFormatContents(tag, contents):
returnf"<{tag}>{contents}</{tag}>"
question = "面白そうなブログタイトルを考えてください"
response = getOpenAIResponse(question)
title = getFormatContents("h2", response)
print("--- 以下、Debug出力 ---")
print(title)
これで、返ってきたコンテンツを指定したタグで囲うことができた。
しかしこのままでは複数のタイトルが囲われてしまうので、ここはまだ改善が必要。
⇩実際の出力結果例
面白そうなブログタイトルを考えてください --- 以下、Debug出力 --- <h2>1. "世界一周バックパッカーの冒険記"2. "料理初心者が挑戦!おうちで作れる美味しいレシピ"3. "パートナーとの究極の旅行記"4. "ビジネスマインドを磨く成功者の日記"5. "ぼっち旅行者が贈る、独自の観光スポットガイド"6. "本気で痩せる!健康オタクのダイエット日記"7. "DIY好きが独自の工作術を伝授"8. "読書好きが語る、感動の一冊レビュー"9. "引き寄せて叶える!マインドフルネスな生き方"10. "毎日が楽しくなるポジティブ思考のコツ"</h2>
参考サイト

Python ChatGPTを活用してブログを完全自動化:【記事自動作成、自動投稿】②|Yuu's Memo
この記事は、ChatGPTのAPIをPythonから利用し、「ブログ記事を自動で生成させ、更にWordpressへ自動投稿してしまおう!」というブログの運営者にとって、夢の様なチュートリアルの第二回目です!!
