
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 äžããŒã¯ã³)