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

OpenAI Responses API 入門 (10) - File search

    「Responses API」の「File search」぀いおたずめたした。

    ・File search

    前回

    1. File search

    「File search」は「Response API」の組み蟌みツヌルの1぀です。セマンティック怜玢ずキヌワヌド怜玢によっおベクタヌストアから取埗した情報をプロンプトに远加するこずができたす。ベクタヌストアはあらかじめ耇数のファむルをアップロヌドしお準備しおおきたす。モデルはナヌザヌ入力に応じお、ファむル怜玢するかしないかを決定したす。

    画像

    2. ベクトルストアの利甚料金

    ベクトルストアの利甚料金は、チャンクサむズずそれに察応する埋め蟌みによっお決たりたす。すべおのベクトルストアで䜿甚される合蚈ストレヌゞに基づいお料金が請求されたす。

    ・1GB たで無料
    ・1GB を超えるず1GB あたり 0.10 ドル/日

    3. 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()

    4. ベクトルストアの䜜成

    (1) ベクトルストアの䜜成。

    # ベクトルストアの䜜成
    vector_store = client.vector_stores.create(
        name="My Vector Store",
    )
    print(vector_store.id)

    (2) ファむルをColabにアップロヌド。
    今回は、「OpenAI GPT-4.5 System Card」のPDFをアップロヌドしたした。

    画像

    (3) ファむルをOpenAIのサヌバにアップロヌド。

    # ファむルをOpenAIのサヌバにアップロヌド
    client.vector_stores.files.upload_and_poll(
        vector_store_id=vector_store.id,
        file=open("gpt-4-5-system-card-2272025.pdf", "rb")
    )

    アップロヌドしたファむルはDashboardのStorageでも確認できたす。

    画像

    5. File searchの実行

    (1) メッセヌゞリストの準備。

    # メッセヌゞリストの準備
    messages = [
        {
            "role": "user",
            "content": "GPT-4.5の性胜に぀いお教えお。",
        }
    ]

    (2) 掚論の実行。

    # 掚論の実行
    response = client.responses.create(
        model="gpt-4o",
        tools=[
            {
                "type": "file_search",
                "vector_store_ids": [vector_store.id]
            }
        ],
        input=messages,
    )
    print(response.output_text)
    GPT-4.5は、より広範な知識ベヌスずナヌザヌの意図に察する敎合性の匷化、感情的な知性の向䞊を特城ずしおいたす。具䜓的には、執筆、プログラミング、実践的な問題解決においお、より自然なむンタラクションを可胜にし、誀情報ハルシネヌションの発生が枛少しおいたす。
    
    たた、GPT-4.5は、高床なステアラビリティ操䜜性ず、人間の意図やニヌズをより深く理解するこずで、創造的な執筆やデザむンの手助けをする胜力に優れおいたす。
    
    安党性に぀いおも、GPT-4.5は埓来のモデルず比范しお倧幅な改良が加えられおいるこずが報告されおいたす。リスク評䟡では、䞭リスクずしお分類されおおり、特にCè§£ Persuasion説埗においお優れた性胜を瀺しおいたす。

    6. 出力ず匕甚

    「File search」を䜿甚したモデルの出力には、次の情報が含たれたす。

    ・file_search_call : 怜玢呌び出しID を含む出力項目。
    ・message : 以䞋を含む出力項目
     ・message.content[0].text : 出力テキスト
     ・message.content[0].annotations : 匕甚URLのリスト

    (1) 出力ず匕甚の確認。

    # 出力ず匕甚の確認
    for event in response.output:
        print(event)
    ResponseFileSearchToolCall(
        id='fs_67d6c6b4722c8191ba52063f1335fa5b0ce16a9a934dfca4',
        queries=[
            'GPT-4.5の性胜に぀いお教えお',
            'GPT-4.5 performance',
            'GPT-4.5 capabilities',
            'how does GPT-4.5 perform',
            'GPT-4.5 features'
        ],
        status='completed',
        type='file_search_call',
        results=None
    )
    
    ResponseOutputMessage(
        id='msg_67d6c6b7c9808191910be46eca1ecad50ce16a9a934dfca4',
        content=[
            ResponseOutputText(
                annotations=[
                    AnnotationFileCitation(
                        file_id='file-FYBCZaopwF7Sujt946yE86',
                        index=130,
                        type='file_citation',
                        filename='gpt-4-5-system-card-2272025.pdf'
                    ),
                    AnnotationFileCitation(
                        file_id='file-FYBCZaopwF7Sujt946yE86',
                        index=212,
                        type='file_citation',
                        filename='gpt-4-5-system-card-2272025.pdf'
                    ),
                    AnnotationFileCitation(
                        file_id='file-FYBCZaopwF7Sujt946yE86',
                        index=326,
                        type='file_citation',
                        filename='gpt-4-5-system-card-2272025.pdf'
                    ),
                    AnnotationFileCitation(
                        file_id='file-FYBCZaopwF7Sujt946yE86',
                        index=326,
                        type='file_citation',
                        filename='gpt-4-5-system-card-2272025.pdf'
                    )
                ],
                text='''
                    GPT-4.5は、より広範な知識ベヌスずナヌザヌの意図に察する敎合性の匷化、
                    感情的な知性の向䞊を特城ずしおいたす。具䜓的には、執筆、プログラミング、
                    実践的な問題解決においお、より自然なむンタラクションを可胜にし、
                    誀情報ハルシネヌションの発生が枛少しおいたす。
    
                    たた、GPT-4.5は、高床なステアラビリティ操䜜性ず、
                    人間の意図やニヌズをより深く理解するこずで、
                    創造的な執筆やデザむンの手助けをする胜力に優れおいたす。
    
                    安党性に぀いおも、GPT-4.5は埓来のモデルず比范しお
                    倧幅な改良が加えられおいるこずが報告されおいたす。
                    リスク評䟡では、䞭リスクずしお分類されおおり、
                    特にCè§£ Persuasion説埗においお優れた性胜を瀺しおいたす。
                ''',
                type='output_text'
            )
        ],
        role='assistant',
        status='completed',
        type='message'
    )

    7. サポヌトファむル

    サポヌトファむルは、次のずおりです。

    画像

    8. 制限事項

    制限事項は、次のずおりです。

    ・プロゞェクトは、すべおのファむルの合蚈サむズが 100 GB に制限されおいたす。
    ・ベクトルストアは、合蚈 10,000 ファむルに制限されおいたす。
    ・個々のファむルは最倧 512 MB です (ファむルあたり玄 500 䞇トヌクン)

    次回



     
     

    npaka

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

    あなたぞのおすすめ