seawolf2357 commited on
Commit
7dd162f
·
verified ·
1 Parent(s): 8d3e143

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -19
app.py CHANGED
@@ -157,29 +157,42 @@ with gr.Blocks(css_paths="app.css") as demo:
157
  gr.update(open=True) # code_drawer
158
  ]
159
 
160
- response = client.messages.create(
 
161
  model="claude-3-5-sonnet-20241022",
162
  max_tokens=7800,
163
  system=system_message,
164
  messages=claude_messages
165
- )
166
-
167
- content = response.content[0].text
168
- _history = messages_to_history([
169
- {'role': Role.SYSTEM, 'content': system_message}
170
- ] + claude_messages + [{
171
- 'role': Role.ASSISTANT,
172
- 'content': content
173
- }])
174
-
175
- # 최종 결과 반환
176
- yield [
177
- content, # code_output
178
- _history, # history
179
- send_to_sandbox(remove_code_block(content)), # sandbox
180
- gr.update(active_key="render"), # state_tab
181
- gr.update(open=True) # code_drawer
182
- ]
 
 
 
 
 
 
 
 
 
 
 
 
183
 
184
  except Exception as e:
185
  raise ValueError(f'Error calling Claude API: {str(e)}')
 
157
  gr.update(open=True) # code_drawer
158
  ]
159
 
160
+ # 스트리밍 응답 사용
161
+ with client.messages.stream(
162
  model="claude-3-5-sonnet-20241022",
163
  max_tokens=7800,
164
  system=system_message,
165
  messages=claude_messages
166
+ ) as stream:
167
+ collected_content = ""
168
+ for chunk in stream:
169
+ if chunk.type == "content_block_delta":
170
+ delta = chunk.delta.text
171
+ collected_content += delta
172
+
173
+ yield [
174
+ collected_content, # code_output
175
+ _history, # history
176
+ None, # sandbox (아직 완성되지 않았으므로 None)
177
+ gr.update(active_key="loading"), # state_tab
178
+ gr.update(open=True) # code_drawer
179
+ ]
180
+
181
+ # 최종 결과 반환
182
+ _history = messages_to_history([
183
+ {'role': Role.SYSTEM, 'content': system_message}
184
+ ] + claude_messages + [{
185
+ 'role': Role.ASSISTANT,
186
+ 'content': collected_content
187
+ }])
188
+
189
+ yield [
190
+ collected_content, # code_output
191
+ _history, # history
192
+ send_to_sandbox(remove_code_block(collected_content)), # sandbox
193
+ gr.update(active_key="render"), # state_tab
194
+ gr.update(open=True) # code_drawer
195
+ ]
196
 
197
  except Exception as e:
198
  raise ValueError(f'Error calling Claude API: {str(e)}')