
OpenAI Responses API å ¥é (5) - äŒè©±ç¶æ
ãResponses APIãã®ãäŒè©±ç¶æ ãã€ããŠãŸãšããŸããã
åå
1. äŒè©±ç¶æ
ãOpenAI APIãã¯äŒè©±ç¶æ ã管çããããã€ãã®æ¹æ³ãæäŸããŸããããã¯ããã«ãã¿ãŒã³äŒè©±ãå®è£ ããããã«éèŠã§ãã
2. 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()3. ãã«ãã¿ãŒã³ã®äŒè©±
åããã¹ãçæãªã¯ãšã¹ãã¯ç¬ç«ããŠããã¹ããŒãã¬ã¹ã§ãããã¡ãã»ãŒãžãªã¹ãã«éå»ã®äŒè©±å±¥æŽãå«ããããšã§ããã«ãã¿ãŒã³ã®äŒè©±ãå®è£ ã§ããŸãã
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o",
input=[
{"role": "user", "content": "æ¥æ¬äžé«ãå±±ã¯ïŒ"},
{"role": "assistant", "content": "æ¥æ¬äžé«ãå±±ã¯ãå¯å£«å±±ã§ãã"},
{"role": "user", "content": "ãã®å±±ã¯äœçã«ããïŒ"},
],
)
print(response.output_text)å¯å£«å±±ã¯ãé岡çãšå±±æ¢šçã«ãŸããã£ãŠããŸãã
4. æåã§ã®äŒè©±ç¶æ ã®ç®¡ç
(1) 1ã¿ãŒã³ç®ã®äŒè©±ã
# ã¡ãã»ãŒãžãªã¹ãã®æºå
messages = [
{"role": "user", "content": "æ¥æ¬äžé«ãå±±ã¯ïŒ"}
]
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o",
input=messages,
store=False
)
print(response.output_text)æ¥æ¬äžé«ãå±±ã¯ãå¯å£«å±±ã§ãã
(2) 2ã¿ãŒã³ç®ã®äŒè©±ã
# ã¡ãã»ãŒãžãªã¹ãã«å¿çã远å
messages += [{"role": el.role, "content": el.content} for el in response.output]
# æ°ããã¡ãã»ãŒãžã®è¿œå
messages.append({ "role": "user", "content": "ãã®å±±ã¯äœçã«ããïŒ" })
# æšè«ã®å®è¡
second_response = client.responses.create(
model="gpt-4o-mini",
input=messages,
store=False
)
print(second_response.output_text)å¯å£«å±±ã¯ãé岡çãšå±±æ¢šçã«ãŸããã£ãŠããŸãã
5. previous_response_idã§ã®äŒè©±ç¶æ ã®ç®¡ç
previous_response_idã䜿çšããããšã§ãå¿çãé£éãããã¹ã¬ããåãããäŒè©±ãäœæã§ããŸãã
(1) 1ã¿ãŒã³ç®ã®äŒè©±ã
# æšè«ã®å®è¡
response = client.responses.create(
model="gpt-4o-mini",
input=[{"role": "user", "content": "æ¥æ¬äžé«ãå±±ã¯ïŒ"}],
)
print(response.output_text)(2) 2ã¿ãŒã³ç®ã®äŒè©±ã
# æšè«ã®å®è¡
second_response = client.responses.create(
model="gpt-4o",
previous_response_id=response.id,
input=[{"role": "user", "content": "ãã®å±±ã¯äœçã«ããïŒ"}],
)
print(second_response.output_text)6. ã³ã³ããã¹ããŠã£ã³ããŠã®ç®¡ç
6-1. ã³ã³ããã¹ããŠã£ã³ããŠ
ãã³ã³ããã¹ããŠã£ã³ããŠãã¯ã1 åã®ãªã¯ãšã¹ãã§äœ¿çšã§ããããŒã¯ã³ã®æå€§æ°ã§ãããã®æå€§ããŒã¯ã³æ°ã«ã¯ãå ¥åããŒã¯ã³ãåºåããŒã¯ã³ãReasoningããŒã¯ã³ãå«ãŸããŸããã¢ãã«ã®ã³ã³ããã¹ããŠã£ã³ããŠã確èªããã«ã¯ãã¢ãã«ã®è©³çްãåç §ããŠãã ããã
6-2. åºåããŒã¯ã³ãšã³ã³ããã¹ããŠã£ã³ããŠã®å¶é
å ¥åãè€éã«ãªã£ãããäŒè©±ã®ã¿ãŒã³ãå¢ããããããšããåºåããŒã¯ã³ããšãã³ã³ããã¹ããŠã£ã³ããŠãã®äž¡æ¹ã®å¶éãèæ ®ããå¿ èŠããããŸããã¢ãã«ã®å ¥åãšåºåã¯ããŒã¯ã³ã§æž¬å®ãããå ¥åããè§£æãããŠã³ã³ãã³ããšæå³ãåæãããè«ççãªåºåãã¬ã³ããªã³ã°ããããã«çµã¿ç«ãŠãããŸããã¢ãã«ã«ã¯ãããã¹ãçæãªã¯ãšã¹ãã®ã©ã€ããµã€ã¯ã«äžã®ããŒã¯ã³ã®äœ¿çšã«å¶éããããŸãã
ã»åºåããŒã¯ã³ã®å¶é
åºåããŒã¯ã³ã¯ãããã³ããã«å¿ããŠã¢ãã«ã«ãã£ãŠçæãããããŒã¯ã³ã§ããåºåããŒã¯ã³ã®å¶éã¯ã¢ãã«ããšã«ç°ãªããŸããããšãã°ãgpt-4o-2024-08-06ã¯æå€§ 16,384 åã®åºåããŒã¯ã³ãçæã§ããŸãã
ã»ã³ã³ããã¹ããŠã£ã³ããŠã®å¶é
ã³ã³ããã¹ããŠã£ã³ããŠã¯ãå ¥åããŒã¯ã³ãšåºåããŒã¯ã³ã®äž¡æ¹ã«äœ¿çšã§ããããŒã¯ã³ (ããã³äžéšã®ã¢ãã«ã§ã¯ReasoningããŒã¯ã³) ã®åèšæ°ã衚ããŸããã¢ãã«ã®ã³ã³ããã¹ããŠã£ã³ããŠã®å¶éãæ¯èŒããŠãã ãããããšãã°ãgpt-4o-2024-08-06ã®ã³ã³ããã¹ããŠã£ã³ããŠã¯ 128k ããŒã¯ã³ã§ãã
éåžžã«å€§ããªããã³ãããäœæãããšãã¢ãã«ã«å²ãåœãŠãããã³ã³ããã¹ããŠã£ã³ããŠãè¶
ããåºåãåãæšãŠããããªã¹ã¯ããããŸãã
ç¹å®ã®ããã¹ãæååã«å«ãŸããããŒã¯ã³ã®æ°ã確èªããã«ã¯ãtiktoken ã©ã€ãã©ãªã§æ§ç¯ãããããŒã¯ãã€ã¶ãŒããŒã«ã䜿çšããŸãã
6-3. Reasoningã¢ãã«ã®ã³ã³ããã¹ããŠã£ã³ããŠã®å¶é
o1ã®ãããªReasoningãæå¹ã«ãªã£ãŠããã¢ãã«ã䜿çšããŠAPIãªã¯ãšã¹ããè¡ããšãã³ã³ããã¹ããŠã£ã³ããŠã®åèšã«æ¬¡ã®ããŒã¯ã³æ°ãé©çšãããŸãã
ã»å ¥åããŒã¯ã³ïŒinputé åã«å«ããå ¥åïŒ
ã»åºåããŒã¯ã³ïŒããã³ããã«å¿ããŠçæãããããŒã¯ã³ïŒ
ã»ReasoningããŒã¯ã³ïŒã¢ãã«ãå¿çãèšç»ããããã«äœ¿çšïŒ
ã³ã³ããã¹ããŠã£ã³ããŠã®å¶éãè¶ ããŠçæãããããŒã¯ã³ã¯ãAPI å¿çã§åãæšãŠãããå¯èœæ§ããããŸãã

ãããŒã¯ãã€ã¶ãŒããŒã«ãã䜿çšããŠãã¡ãã»ãŒãžã§äœ¿çšãããããŒã¯ã³ã®æ°ãèŠç©ããããšãã§ããŸãã