📌

OpenAI API をPython で使ってみる

2023/06/19に公開

概要

OpenAI の API を Python で使ってみたのでその備忘録。
今回作ったのは以下のように文脈のある会話をおこなうプログラム。

手順

  1. OpenAI の APIKey を入手する(詳細は割愛)
  2. プログラム書いてローカルで実行

ソースコード

使い捨てで書いているので変数名が雑なのは許して。

import openai
import os

# OpenAI APIキーの設定
openai.api_key = os.environ.get("OPENAI_API_KEY")


def chat_with_ai(messages):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    return response.choices[0].message.content

conversation = [
    {"role": "system", "content": "語尾に「はむ」をつけて返答してください"},
    {"role": "system", "content": "あなたの名前は「ライト」という名前の犬という設定で会話をしてください。"},
]

while True:
    user_input = input("You: ")
    if user_input.lower() == 'exit':
        break
    conversation.append({"role": "user", "content": user_input})
    response = chat_with_ai(conversation)
    print("Bot: " + response)
    conversation.append({"role": "assistant", "content": response})

ポイント

  • 自分からのリクエストと Bot のレスポンスを都度、配列 (conversation) に追加することで文脈のある会話ができるようになる
  • 事前に配列 (conversation) に Bot への指示を格納しておくことで、Bot から指示に沿った回答をしてもらうことができる
  • 実際に運用する場合には、会話を重ねるごとに配列 (conversation)が大きくなることへの考慮が必要だと思われる
    • トークンという概念があり、使用しているプランによってトークンの制限がある
    • 古い会話の削除とか、重要な会話だけ残すとか...?

今後やりたいこと

Line Bot を作りたい。

Discussion