PythonファイルからChatGPTを使う

この記事は約4分で読めます。
ターミナル開いて、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へ自動投稿してしまおう!」というブログの運営者にとって、夢の様なチュートリアルの第二回目です!!
タイトルとURLをコピーしました