Kyosuke Ichikawa commited on
Commit
8d3cf2d
·
unverified ·
1 Parent(s): 9a58d48

Add GPT-5 series models support (#21)

Browse files

- Add gpt-5, gpt-5-mini, gpt-5-nano to available models
- Update OpenAI API usage with max_completion_tokens parameter
- Keep DEFAULT_MODEL as gpt-4.1-mini (better quality than gpt-5-mini for
podcast generation)

Note: gpt-4.1-mini was set as the default because it was qualitatively
better than gpt-5-mini. gpt-5-mini tends to include prompt instructions
in dialogue output (e.g., "ですます調で整理します").

yomitalk/app.py CHANGED
@@ -1322,7 +1322,7 @@ class PaperPodcastApp:
1322
  with gr.Row():
1323
  openai_max_tokens_slider = gr.Slider(
1324
  minimum=100,
1325
- maximum=32768,
1326
  value=OpenAIModel.DEFAULT_MAX_TOKENS,
1327
  step=100,
1328
  label="最大トークン数",
 
1322
  with gr.Row():
1323
  openai_max_tokens_slider = gr.Slider(
1324
  minimum=100,
1325
+ maximum=OpenAIModel.DEFAULT_MAX_TOKENS,
1326
  value=OpenAIModel.DEFAULT_MAX_TOKENS,
1327
  step=100,
1328
  label="最大トークン数",
yomitalk/models/openai_model.py CHANGED
@@ -20,10 +20,12 @@ class OpenAIModel:
20
  "gpt-4.1-nano",
21
  "gpt-4.1-mini",
22
  "gpt-4.1",
23
- "o4-mini",
 
 
24
  ]
25
  DEFAULT_MODEL = "gpt-4.1-mini"
26
- DEFAULT_MAX_TOKENS = 32768
27
 
28
  def __init__(self) -> None:
29
  """Initialize OpenAIModel."""
@@ -74,7 +76,7 @@ class OpenAIModel:
74
  max_tokens_int = int(max_tokens)
75
  if max_tokens_int < 100:
76
  return False
77
- if max_tokens_int > 32768:
78
  return False
79
 
80
  self.max_tokens = max_tokens_int
@@ -135,8 +137,7 @@ class OpenAIModel:
135
  response = client.chat.completions.create(
136
  model=self.model_name,
137
  messages=[{"role": "user", "content": prompt}],
138
- temperature=0.7,
139
- max_tokens=self.max_tokens,
140
  )
141
 
142
  # Get response content
 
20
  "gpt-4.1-nano",
21
  "gpt-4.1-mini",
22
  "gpt-4.1",
23
+ "gpt-5-nano",
24
+ "gpt-5-mini",
25
+ "gpt-5",
26
  ]
27
  DEFAULT_MODEL = "gpt-4.1-mini"
28
+ DEFAULT_MAX_TOKENS = 32768 # limit for gpt-4.1 series
29
 
30
  def __init__(self) -> None:
31
  """Initialize OpenAIModel."""
 
76
  max_tokens_int = int(max_tokens)
77
  if max_tokens_int < 100:
78
  return False
79
+ if max_tokens_int > self.DEFAULT_MAX_TOKENS:
80
  return False
81
 
82
  self.max_tokens = max_tokens_int
 
137
  response = client.chat.completions.create(
138
  model=self.model_name,
139
  messages=[{"role": "user", "content": prompt}],
140
+ max_completion_tokens=self.max_tokens,
 
141
  )
142
 
143
  # Get response content