Update app.py
Browse files
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 |
-
|
|
|
|
| 161 |
model="claude-3-5-sonnet-20241022",
|
| 162 |
max_tokens=7800,
|
| 163 |
system=system_message,
|
| 164 |
messages=claude_messages
|
| 165 |
-
)
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 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)}')
|