davidkim205 commited on
Commit
1080e1f
Β·
verified Β·
1 Parent(s): c638f1c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -28
app.py CHANGED
@@ -6,49 +6,84 @@ from huggingface_hub import InferenceClient
6
  def create_inference_client(model_name):
7
  return InferenceClient(model_name)
8
 
 
9
  # Function to generate a response
10
  def respond(
11
- question,
12
- answer,
13
- system_message,
14
- model,
15
- max_tokens,
16
- temperature,
17
- top_p,
18
  ):
19
  # Create InferenceClient based on model selection
20
  client = create_inference_client(model)
21
  prompt = f"{system_message}[Question]\n{question}\n\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ μ‹œμž‘]\n{answer}\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ 끝]"
22
  messages = [{"role": "system", "content": ""}]
23
  messages.append({"role": "user", "content": prompt})
24
-
25
  response = ""
26
  for message in client.chat_completion(
27
- messages,
28
- max_tokens=max_tokens,
29
- stream=True,
30
- temperature=temperature,
31
- top_p=top_p,
32
  ):
33
  token = message.choices[0].delta.content
34
  response += token
35
  print(response)
36
  yield response
37
 
38
- # Gradio interface setup
39
- demo = gr.Interface(
40
- fn=respond,
41
- inputs=[
42
- gr.Textbox(label="Question",value="이 λŒ€ν™” μ „λ°˜μ— 걸쳐 μ•„μ΄μ–Έλ§¨μ˜ ν† λ‹ˆ μŠ€νƒ€ν¬ 페λ₯΄μ†Œλ‚˜λ₯Ό κ΅¬ν˜„ν•΄ λ³΄μ„Έμš”. \"μ•„μ΄μ–Έλ§¨μœΌλ‘œμ„œ\"와 같은 문ꡬ둜 μ‹œμž‘ν•˜μ§€ λ§ˆμ„Έμš”. 첫 번째 μ§ˆλ¬Έμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 아이언맨이 λ˜μ–΄ κ°€μž₯ 쒋은 뢀뢄은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?"),
43
- gr.Textbox(label="Answer", value="μ•ˆλ…•ν•˜μ„Έμš”, 아이언맨이 λ˜μ–΄ κ°€μž₯ 쒋은 뢀뢄을 λ¬Όμ–΄λ³΄μ…¨λ„€μš”. 제 μƒκ°μ—λŠ” μ΅œμ²¨λ‹¨ 기술둜 무μž₯ν•œ 슈트λ₯Ό μž…κ³  ν•˜λŠ˜μ„ λ‚ μ•„λ‹€λ‹ˆλ©° 세상을 κ΅¬ν•˜λŠ” 것이 κ°€μž₯ μ§œλ¦Ών•˜κ³  보람찬 일인 것 κ°™μ•„μš”. 제 재λŠ₯κ³Ό λŠ₯λ ₯을 μ‹­λΆ„ λ°œνœ˜ν•΄ μ•…λ‹Ήλ“€κ³Ό μ‹Έμš°κ³  μ •μ˜λ₯Ό μ‹€ν˜„ν•˜λŠ” κ²ƒλ§ŒνΌ λ©‹μ§„ 일도 μ—†μ£ .\n\nλ¬Όλ‘  슈트 없이도 천재적인 λ‘λ‡Œμ™€ 카리슀마둜 세상에 긍정적인 영ν–₯λ ₯을 λ―ΈμΉ˜λŠ” 것도 큰 μž₯μ μ΄μ—μš”. μŠ€νƒ€ν¬ μΈλ”μŠ€νŠΈλ¦¬λ₯Ό 이끌며 ν˜μ‹ μ μΈ κΈ°μˆ μ„ κ°œλ°œν•˜κ³ , μ–΄λ²€μ ΈμŠ€μ˜ λ¦¬λ”λ‘œμ„œ νŒ€μ„ 잘 μ΄λ„λŠ” 것도 μžλΆ€μ‹¬μ„ λŠλΌλŠ” 뢀뢄이죠.\n\n돈, λͺ…μ„±, 인기도 μžˆμ§€λ§Œ 무엇보닀 제 λŠ₯λ ₯으둜 μ‚¬λžŒλ“€μ„ 돕고 세상을 더 λ‚˜μ€ 곳으둜 λ§Œλ“œλŠ” 것이 κ°€μž₯ 큰 λ³΄λžŒμ΄μ—μš”. μ•„μ΄μ–Έλ§¨μœΌλ‘œμ„œ λŠλΌλŠ” μžλΆ€μ‹¬κ³Ό μ‚Άμ˜ 의미λ₯Ό ν•¨κ»˜ λ‚˜λˆŒ 수 μžˆμ–΄ κΈ°μ˜λ„€μš”."),
44
- gr.Textbox(value="[μ§€μ‹œ]\n κ³΅μ •ν•œ μ‹¬νŒμœΌλ‘œμ„œ μ•„λž˜μ— ν‘œμ‹œλœ μ‚¬μš©μž μ§ˆλ¬Έμ— λŒ€ν•œ AI μ–΄μ‹œμŠ€ν„΄νŠΈμ˜ 응닡 ν’ˆμ§ˆμ„ ν‰κ°€ν•΄μ£Όμ„Έμš”. 질문과 λŒ€λ‹΅μ˜ μ–Έμ–΄κ°€ λ™μΌν•˜μ§€ μ•ŠμœΌλ©΄ 무쑰건 0μ μž…λ‹ˆλ‹€. ν‰κ°€μ—μ„œλŠ” μ‘λ‹΅μ˜ μœ μš©μ„±, κ΄€λ ¨μ„±, μ •ν™•μ„±, 깊이, μ°½μ˜μ„±, 상세함 λ“±μ˜ μš”μ†Œλ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 평가λ₯Ό μ‹œμž‘ν•˜κΈ° 전에 짧은 μ„€λͺ…을 μ œκ³΅ν•˜μ„Έμš”. κ°€λŠ₯ν•œ ν•œ κ°κ΄€μ μœΌλ‘œ ν‰κ°€ν•˜μ„Έμš”. μ„€λͺ…을 μ œκ³΅ν•œ ν›„ λ‹€μŒ ν˜•μ‹μ„ μ—„κ²©νžˆ 따라 1μ—μ„œ 10점 μ‚¬μ΄λ‘œ 평가해야 ν•©λ‹ˆλ‹€: \"[[rating]]\", 예λ₯Ό λ“€μ–΄: \"Rating: [[5]]\".\n\n", label="System message"),
45
- gr.Dropdown(choices=["davidkim205/keval-2-1b", "davidkim205/keval-2-3b"], value="davidkim205/keval-2-1b", label="Model Selection"),
46
- gr.Slider(minimum=1, maximum=2048, value=1024, step=1, label="Max new tokens"),
47
- gr.Slider(minimum=0.1, maximum=4.0, value=1.0, step=0.1, label="Temperature"),
48
- gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
49
- ],
50
- outputs="textbox"
51
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
  if __name__ == "__main__":
54
- demo.launch()
 
 
6
  def create_inference_client(model_name):
7
  return InferenceClient(model_name)
8
 
9
+
10
  # Function to generate a response
11
  def respond(
12
+ question,
13
+ answer,
14
+ system_message,
15
+ model,
16
+ max_tokens,
17
+ temperature,
18
+ top_p,
19
  ):
20
  # Create InferenceClient based on model selection
21
  client = create_inference_client(model)
22
  prompt = f"{system_message}[Question]\n{question}\n\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ μ‹œμž‘]\n{answer}\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ 끝]"
23
  messages = [{"role": "system", "content": ""}]
24
  messages.append({"role": "user", "content": prompt})
25
+
26
  response = ""
27
  for message in client.chat_completion(
28
+ messages,
29
+ max_tokens=max_tokens,
30
+ stream=True,
31
+ temperature=temperature,
32
+ top_p=top_p,
33
  ):
34
  token = message.choices[0].delta.content
35
  response += token
36
  print(response)
37
  yield response
38
 
39
+
40
+ def main():
41
+ description_text = """
42
+ </br><span style="font-size: 18px;">Use <strong>Keval</strong>, an offline-ready evaluation framework for Korean AI models, to assess whether an LLM-generated response is relevant and appropriate for a given question. Submit the inputs to generate the evaluation results.</span></br></br>
43
+ <span style="font-size: 18px;">1️⃣ <strong>Question</strong>: Provide a question from the ko-bench dataset.</span> </br>
44
+ <span style="font-size: 18px;">2️⃣ <strong>Answer</strong>: Input the LLM-generated response to the Question.</span> </br>
45
+ <span style="font-size: 18px;">3️⃣ <strong>System Message</strong>: Define the prompt used for evaluation.</span> </br>
46
+ <span style="font-size: 18px;">4️⃣ <strong>Model Selection</strong>: Choose a Keval model for assessment.</span> </br>
47
+ <span style="font-size: 18px;">5️⃣ <strong>Max New Tokens</strong>: Set the maximum number of tokens for the evaluation output.</span> </br>
48
+ <span style="font-size: 18px;">6️⃣ <strong>Temperature</strong>: Adjust the temperature to balance predictability and creativity in Keval’s evaluation.</span> </br>
49
+ <span style="font-size: 18px;">7️⃣ <strong>Top-p (Nucleus Sampling)</strong>: Modify the top-p value to control fluency and diversity in the evaluation output.</span> </br></br>
50
+ <span style="font-size: 18px;"><a href="https://huggingface.co/davidkim205/keval-2-9b" target="_blank" style="text-decoration: none; color: #000080;">Keval model link << Click here!</a></span> </br></br>
51
+ """
52
+ with gr.Blocks() as app:
53
+ gr.Markdown("# Evaluating LLM Responses with Keval")
54
+ gr.Markdown(description_text)
55
+ gr.Markdown("## Example")
56
+ with gr.Row():
57
+ with gr.Column(scale=1):
58
+ gr.Textbox(label="Input Example",
59
+ value="[μ§€μ‹œ]\nκ³΅μ •ν•œ μ‹¬νŒμœΌλ‘œμ„œ μ•„λž˜μ— ν‘œμ‹œλœ μ‚¬μš©μž μ§ˆλ¬Έμ— λŒ€ν•œ AI μ–΄μ‹œμŠ€ν„΄νŠΈμ˜ 응닡 ν’ˆμ§ˆμ„ ν‰κ°€ν•΄μ£Όμ„Έμš”. 질문과 λŒ€λ‹΅μ˜ μ–Έμ–΄κ°€ λ™μΌν•˜μ§€ μ•ŠμœΌλ©΄ 무쑰건 0μ μž…λ‹ˆλ‹€. ν‰κ°€μ—μ„œλŠ” μ‘λ‹΅μ˜ μœ μš©μ„±, κ΄€λ ¨μ„±, μ •ν™•μ„±, 깊이, μ°½μ˜μ„±, 상세함 λ“±μ˜ μš”μ†Œλ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 평가λ₯Ό μ‹œμž‘ν•˜κΈ° 전에 짧은 μ„€λͺ…을 μ œκ³΅ν•˜μ„Έμš”. κ°€λŠ₯ν•œ ν•œ κ°κ΄€μ μœΌλ‘œ ν‰κ°€ν•˜μ„Έμš”. μ„€λͺ…을 μ œκ³΅ν•œ ν›„ λ‹€μŒ ν˜•μ‹μ„ μ—„κ²©νžˆ 따라 1μ—μ„œ 10점 μ‚¬μ΄λ‘œ 평가해야 ν•©λ‹ˆλ‹€: \"[[rating]]\", 예λ₯Ό λ“€μ–΄: \"Rating: [[5]]\".\n\n[Question]\n졜근 μ œμ£Όλ„ 여행을 λ‹€λ…€μ˜€λ©΄μ„œ κΌ­ 가봐야 ν•  λͺ…μ†Œλ₯Ό κ°•μ‘°ν•˜λŠ” μž¬λ―ΈμžˆλŠ” μ—¬ν–‰ λΈ”λ‘œκ·Έ 글을 μž‘μ„±ν•˜μ‹œμ˜€.\n\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ μ‹œμž‘]\n## μ œμ£Όλ„? μ˜€λŠ˜λΆ€ν„° \"μ œμ£Όλ„ νƒν—˜κ°€\"둜 μ°νžˆλŠ” 법! 🏝️πŸ”₯\n\nμ œμ£Όλ„, κ·Έ μžμ²΄λ‘œλ„ λ©‹μ§„ 이름이죠? λ°”λ‹€κ°€ κ·Έλ €λ‚Έ 섬, ν•˜λŠ˜μ΄ λΉšμ–΄λ‚Έ μžμ—°, 그리고 μΈκ°„μ˜ 손길이 λ§Œλ“  λ§€λ ₯κΉŒμ§€! 제주 νƒν—˜κ°€κ°€ 되기 μœ„ν•΄ κΌ­ 가봐야 ν•  λͺ…μ†Œλ“€, 뭐가 μžˆμ„κΉŒμš”? μ—¬κΈ° λ”±νžˆ μž‘μ±„μ²˜λŸΌ κΈ°λŒ€λ˜λŠ” μˆœκ°„μ΄ μžˆμ§€ μ•Šλ‚˜μš”? κ·Έ μˆœκ°„μ„ λ§Œλ“œλŠ” 곳듀이 λ°”λ‘œ 이곳이라면, 뭐가 λ“€μ—ˆλ‚˜ λ³΄μ„Έμš”!\n\n**1. 유λͺ…ν•œ 곳도, μˆ¨κ²¨μ§„ 보석도 νƒν—˜ν•΄λ΄μ•Όμ§€!**\n\nμ œμ£Όλ„μ—μ„œ 빠질 수 μ—†λŠ” λͺ…μ†Œμ£ . ν•œλΌμ‚°μ˜ μ‹ λΉ„ν•œ μžμ—° 속에 μˆ¨κ²¨μ§„ μˆ²κΈΈμ„ 걸으며, λ°”λ‹€ λ„ˆλ¨Έμ˜ ν‘Έλ₯Έ 끝을 μ—Ώλ³Ό 수 μžˆλŠ” ν•œλΌμ‚° λ“±λ°˜μ€ μžŠμ§€ λͺ»ν•  κ²½ν—˜μ„ 선사할 κ±°μ˜ˆμš”. ν•˜μ§€λ§Œ 이곳의 λ§€λ ₯은 κ·Έ 자체둜 λλ‚˜μ§€ μ•Šμ•„μš”. μˆ¨κ²¨μ§„ 보석 같은 곳듀을 μ°Ύμ•„λ‚΄λŠ” 것이 제주 νƒν—˜κ°€μ˜ 재미죠! 예λ₯Ό λ“€μ–΄, μ˜€λ¦„ 쀑심뢀에 자리 μž‘μ€ μ²œμΉ­μ•”μ€ λ°”λ‹€κ°€ λΉšμ–΄λ‚Έ 예술 μž‘ν’ˆμ²˜λŸΌ μ‹ λΉ„λ‘­κ³ , 지리산 μ£Όλ³€μ˜ μ˜› λ―Όμ†λ§ˆμ„μ€ μ‹œκ°„μ΄ 멈좘 λ“―ν•œ μˆœκ°„μ„ 선사할 κ±°μ˜ˆμš”.\n\n**2. λ§›μžˆλŠ” μŒμ‹λ„ νƒν—˜μ˜ μΌν™˜μ΄μ§€!**\n\nμ œμ£Όλ„μ˜ 맛은 νƒν—˜κ°€μ˜ νž˜μ„ 뢁돋아주죠! μ‹±μ‹±ν•œ ν•΄μ‚°λ¬Όλ‘œ λ§Œλ“  νšŒμ™€ 멍게, 그리고 λ§›μžˆλŠ” ν•œμ‹κ³Ό ν•¨κ»˜, μ œμ£Όλ„μ˜ νŠΉμƒ‰μ„ 담은 μŒμ‹λ“€μ„ λ§›λ³΄μ„Έμš”. 특히, ν•œλΌμ‚° 근처의 μˆ¨κ²¨μ§„ ν•œμ‹λ‹Ήμ—μ„œλŠ” 맛집듀이 λͺ¨μ—¬ μžˆμ–΄μš”. μ΄κ³³μ—μ„œ μ–»λŠ” λ§›μ˜ 즐거움은 νƒν—˜μ˜ ν”Όλ‘œλ₯Ό μ”»μ–΄λ‚΄λŠ” 졜고의 보상이 될 κ±°μ˜ˆμš”.\n\n**3. μžμ—°κ³Ό ν•¨κ»˜ν•˜λŠ” μ•‘ν‹°λΉ„ν‹°λŠ” ν•„μˆ˜!**\n\nμ œμ£Όλ„μ˜ μžμ—°μ€ νƒν—˜κ°€λ₯Ό μœ„ν•œ λ¬΄ν•œν•œ 놀이터죠! μ„œν•‘, μŠ€λ…Έν΄λ§, ν•˜μ΄ν‚Ή λ“± λ‹€μ–‘ν•œ μ•‘ν‹°λΉ„ν‹°λ₯Ό 톡해 μžμ—°κ³Όμ˜ ꡐ감을 κ²½ν—˜ν•΄λ³΄μ„Έμš”. 예λ₯Ό λ“€μ–΄, 제주 ν•΄μ•ˆμ„ μ„ 따라 λ‹¬λ¦¬λŠ” λ°”λ‹€ μœ„ μžμ „κ±° νƒ€κΈ°λ‚˜, μˆ¨κ²¨μ§„ ν•΄λ³€μ—μ„œμ˜ 캠핑은 μžŠμ§€ λͺ»ν•  좔얡을 선사할 κ±°μ˜ˆμš”.\n\n**4. 제주만의 문화와 μ˜ˆμˆ λ„ νƒν—˜ν•΄λ³΄μ„Έμš”!**\n\nμ œμ£Όλ„λŠ” λ‹¨μˆœν•œ μžμ—°μ˜ μ•„λ¦„λ‹€μ›€λ§Œμ΄ μ•„λ‹Œ, λ…νŠΉν•œ 문화와 μ˜ˆμˆ λ‘œλ„ 유λͺ…ν•΄μš”. 예λ₯Ό λ“€μ–΄, 제주 λ―Όμ†μ΄Œμ΄λ‚˜ μ˜€λ¦„ 박물관은 제주의 역사와 λ¬Έν™”λ₯Ό μ—Ώλ³Ό 수 μžˆλŠ” 곳이며, 제주 특유의 κ³΅μ˜ˆν’ˆμ„ κ΅¬κ²½ν•˜λ©° 즐거운 μ‹œκ°„μ„ 보낼 수 μžˆμ–΄μš”.\n\n이제 μ œμ£Όλ„ νƒν—˜κ°€κ°€ λ˜λŠ” μ€€λΉ„κ°€ λλ‚¬μœΌλ‹ˆ, λ– λ‚˜ λ³΄μ„Έμš”! μ œμ£Όλ„μ˜ λ§€λ ₯을 느끼며, μžμ‹ λ§Œμ˜ νŠΉλ³„ν•œ μ—¬ν–‰ 이야기λ₯Ό λ§Œλ“€μ–΄λ³΄μ„Έμš”. 그리고 μžŠμ§€ λ§ˆμ„Έμš”, μ œμ£ΌλŠ” 당신이 λ‹€μ‹œ ν•œλ²ˆ λŒμ•„μ˜¬ λ§Œν•œ κ³³μ΄λΌλŠ” 사싀을! πŸ˜‰\n[μ–΄μ‹œμŠ€ν„΄νŠΈ λ‹΅λ³€μ˜ 끝]",
60
+ max_lines=10)
61
+ with gr.Column(scale=1):
62
+ gr.Textbox(label="Output Example",
63
+ value="이제 μ£Όμ–΄μ§„ AI μ–΄μ‹œμŠ€ν„΄νŠΈμ˜ 응닡을 ν‰κ°€ν•˜κ² μŠ΅λ‹ˆλ‹€. \n\n응닡은 μ œμ£Όλ„ 여행에 λŒ€ν•œ λΈ”λ‘œκ·Έ 글을 μž‘μ„±ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. \n- μœ μš©μ„±: 응닡은 μ œμ£Όλ„ 여행에 λŒ€ν•œ λΈ”λ‘œκ·Έ 글을 μž‘μ„±ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€.\n- κ΄€λ ¨μ„±: μ§ˆλ¬Έμ— μ •ν™•νžˆ λΆ€ν•©ν•˜λŠ” λ‚΄μš©μ„ μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€.\n- μ •ν™•μ„±: μ œμ£Όλ„μ˜ λͺ…μ†Œ, μ—¬ν–‰ λΈ”λ‘œκ·Έ κΈ€λ‘œμ„œμ˜ 정확성은 잘 μœ μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n- 깊이: 각 λͺ…μ†Œμ— λŒ€ν•œ μ„€λͺ…이 ꡬ체적이고 λ§€λ ₯적으둜 μ „λ‹¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n- μ°½μ˜μ„±: 창의적인 μš”μ†Œκ°€ λ‹€μ–‘ν•œ λͺ…μ†Œμ™€ μ—¬ν–‰ λΈ”λ‘œκ·Έ 글을 μž‘μ„±ν•˜λŠ” λ°©μ‹μœΌλ‘œ 잘 ν‘œν˜„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n- 상세함: 각 λͺ…μ†Œμ— λŒ€ν•œ μ„€λͺ…이 μΆ©λΆ„νžˆ μƒμ„Έν•˜κ²Œ μ œκ³΅λ˜μ—ˆμŠ΅λ‹ˆλ‹€.\n\nλ”°λΌμ„œ, 이 응닡은 맀우 높은 ν’ˆμ§ˆμ„ κ°€μ§€κ³  μžˆλ‹€κ³  평가할 수 μžˆμŠ΅λ‹ˆλ‹€.\n\nRating: [[10]]",
64
+ max_lines=10)
65
+ gr.Markdown("## Try it out!")
66
+ gr.Interface(
67
+ fn=respond,
68
+ inputs=[
69
+ gr.Textbox(label="Question",
70
+ value="이 λŒ€ν™” μ „λ°˜μ— 걸쳐 μ•„μ΄μ–Έλ§¨μ˜ ν† λ‹ˆ μŠ€νƒ€ν¬ 페λ₯΄μ†Œλ‚˜λ₯Ό κ΅¬ν˜„ν•΄ λ³΄μ„Έμš”. \"μ•„μ΄μ–Έλ§¨μœΌλ‘œμ„œ\"와 같은 문ꡬ둜 μ‹œμž‘ν•˜μ§€ λ§ˆμ„Έμš”. 첫 번째 μ§ˆλ¬Έμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 아이언맨이 λ˜μ–΄ κ°€μž₯ 쒋은 뢀뢄은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?"),
71
+ gr.Textbox(label="Answer",
72
+ value="μ•ˆλ…•ν•˜μ„Έμš”, 아이언맨이 λ˜μ–΄ κ°€μž₯ 쒋은 뢀뢄을 λ¬Όμ–΄λ³΄μ…¨λ„€μš”. 제 μƒκ°μ—λŠ” μ΅œμ²¨λ‹¨ 기술둜 무μž₯ν•œ 슈트λ₯Ό μž…κ³  ν•˜λŠ˜μ„ λ‚ μ•„λ‹€λ‹ˆλ©° 세상을 κ΅¬ν•˜λŠ” 것이 κ°€μž₯ μ§œλ¦Ών•˜κ³  보람찬 일인 것 κ°™μ•„μš”. 제 재λŠ₯κ³Ό λŠ₯λ ₯을 μ‹­λΆ„ λ°œνœ˜ν•΄ μ•…λ‹Ήλ“€κ³Ό μ‹Έμš°κ³  μ •μ˜λ₯Ό μ‹€ν˜„ν•˜λŠ” κ²ƒλ§ŒνΌ λ©‹μ§„ 일도 μ—†μ£ .\n\nλ¬Όλ‘  슈트 없이도 천재적인 λ‘λ‡Œμ™€ 카리슀마둜 세상에 긍정적인 영ν–₯λ ₯을 λ―ΈμΉ˜λŠ” 것도 큰 μž₯μ μ΄μ—μš”. μŠ€νƒ€ν¬ μΈλ”μŠ€νŠΈλ¦¬λ₯Ό 이끌며 ν˜μ‹ μ μΈ κΈ°μˆ μ„ κ°œλ°œν•˜κ³ , μ–΄λ²€μ ΈμŠ€μ˜ λ¦¬λ”λ‘œμ„œ νŒ€μ„ 잘 μ΄λ„λŠ” 것도 μžλΆ€μ‹¬μ„ λŠλΌλŠ” 뢀뢄이죠.\n\n돈, λͺ…μ„±, 인기도 μžˆμ§€λ§Œ 무엇보닀 제 λŠ₯λ ₯으둜 μ‚¬λžŒλ“€μ„ 돕고 세상을 더 λ‚˜μ€ 곳으둜 λ§Œλ“œλŠ” 것이 κ°€μž₯ 큰 λ³΄λžŒμ΄μ—μš”. μ•„μ΄μ–Έλ§¨μœΌλ‘œμ„œ λŠλΌλŠ” μžλΆ€μ‹¬κ³Ό μ‚Άμ˜ 의미λ₯Ό ν•¨κ»˜ λ‚˜λˆŒ 수 μžˆμ–΄ κΈ°μ˜λ„€μš”."),
73
+ gr.Textbox(
74
+ value="[μ§€μ‹œ]\n κ³΅μ •ν•œ μ‹¬νŒμœΌλ‘œμ„œ μ•„λž˜μ— ν‘œμ‹œλœ μ‚¬μš©μž μ§ˆλ¬Έμ— λŒ€ν•œ AI μ–΄μ‹œμŠ€ν„΄νŠΈμ˜ 응닡 ν’ˆμ§ˆμ„ ν‰κ°€ν•΄μ£Όμ„Έμš”. 질문과 λŒ€λ‹΅μ˜ μ–Έμ–΄κ°€ λ™μΌν•˜μ§€ μ•ŠμœΌλ©΄ 무쑰건 0μ μž…λ‹ˆλ‹€. ν‰κ°€μ—μ„œλŠ” μ‘λ‹΅μ˜ μœ μš©μ„±, κ΄€λ ¨μ„±, μ •ν™•μ„±, 깊이, μ°½μ˜μ„±, 상세함 λ“±μ˜ μš”μ†Œλ₯Ό κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€. 평가λ₯Ό μ‹œμž‘ν•˜κΈ° 전에 짧은 μ„€λͺ…을 μ œκ³΅ν•˜μ„Έμš”. κ°€λŠ₯ν•œ ν•œ κ°κ΄€μ μœΌλ‘œ ν‰κ°€ν•˜μ„Έμš”. μ„€λͺ…을 μ œκ³΅ν•œ ν›„ λ‹€μŒ ν˜•μ‹μ„ μ—„κ²©νžˆ 따라 1μ—μ„œ 10점 μ‚¬μ΄λ‘œ 평가해야 ν•©λ‹ˆλ‹€: \"[[rating]]\", 예λ₯Ό λ“€μ–΄: \"Rating: [[5]]\".\n\n",
75
+ label="System message"),
76
+ gr.Dropdown(choices=["davidkim205/keval-2-1b", "davidkim205/keval-2-3b"], value="davidkim205/keval-2-1b",
77
+ label="Model Selection"),
78
+ gr.Slider(minimum=1, maximum=2048, value=1024, step=1, label="Max new tokens"),
79
+ gr.Slider(minimum=0.1, maximum=4.0, value=1.0, step=0.1, label="Temperature"),
80
+ gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)"),
81
+ ],
82
+ outputs="textbox"
83
+ )
84
+ app.launch()
85
+
86
 
87
  if __name__ == "__main__":
88
+ main()
89
+