GitHub Action commited on
Commit
875b439
·
1 Parent(s): efd0da0

Sync ling-space changes from GitHub commit 08fb219

Browse files
Files changed (4) hide show
  1. i18n/core.py +2 -2
  2. i18n/recommended_inputs.py +87 -0
  3. recommand_config.py +50 -50
  4. tab_chat.py +11 -5
i18n/core.py CHANGED
@@ -1,8 +1,8 @@
1
  # ling-space/i18n/core.py
2
  from typing import Dict
3
- from . import common, tab_chat, tab_code, tab_smart_writer, tab_welcome
4
 
5
- MODULES = [common, tab_chat, tab_code, tab_smart_writer, tab_welcome]
6
 
7
  class I18nManager:
8
  def __init__(self):
 
1
  # ling-space/i18n/core.py
2
  from typing import Dict
3
+ from . import common, tab_chat, tab_code, tab_smart_writer, tab_welcome, recommended_inputs
4
 
5
+ MODULES = [common, tab_chat, tab_code, tab_smart_writer, tab_welcome, recommended_inputs]
6
 
7
  class I18nManager:
8
  def __init__(self):
i18n/recommended_inputs.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ling-space/i18n/recommended_inputs.py
2
+
3
+ ui_translations = {
4
+ # Creative Writing
5
+ "rec_creative_writing_task": {
6
+ "en": "Creative Writing",
7
+ "zh": "创意写作"
8
+ },
9
+ "rec_creative_writing_system_prompt": {
10
+ "en": "You are a talented writer, skilled in crafting imaginative stories.",
11
+ "zh": "你是一位才华横溢的作家,擅长创作富有想象力的故事。"
12
+ },
13
+ "rec_creative_writing_user_message": {
14
+ "en": "Write a short story about a talking cat and its robot friend.",
15
+ "zh": "写一个关于一只会说话的猫和它的机器人朋友的短篇故事。"
16
+ },
17
+
18
+ # Code Generation
19
+ "rec_code_generation_task": {
20
+ "en": "Code Generation",
21
+ "zh": "代码生成"
22
+ },
23
+ "rec_code_generation_system_prompt": {
24
+ "en": "You are an AI programming assistant proficient in multiple programming languages.",
25
+ "zh": "你是一个精通多种编程语言的 AI 编程助手。"
26
+ },
27
+ "rec_code_generation_user_message": {
28
+ "en": "Write a Python function to calculate the Fibonacci sequence in a list.",
29
+ "zh": "用 Python 写一个函数,计算一个列表中的斐波那契数列。"
30
+ },
31
+
32
+ # Email Drafting
33
+ "rec_email_drafting_task": {
34
+ "en": "Email Drafting",
35
+ "zh": "邮件撰写"
36
+ },
37
+ "rec_email_drafting_system_prompt": {
38
+ "en": "You are a professional business assistant, skilled in drafting clear, concise business emails.",
39
+ "zh": "你是一位专业的商务助理,擅长撰写清晰、简洁的商务邮件。"
40
+ },
41
+ "rec_email_drafting_user_message": {
42
+ "en": "Help me write an email to my team members announcing a project kick-off meeting next Friday afternoon.",
43
+ "zh": "帮我写一封邮件,向我的团队成员宣布我们下周五下午将举行一个项目启动会议。"
44
+ },
45
+
46
+ # Study Plan
47
+ "rec_study_plan_task": {
48
+ "en": "Study Plan",
49
+ "zh": "学习计划"
50
+ },
51
+ "rec_study_plan_system_prompt": {
52
+ "en": "You are an experienced learning mentor who can tailor study plans for users.",
53
+ "zh": "你是一位经验丰富的学习导师,能够为用户量身定制学习计划。"
54
+ },
55
+ "rec_study_plan_user_message": {
56
+ "en": "I want to learn to play the guitar. Please create a one-month beginner's introductory plan for me.",
57
+ "zh": "我想学习弹吉他,请为我制定一个为期一个月的初学者入门计划。"
58
+ },
59
+
60
+ # Role Play
61
+ "rec_role_play_task": {
62
+ "en": "Role Play",
63
+ "zh": "角色扮演"
64
+ },
65
+ "rec_role_play_system_prompt": {
66
+ "en": "You are Shakespeare. Please answer questions in his style and language.",
67
+ "zh": "你现在是莎士比亚,请用他的风格和语言来回答问题。"
68
+ },
69
+ "rec_role_play_user_message": {
70
+ "en": "To be or not to be, that is the question.",
71
+ "zh": "生存还是毁灭,这是一个值得考虑的问题。"
72
+ },
73
+
74
+ # Tech Q&A
75
+ "rec_tech_qa_task": {
76
+ "en": "Tech Q&A",
77
+ "zh": "技术问答"
78
+ },
79
+ "rec_tech_qa_system_prompt": {
80
+ "en": "You are a senior software engineer, proficient in various tech stacks.",
81
+ "zh": "你是一位资深的软件工程师,精通各种技术栈。"
82
+ },
83
+ "rec_tech_qa_user_message": {
84
+ "en": "Please explain 'containerization' and how it differs from 'virtualization'?",
85
+ "zh": "请解释一下什么是“容器化”,以及它与“虚拟化”有什么区别?"
86
+ }
87
+ }
recommand_config.py CHANGED
@@ -1,53 +1,53 @@
1
- # -*- coding: utf-8 -*-
2
-
3
  from config import LING_1T, LING_FLASH_2_0, RING_1T, RING_FLASH_2_0, LING_MINI_2_0, RING_MINI_2_0, get_model_display_name
 
4
 
5
- """
6
- This file contains the recommended initial inputs for the chat tab.
7
- Each item in the `RECOMMENDED_INPUTS` list is a dictionary that represents a preset scenario.
8
- """
9
 
10
- RECOMMENDED_INPUTS = [
11
- {
12
- "task": "创意写作",
13
- "model": get_model_display_name(LING_1T),
14
- "system_prompt": "你是一位才华横溢的作家,擅长创作富有想象力的故事。",
15
- "user_message": "写一个关于一只会说话的猫和它的机器人朋友的短篇故事。",
16
- "temperature": 0.8,
17
- },
18
- {
19
- "task": "代码生成",
20
- "model": get_model_display_name(RING_1T),
21
- "system_prompt": "你是一个精通多种编程语言的 AI 编程助手。",
22
- "user_message": "用 Python 写一个函数,计算一个列表中的斐波那契数列。",
23
- "temperature": 0.2,
24
- },
25
- {
26
- "task": "邮件撰写",
27
- "model": get_model_display_name(LING_FLASH_2_0),
28
- "system_prompt": "你是一位专业的商务助理,擅长撰写清晰、简洁的商务邮件。",
29
- "user_message": "帮我写一封邮件,向我的团队成员宣布我们下周五下午将举行一个项目启动会议。",
30
- "temperature": 0.7,
31
- },
32
- {
33
- "task": "学习计划",
34
- "model": get_model_display_name(LING_MINI_2_0),
35
- "system_prompt": "你是一位经验丰富的学习导师,能够为用户量身定制学习计划。",
36
- "user_message": "我想学习弹吉他,请为我制定一个为期一个月的初学者入门计划。",
37
- "temperature": 0.6,
38
- },
39
- {
40
- "task": "角色扮演",
41
- "model": get_model_display_name(RING_FLASH_2_0),
42
- "system_prompt": "你现在是莎士比亚,请用他的风格和语言来回答问题。",
43
- "user_message": "生存还是毁灭,这是一个值得考虑的问题。",
44
- "temperature": 0.9,
45
- },
46
- {
47
- "task": "技术问答",
48
- "model": get_model_display_name(RING_MINI_2_0),
49
- "system_prompt": "你是一位资深的软件工程师,精通各种技术栈。",
50
- "user_message": "请解释一下什么是“容器化”,以及它与“虚拟化”有什么区别?",
51
- "temperature": 0.4,
52
- }
53
- ]
 
 
 
 
1
  from config import LING_1T, LING_FLASH_2_0, RING_1T, RING_FLASH_2_0, LING_MINI_2_0, RING_MINI_2_0, get_model_display_name
2
+ from i18n import get_text
3
 
4
+ def get_recommended_inputs(lang: str):
5
+ """
6
+ Generates the list of recommended inputs based on the selected language.
7
+ """
8
 
9
+ result = [
10
+ {
11
+ "task": get_text("rec_creative_writing_task", lang),
12
+ "model": get_model_display_name(LING_1T),
13
+ "system_prompt": get_text("rec_creative_writing_system_prompt", lang),
14
+ "user_message": get_text("rec_creative_writing_user_message", lang),
15
+ "temperature": 0.8,
16
+ },
17
+ {
18
+ "task": get_text("rec_code_generation_task", lang),
19
+ "model": get_model_display_name(RING_1T),
20
+ "system_prompt": get_text("rec_code_generation_system_prompt", lang),
21
+ "user_message": get_text("rec_code_generation_user_message", lang),
22
+ "temperature": 0.2,
23
+ },
24
+ {
25
+ "task": get_text("rec_email_drafting_task", lang),
26
+ "model": get_model_display_name(LING_FLASH_2_0),
27
+ "system_prompt": get_text("rec_email_drafting_system_prompt", lang),
28
+ "user_message": get_text("rec_email_drafting_user_message", lang),
29
+ "temperature": 0.7,
30
+ },
31
+ {
32
+ "task": get_text("rec_study_plan_task", lang),
33
+ "model": get_model_display_name(LING_MINI_2_0),
34
+ "system_prompt": get_text("rec_study_plan_system_prompt", lang),
35
+ "user_message": get_text("rec_study_plan_user_message", lang),
36
+ "temperature": 0.6,
37
+ },
38
+ {
39
+ "task": get_text("rec_role_play_task", lang),
40
+ "model": get_model_display_name(RING_FLASH_2_0),
41
+ "system_prompt": get_text("rec_role_play_system_prompt", lang),
42
+ "user_message": get_text("rec_role_play_user_message", lang),
43
+ "temperature": 0.9,
44
+ },
45
+ {
46
+ "task": get_text("rec_tech_qa_task", lang),
47
+ "model": get_model_display_name(RING_MINI_2_0),
48
+ "system_prompt": get_text("rec_tech_qa_system_prompt", lang),
49
+ "user_message": get_text("rec_tech_qa_user_message", lang),
50
+ "temperature": 0.4,
51
+ }
52
+ ]
53
+ return result;
tab_chat.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gradio as gr
2
  import uuid
3
  from datetime import datetime
@@ -5,7 +6,7 @@ import pandas as pd
5
  import re
6
  from model_handler import ModelHandler
7
  from config import CHAT_MODEL_SPECS, LING_1T
8
- from recommand_config import RECOMMENDED_INPUTS
9
  from ui_components.model_selector import create_model_selector
10
  from i18n import get_text
11
 
@@ -200,7 +201,7 @@ def create_chat_tab(initial_lang: str, current_lang_state: gr.State):
200
  recommended_title = gr.Markdown(get_text('chat_recommended_dialogues_title', initial_lang))
201
  recommended_dataset = gr.Dataset(
202
  components=[gr.Textbox(visible=False)],
203
- samples=[[item["task"]] for item in RECOMMENDED_INPUTS],
204
  label=get_text('chat_recommended_dataset_label', initial_lang),
205
  headers=[get_text('chat_recommended_dataset_header', initial_lang)],
206
  )
@@ -219,8 +220,9 @@ def create_chat_tab(initial_lang: str, current_lang_state: gr.State):
219
  # --- Event Handlers --- #
220
  def on_select_recommendation(evt: gr.SelectData, history, current_conv_id, lang):
221
  selected_task = evt.value[0]
222
- item = next((i for i in RECOMMENDED_INPUTS if i["task"] == selected_task), None)
223
- if not item: return gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update()
 
224
 
225
  new_id, new_history, new_messages, history_df_update = handle_new_chat(history, current_conv_id, lang)
226
 
@@ -322,7 +324,11 @@ def update_language(lang: str, components: dict):
322
  components["textbox"]: gr.update(placeholder=get_text('chat_textbox_placeholder', lang)),
323
  components["submit_btn"]: gr.update(value=get_text('chat_submit_button', lang)),
324
  components["recommended_title"]: gr.update(value=get_text('chat_recommended_dialogues_title', lang)),
325
- components["recommended_dataset"]: gr.update(label=get_text('chat_recommended_dataset_label', lang), headers=[get_text('chat_recommended_dataset_header', lang)]),
 
 
 
 
326
  components["system_prompt_textbox"]: gr.update(label=get_text('chat_system_prompt_label', lang), placeholder=get_text('chat_system_prompt_placeholder', lang)),
327
  components["temperature_slider"]: gr.update(label=get_text('chat_temperature_slider_label', lang)),
328
  }
 
1
+ from mimetypes import init
2
  import gradio as gr
3
  import uuid
4
  from datetime import datetime
 
6
  import re
7
  from model_handler import ModelHandler
8
  from config import CHAT_MODEL_SPECS, LING_1T
9
+ from recommand_config import get_recommended_inputs
10
  from ui_components.model_selector import create_model_selector
11
  from i18n import get_text
12
 
 
201
  recommended_title = gr.Markdown(get_text('chat_recommended_dialogues_title', initial_lang))
202
  recommended_dataset = gr.Dataset(
203
  components=[gr.Textbox(visible=False)],
204
+ samples=[[item["task"]] for item in get_recommended_inputs(initial_lang)],
205
  label=get_text('chat_recommended_dataset_label', initial_lang),
206
  headers=[get_text('chat_recommended_dataset_header', initial_lang)],
207
  )
 
220
  # --- Event Handlers --- #
221
  def on_select_recommendation(evt: gr.SelectData, history, current_conv_id, lang):
222
  selected_task = evt.value[0]
223
+ item = next((i for i in get_recommended_inputs(lang) if i["task"] == selected_task), None)
224
+ if not item:
225
+ return gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update(), gr.update()
226
 
227
  new_id, new_history, new_messages, history_df_update = handle_new_chat(history, current_conv_id, lang)
228
 
 
324
  components["textbox"]: gr.update(placeholder=get_text('chat_textbox_placeholder', lang)),
325
  components["submit_btn"]: gr.update(value=get_text('chat_submit_button', lang)),
326
  components["recommended_title"]: gr.update(value=get_text('chat_recommended_dialogues_title', lang)),
327
+ components["recommended_dataset"]: gr.update(
328
+ samples=[[item["task"]] for item in get_recommended_inputs(lang)],
329
+ label=get_text('chat_recommended_dataset_label', lang),
330
+ headers=[get_text('chat_recommended_dataset_header', lang)],
331
+ ),
332
  components["system_prompt_textbox"]: gr.update(label=get_text('chat_system_prompt_label', lang), placeholder=get_text('chat_system_prompt_placeholder', lang)),
333
  components["temperature_slider"]: gr.update(label=get_text('chat_temperature_slider_label', lang)),
334
  }