aliceblue11 commited on
Commit
c56361e
·
verified ·
1 Parent(s): 4f96c65

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -30
app.py CHANGED
@@ -15,46 +15,42 @@ def get_client():
15
  raise ValueError("HuggingFace API 토큰이 필요합니다.")
16
  return InferenceClient(COHERE_MODEL, token=hf_token)
17
 
18
- def respond_cohere_qna(question, system_message, max_tokens, temperature, top_p):
19
  """
20
- Cohere Command R+ 모델을 이용해 한 번의 질문(question)에 대한 답변을 반환하는 함수.
21
  """
22
  try:
23
  client = get_client()
24
- messages = [
25
- {"role": "system", "content": system_message},
26
- {"role": "user", "content": question}
27
- ]
28
- response = client.chat_completion(
29
- messages,
30
- max_tokens=max_tokens,
31
- temperature=temperature,
32
- top_p=top_p,
33
  )
34
- return response.choices[0].message.content
35
  except Exception as e:
36
  return f"오류가 발생했습니다: {str(e)}"
37
 
38
  # Gradio UI 구성
39
  with gr.Blocks() as demo:
40
- gr.Markdown("# Cohere Command R+ 번역기")
41
 
42
- # 입력 텍스트
43
- input_text = gr.Textbox(label="입력 텍스트", lines=5)
 
 
 
 
 
 
 
 
 
44
 
45
- # 고급 설정
46
- with gr.Accordion("고급 설정 (Cohere)", open=False):
47
- system_message = gr.Textbox(
48
- value="""반드시 한글로 답변할 것.
49
- 너는 최고의 비서이다.
50
- 내가 요구하는것들을 최대한 자세하고 정확하게 답변하라.
51
- """,
52
- label="System Message",
53
- lines=3
54
- )
55
- max_tokens = gr.Slider(minimum=100, maximum=10000, value=4000, step=100, label="Max Tokens")
56
- temperature = gr.Slider(minimum=0.1, maximum=2.0, value=0.7, step=0.1, label="Temperature")
57
- top_p = gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-P")
58
 
59
  # 번역 결과
60
  translation_output = gr.Textbox(label="번역 결과", lines=5, interactive=False)
@@ -64,8 +60,8 @@ with gr.Blocks() as demo:
64
 
65
  # 번역 함수 연결
66
  translate_button.click(
67
- fn=respond_cohere_qna,
68
- inputs=[input_text, system_message, max_tokens, temperature, top_p],
69
  outputs=translation_output
70
  )
71
 
 
15
  raise ValueError("HuggingFace API 토큰이 필요합니다.")
16
  return InferenceClient(COHERE_MODEL, token=hf_token)
17
 
18
+ def translate_text(text, source_lang, target_lang):
19
  """
20
+ 텍스트를 번역하는 함수.
21
  """
22
  try:
23
  client = get_client()
24
+ # 프롬프트를 단순화하여 번역만 수행하도록 지시
25
+ prompt = f"Translate the following text from {source_lang} to {target_lang}: '{text}'. Do not add any extra explanations."
26
+ response = client.text_generation(
27
+ prompt,
28
+ max_new_tokens=100, # 불필요한 텍스트 생성을 방지하기 위해 토큰 수 제한
29
+ temperature=0.3, # 창의성을 낮춰 정확한 번역 유도
30
+ top_p=0.9 # 높은 확률의 단어만 선택하도록 설정
 
 
31
  )
32
+ return response.strip() # 불필요한 공백 제거
33
  except Exception as e:
34
  return f"오류가 발생했습니다: {str(e)}"
35
 
36
  # Gradio UI 구성
37
  with gr.Blocks() as demo:
38
+ gr.Markdown("# 한국어 영어 번역기")
39
 
40
+ # 언어 선택
41
+ source_lang = gr.Radio(
42
+ choices=["한국어", "영어"],
43
+ label="원본 언어",
44
+ value="한국어"
45
+ )
46
+ target_lang = gr.Radio(
47
+ choices=["한국어", "영어"],
48
+ label="목표 언어",
49
+ value="영어"
50
+ )
51
 
52
+ # 입력 텍스트
53
+ input_text = gr.Textbox(label="번역할 텍스트", lines=5)
 
 
 
 
 
 
 
 
 
 
 
54
 
55
  # 번역 결과
56
  translation_output = gr.Textbox(label="번역 결과", lines=5, interactive=False)
 
60
 
61
  # 번역 함수 연결
62
  translate_button.click(
63
+ fn=translate_text,
64
+ inputs=[input_text, source_lang, target_lang],
65
  outputs=translation_output
66
  )
67