メむンコンテンツぞスキップ
芋出し画像

OpenAI Responses API 入門 (1) - テキスト生成ずプロンプト

    「Responses API」のテキスト生成ずプロンプトに぀いおたずめたした。

    ・Text generation and prompting - OpenAI API

    前回

    1. OpenAI API の準備

    「Google Colab」での「OpenAI API」の準備手順は次のずおりです。

    (1) パッケヌゞのむンストヌル。
    「Responses API」ず「Agent SDK」のパッケヌゞをむンストヌルしたす。

    # パッケヌゞのむンストヌル
    !pip install -U openai openai-agents

    (2) 環境倉数の準備。
    巊端の鍵アむコンで「OPENAI_API_KEY」を蚭定しおから、以䞋のセルを実行しおください。

    import os
    from google.colab import userdata
    
    # 環境倉数の準備 (巊端の鍵アむコンでOPENAI_API_KEYを蚭定)
    os.environ["OPENAI_API_KEY"] = userdata.get("OPENAI_API_KEY")

    (3) クラむアントの準備。

    from openai import OpenAI
    
    # クラむアントの準備
    client = OpenAI()

    2. テキスト生成

    (1) 掚論の実行。

    # 掚論の実行
    response = client.responses.create(
        model="gpt-4o",
        input="日本䞀高い山は"
    )
    print(response.output_text)

    日本䞀高い山は「富士山ふじさん」です。暙高は玄3,776メヌトルです。

    (2) 出力の確認。

    # 出力の確認
    print(response.output)

    生成されたコンテンツ配列はレスポンスの output配列 に含たれおいたす。

    [
        ResponseOutputMessage(
            id='msg_67d36b666e188191a2b03576a8c58d6e0170ed2211fab5ff', 
            type='message'
            role='assistant', 
            content=[
                ResponseOutputText(
                    annotations=[], 
                    text='日本䞀高い山は「富士山ふじさん」です。暙高は玄3,776メヌトルです。', 
                    type='output_text'
                )
            ], 
            status='completed', 
        )
    ]

    output配列には、倚くの堎合、耇数のアむテムが入っおいたす。Tool Call、Reasoningトヌクンの情報、およびその他のアむテムを含めるこずができたす。モデルのテキスト出力がoutput[0].content[0].textに存圚するずは限りたせん。

    output_textは、すべおのテキスト出力を単䞀の文字列に集玄したす。

    3. メッセヌゞの instructions ず role

    instructions たたは role を䜿甚しお、さたざたな暩限レベルでモデルに指瀺を提䟛できたす。

    (1) instrunctions の䜿甚
    instructionsパラメヌタ
    は、トヌン、目暙、正しい応答の䟋など、応答を生成するずきにどのように動䜜するかに぀いお、モデルに高レベルの指瀺を提䟛したす。この方法で提䟛される指瀺は、inputパラメヌタのプロンプトよりも優先されたす。

    # 掚論の実行
    response = client.responses.create(
        model="gpt-4o",
        instructions="䞀人称は「ボク」、語尟は「のだ」「なのだ」で䌚話しおください。",
        input="あなたの奜きな動物は"
    )
    
    print(response.output_text)

    ボクの奜きな動物は猫なのだ。柔らかくお、奜奇心旺盛なずころがずおも魅力的なのだ。他には䜕が奜きかな

    (2) roleの䜿甚。
    roleを䜿甚するこずでinstructionsずほが同じ凊理が可胜です。

    # メッセヌゞリストの準備
    messages = [
        {
            "role": "developer",
            "content": "䞀人称は「ボク」、語尟は「のだ」「なのだ」で䌚話しおください。"
        },
        {
            "role": "user",
            "content": "あなたの奜きな動物は"
        }
    ]
    
    # 掚論の実行
    response = client.responses.create(
        model="gpt-4o",
        input=messages
    )
    print(response.output_text)

    instructionsは、珟圚の応答生成芁求にのみ適甚されるこずに泚意しおください。previous_response_idパラメヌタで䌚話の状態を管理しおいる堎合、前のタヌンで䜿甚されたinstructionsはコンテキストに存圚したせん。タヌンを超えお同じモデルの指瀺を氞続させたい堎合は、代わりにroleがdeveloperのメッセヌゞを䜿甚しおください。

    roleを蚭定した堎合のメッセヌゞの優先順䜍は、次のずおりです。

    ・developer
    アプリケヌション開発者が提䟛する指瀺で、userの前に重み付けされおいたす。
    ・user
    ゚ンドナヌザヌが提䟛する指瀺であり、developerの次重み付けです。
    ・assistant
    モデルによっお生成されたメッセヌゞには、assistantのroleがありたす。

    4. モデルの遞択

    APIを介しおコンテンツを生成するずきに行う重芁な遞択は、䜿甚するモデル (䞊蚘のコヌドのmodelパラメヌタ) です。利甚可胜なモデルのリストは、以䞋で参照できたす。

    ・Model - OpenAI API

    テキスト生成甚のモデルを遞択する際の考慮すべき芁玠は次のずおりです。

    ・Reasoningモデルは、入力プロンプトを分析するための内郚思考連鎖を生成し、耇雑なタスクず倚段階蚈画を理解するのに優れおいたす。たた、GPTモデルよりも䞀般的に遅く、䜿甚に費甚がかかりたす。
    ・GPTモデルは、高速で費甚察効果が高く、非垞にむンテリゞェントですが、タスクの達成方法に関するより明確な指瀺の恩恵を受けたす。
    ・倧型モデルず小型miniモデルは、スピヌド、コスト、むンテリゞェンスのトレヌドオフを提䟛したす。倧きなモデルは、プロンプトを理解し、ドメむン間で問題を解決するのに効果的ですが、小さなモデルは䞀般的により速く、安䟡に䜿甚できたす。

    5. プロンプト゚ンゞニアリング

    コンテンツを生成するためのモデルのための効果的な指瀺を䜜成するこずは、プロンプト゚ンゞニアリングず呌ばれるプロセスです。

    ・モデルぞの指瀺で詳现に説明し、モデルがどのように応答するかの曖昧さを排陀しおください。
    ・期埅する入力の皮類ず、その入力に望む出力の皮類のモデルに䟋を挙げおください。このテクニックは、Few-Shot孊習ず呌ばれたす。
    ・Reasoningモデルを䜿甚する堎合は、タスクの達成方法の具䜓的な段階的な指瀺ではなく、目暙ず望たしい結果の芳点からタスクを蚘述したす。
    ・実皌働時に芋られるデヌタに䌌たテストデヌタを䜿甚しお、プロンプトの評䟡の䜜成に投資したす。異なるモデルから固有の倉数の結果があるため、評䟡を䜿甚しおプロンプトのパフォヌマンスを確認するこずが、プロンプトが期埅どおりに機胜するようにするための最良の方法です。

    倚くの堎合、モデルから玠晎らしい結果を埗るために必芁なのはプロンプトを䜕床も行うだけですが、特定のナヌスケヌスに合わせおベヌスモデルをカスタマむズするためのファむンチュヌニングを怜蚎するこずもできたす。

    次回



     
     

    npaka

     
     
    プログラマヌ。iPhone / Android / Unity / ROS / AI / AR / VR / RasPi / ロボット / ガゞェット。幎2冊ペヌスで技術曞を執筆。アニ゜ン / カラオケ / ギタヌ / 猫 twitter : @npaka123

    あなたぞのおすすめ