OpenAIのresponses APIを使う

2025年3月、OpenAIは新しい responses APIを公開した。これを使うためのPythonのコード例:

import os
from openai import OpenAI

class Chatbot:
    def __init__(self, model="gpt-4.1", instructions=None,
                 previous_response_id=None, temperature=0):
        # model: "chatgpt-4o-latest" "gpt-4.1" "o3" etc
        self.client = OpenAI()
        self.model = model
        self.instructions = instructions
        self.response_id = previous_response_id
        self.temperature = temperature
        self.response = None

    def get_response():
        return self.response

    def chat(self, prompt, max_output_tokens=None):
        args = {
            "model": self.model,
            "input": prompt.strip()
        }
        if self.instructions:
            args["instructions"] = self.instructions
        if self.response_id:
            args["previous_response_id"] = self.response_id
        if max_output_tokens:
            args["max_output_tokens"] = max_output_tokens
        if self.model[0] == "o":
            args["reasoning"] = {
                "effort": "high", # high/medium/low
                "summary": "detailed"
            }
        else:
            args["temperature"] = self.temperature
        self.response = self.client.responses.create(**args)
        self.response_id = self.response.id
        print(self.response_id)
        print(self.response.output_text)

chatbot = Chatbot()
chatbot.chat(r'''
ここに質問を書く
''')