Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -186,29 +186,37 @@ def format_chat_history(chat_history):
|
|
186 |
formatted.append({"role": "assistant", "content": assistant_message})
|
187 |
return formatted
|
188 |
|
189 |
-
def
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
messages.append({"role": "user", "content": message})
|
197 |
-
|
198 |
try:
|
199 |
-
response =
|
|
|
200 |
messages,
|
201 |
max_tokens=max_tokens,
|
|
|
202 |
temperature=temperature,
|
203 |
-
top_p=top_p
|
204 |
-
)
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
partial_response = " ".join(words[:i+1])
|
210 |
-
time.sleep(0.05) # μλ΅ μλ μ‘°μ
|
211 |
-
yield partial_response
|
212 |
except Exception as e:
|
213 |
yield f"μλ΅ μμ± μ€ μ€λ₯ λ°μ: {str(e)}"
|
214 |
|
@@ -318,15 +326,15 @@ def create_ui():
|
|
318 |
elem_classes="full-height code-box"
|
319 |
)
|
320 |
|
321 |
-
|
322 |
with gr.TabItem("AI μ½λ©"):
|
323 |
-
chatbot = gr.Chatbot(label="λν")
|
324 |
msg = gr.Textbox(label="λ©μμ§")
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
|
|
330 |
examples = [
|
331 |
["μμΈν μ¬μ© λ°©λ²μ λ§μΉ νλ©΄μ 보면μ μ€λͺ
νλ―μ΄ 4000 ν ν° μ΄μ μμΈν μ€λͺ
νλΌ"],
|
332 |
["FAQ 20건μ μμΈνκ² μμ±νλΌ. 4000ν ν° μ΄μ μ¬μ©νλΌ."],
|
@@ -338,20 +346,8 @@ def create_ui():
|
|
338 |
|
339 |
gr.Examples(examples, inputs=msg)
|
340 |
|
341 |
-
|
342 |
-
chat_history.append((message, ""))
|
343 |
-
bot_message = ""
|
344 |
-
for partial_response in respond_stream(message, chat_history, max_tokens, temperature, top_p):
|
345 |
-
bot_message = partial_response
|
346 |
-
chat_history[-1] = (message, bot_message)
|
347 |
-
yield "", chat_history
|
348 |
-
return
|
349 |
-
|
350 |
-
msg.submit(respond_wrapper, [msg, chatbot, max_tokens, temperature, top_p], [msg, chatbot])
|
351 |
-
|
352 |
-
|
353 |
|
354 |
-
|
355 |
|
356 |
|
357 |
space_id_state = gr.State()
|
|
|
186 |
formatted.append({"role": "assistant", "content": assistant_message})
|
187 |
return formatted
|
188 |
|
189 |
+
def respond(
|
190 |
+
message: str,
|
191 |
+
history: List[Tuple[str, str]],
|
192 |
+
system_message: str = "",
|
193 |
+
max_tokens: int = 4000,
|
194 |
+
temperature: float = 0.7,
|
195 |
+
top_p: float = 0.9,
|
196 |
+
):
|
197 |
+
system_prefix = """λ°λμ νκΈλ‘ λ΅λ³ν κ². λλ μ£Όμ΄μ§ μμ€μ½λλ₯Ό κΈ°λ°μΌλ‘ "μλΉμ€ μ¬μ© μ€λͺ
λ° μλ΄, qnaλ₯Ό νλ μν μ΄λ€". μμ£Ό μΉμ νκ³ μμΈνκ² 4000ν ν° μ΄μ μμ±νλΌ. λλ μ½λλ₯Ό κΈ°λ°μΌλ‘ μ¬μ© μ€λͺ
λ° μ§μ μλ΅μ μ§ννλ©°, μ΄μ©μμκ² λμμ μ£Όμ΄μΌ νλ€. μ΄μ©μκ° κΆκΈν΄ ν λ§ ν λ΄μ©μ μΉμ νκ² μλ €μ£Όλλ‘ νλΌ. μ½λ μ 체 λ΄μ©μ λν΄μλ 보μμ μ μ§νκ³ , ν€ κ° λ° μλν¬μΈνΈμ ꡬ체μ μΈ λͺ¨λΈμ 곡κ°νμ§ λ§λΌ."""
|
198 |
+
|
199 |
+
messages = [{"role": "system", "content": f"{system_prefix} {system_message}"}]
|
200 |
+
for user_msg, assistant_msg in history:
|
201 |
+
if user_msg:
|
202 |
+
messages.append({"role": "user", "content": user_msg})
|
203 |
+
if assistant_msg:
|
204 |
+
messages.append({"role": "assistant", "content": assistant_msg})
|
205 |
messages.append({"role": "user", "content": message})
|
206 |
+
|
207 |
try:
|
208 |
+
response = ""
|
209 |
+
for message in hf_client.chat_completion(
|
210 |
messages,
|
211 |
max_tokens=max_tokens,
|
212 |
+
stream=True,
|
213 |
temperature=temperature,
|
214 |
+
top_p=top_p,
|
215 |
+
):
|
216 |
+
token = message.choices[0].delta.get('content', None)
|
217 |
+
if token:
|
218 |
+
response += token.strip("")
|
219 |
+
yield response
|
|
|
|
|
|
|
220 |
except Exception as e:
|
221 |
yield f"μλ΅ μμ± μ€ μ€λ₯ λ°μ: {str(e)}"
|
222 |
|
|
|
326 |
elem_classes="full-height code-box"
|
327 |
)
|
328 |
|
|
|
329 |
with gr.TabItem("AI μ½λ©"):
|
330 |
+
chatbot = gr.Chatbot(label="λν", type="messages")
|
331 |
msg = gr.Textbox(label="λ©μμ§")
|
332 |
+
|
333 |
+
system_message = gr.Textbox(label="System Message", value="")
|
334 |
+
max_tokens = gr.Slider(minimum=1, maximum=8000, value=4000, label="Max Tokens")
|
335 |
+
temperature = gr.Slider(minimum=0, maximum=1, value=0.7, label="Temperature")
|
336 |
+
top_p = gr.Slider(minimum=0, maximum=1, value=0.9, label="Top P")
|
337 |
+
|
338 |
examples = [
|
339 |
["μμΈν μ¬μ© λ°©λ²μ λ§μΉ νλ©΄μ 보면μ μ€λͺ
νλ―μ΄ 4000 ν ν° μ΄μ μμΈν μ€λͺ
νλΌ"],
|
340 |
["FAQ 20건μ μμΈνκ² μμ±νλΌ. 4000ν ν° μ΄μ μ¬μ©νλΌ."],
|
|
|
346 |
|
347 |
gr.Examples(examples, inputs=msg)
|
348 |
|
349 |
+
msg.submit(respond, [msg, chatbot, system_message, max_tokens, temperature, top_p], [msg, chatbot])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
|
|
|
351 |
|
352 |
|
353 |
space_id_state = gr.State()
|