ginipick commited on
Commit
a260e03
Β·
verified Β·
1 Parent(s): 4042beb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -38
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 respond_stream(message: str, chat_history: List[Tuple[str, str]], max_tokens: int, temperature: float, top_p: float):
190
- system_message = """당신은 ν—ˆκΉ…νŽ˜μ΄μŠ€μ— νŠΉν™”λœ AI μ½”λ”© μ „λ¬Έκ°€μž…λ‹ˆλ‹€. μ‚¬μš©μžμ˜ μ§ˆλ¬Έμ— μΉœμ ˆν•˜κ³  μƒμ„Έν•˜κ²Œ λ‹΅λ³€ν•΄μ£Όμ„Έμš”.
191
- Gradio νŠΉμ„±μ„ μ •ν™•νžˆ μΈμ‹ν•˜κ³  Requirements.txt λˆ„λ½μ—†μ΄ μ½”λ”©κ³Ό 였λ₯˜λ₯Ό ν•΄κ²°ν•΄μ•Ό ν•©λ‹ˆλ‹€.
192
- 항상 μ •ν™•ν•˜κ³  μœ μš©ν•œ 정보λ₯Ό μ œκ³΅ν•˜λ„λ‘ λ…Έλ ₯ν•˜μ„Έμš”."""
193
-
194
- messages = [{"role": "system", "content": system_message}]
195
- messages.extend(format_chat_history(chat_history))
 
 
 
 
 
 
 
 
 
196
  messages.append({"role": "user", "content": message})
197
-
198
  try:
199
- response = hf_client.chat_completion(
 
200
  messages,
201
  max_tokens=max_tokens,
 
202
  temperature=temperature,
203
- top_p=top_p
204
- )
205
-
206
- full_response = response.choices[0].message.content
207
- words = full_response.split()
208
- for i in range(len(words)):
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
- max_tokens = gr.Slider(minimum=1, maximum=8000, value=4000, label="Max Tokens", visible=False)
327
- temperature = gr.Slider(minimum=0, maximum=1, value=0.7, label="Temperature", visible=False)
328
- top_p = gr.Slider(minimum=0, maximum=1, value=0.9, label="Top P", visible=False)
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
- def respond_wrapper(message, chat_history, max_tokens, temperature, top_p):
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()