Files changed (3) hide show
  1. .streamlit/secrets.toml +0 -1
  2. app.py +41 -96
  3. requirements.txt +0 -2
.streamlit/secrets.toml DELETED
@@ -1 +0,0 @@
1
- token = "no_limit_token_for_insider"
 
 
app.py CHANGED
@@ -5,21 +5,15 @@ from enum import Enum
5
 
6
  st.header("WeLM Demo 初体验")
7
  st.text('Tips: ')
8
- st.text("* WeLM不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型")
9
- st.text("* 修改Prompt可以更多参考 https://welm.weixin.qq.com/docs/introduction/")
10
- st.text("* 你的输入可能会被我们拼接在预设的prompt尾部后再发送给API")
11
- st.text("* 在每个任务的下方我们展示了该任务请求API时完整的参数(包含完整的prompt)")
12
-
13
-
14
 
15
  class Task(str, Enum):
16
- DIALOG_JOURNAL = "对话(Elon musk)"
17
- QA = "问答"
18
- COPY= "文案生成"
19
- REWRITE = "文本改写"
20
  READING_COMPREHENSION = "阅读理解"
21
  TRANSLATE = "翻译"
22
- COMPLETION = "文章续写"
 
23
  FREE = "自由任务"
24
 
25
 
@@ -31,45 +25,23 @@ task_type = st.selectbox(
31
  )
32
  task_type = task_value2type[task_type]
33
 
34
- task2prompt_pre = {
35
- Task.READING_COMPREHENSION: """请阅读文章后根据文章内容给出问题的答案。
36
- 文章:中国空间技术研究院(China Academy of Space Technology,简称CAST)隶属于中国航天科技集团公司,是中国空间技术的主要研究中心和航天器研制、生产基地,成立于1968年2月20日。下设10个研究所和一个工厂。现任院长为杨保华,院党委书记为李开民。1970424日,中国空间技术研究院成功研制并发射了中国首颗人造地球卫星东方红一号。2003年10月,神舟五号载人飞船载人飞行取得成功。2005年,神舟六号载人飞船实现多人多天的太空飞行。截至2005年,中国空间技术研究院研制并成功发射了68颗不同类型的人造卫星、4艘无人试验飞船和2艘载人飞船,涵盖通信广播卫星、返回式遥感>卫星、地球资源卫星、气象卫星、科学探测与技术试验卫星、导航定位卫星和载人航天器等领域。
37
- 问题:中国空间技术研究院在哪年成立?
38
- 答案:1968年
39
- """,
40
- Task.QA: """请根据所学知识回答问题
41
- 问题:百年孤独的作者是?
42
- 回答:作者是哥伦比亚作家加西亚·马尔克斯,这本书是其代表作,也是拉丁美洲魔幻现实主义文学的代表作,被誉为“再现拉丁美洲历史社会图景的鸿篇巨著”。
43
- 问题:世界第二高峰是?
44
- 回答:乔戈里峰。海拔8611,海拔仅次于珠穆朗玛峰。“乔戈里”,通常被认为是塔吉克语,意思是“高大雄伟”。乔戈里山峰主要有6条山脊,西北—东南山脊为喀喇昆山脉主脊线,同时也是中国、巴基斯坦的国境线。
45
- """,
46
- Task.COPY: """请根据商品描述生成商品的文案
47
- 商品描述:芍药香氛的沐浴乳
48
- 文案:无比高大上的香味,淡粉色玫瑰清新诱人!沐浴后都充满着浪漫和幸福感,这样的情调会让你变得更加温柔。
49
- 商品描述:清爽去痘的洗面奶
50
- 文案:蕴含海藻精华,配合多种草本植物。能清洁毛孔污垢,保湿滋润肌肤,让细胞更健康、平衡水油分泌,消除痘痘同时预防痘痘产生,预防黑头粉刺及暗疮形成。""",
51
  Task.TRANSLATE: """“I had a good time”的中文翻译是:我玩得很开心。
52
  “The pandemic has triggered more demand for online shopping”的中文翻译是:疫情引发了更多的网购需求
53
- """,
54
- Task.DIALOG_JOURNAL: """以下是与Elon Musk的一系列对话。很多人都知道,Elon Musk是特斯拉、SpaceX、Neuralink和Boring公司的领导人。可能鲜为人知的是,他是一位世界级的���程师和设计师,不断强调第一原理的思考,并承担了许多在他之前的人认为不可能的大工程问题。Elon Musk 在2022年4月达成了一项有争议的交易,以440亿美元收购了twitter。经过无数次商业和法律上的对抗,收购于10月27日正式完成。收购后,马斯克立即解雇了公司的大部分员工,包括Twitter的高层管理人员。
55
- Elon Musk:你好,你想讨论什么?
56
- 提问者1:你为什么要收购Twitter?
57
- Elon Musk:Twitter已经是城市广场,影响力惊人。我相信我可以让它变得更好。这将使Twitter走上经济上可持续发展的道路,有助于保护文明的未来。我还为Twitter提出了许多令人兴奋的新的和有用的功能。这将会是一个很大的乐趣。
58
- Elon Musk:你好,你想讨论什么?
59
- 提问者2:你是谁?
60
- Elon Musk。我是Elon Musk,一个众所周知的科技企业家和许多公司的首席执行官。你呢,你是做什么的?
61
- Elon Musk: 你好,你想讨论什么?
62
- 提问者3:你和neuralink的一位执行官生了双胞胎吗?
63
- Elon Musk:我是在尽我所能帮助人口不足的危机。出生率的崩溃是迄今为止人类文明面临的最大危险。
64
- 提问者3: 你真的是Elon Musk吗?
65
- Elon Musk: 是的! 我现在在德克萨斯州,在我们的特斯拉总部呆了一段时间。刚从加州回来,我们正在为SpaceX的发射做准备,明天即将发表另一个TED演讲,这次是关于Neuralink。
66
- Elon Musk: 你好,你想讨论什么?
67
- 提问者4:你开的是什么类型的车?
68
- Elon Musk: 特斯拉Model S最多。时常开一辆Model X。
69
- 提问者4:你多大了?
70
- Elon Musk: 51岁,但我说我有40岁人的精力。在健康方面最重要的事情不仅仅是避免摄入过多的糖,还有高强度的运动。
71
- """,
72
-
73
  Task.REWRITE: """有这样一段文本,{医生微笑着递给小明棒棒糖,同时让小明服下了药。}
74
  改写这段话让它变得更加惊悚。{医生眼露凶光让小明服药,小明感到非常害怕}。
75
  有这样一段文本,{雨下得很大}
@@ -81,35 +53,20 @@ Elon Musk: 51岁,但我说我有40岁人的精力。在健康方面最重要
81
  有这样一段文本,{风铃声响起}
82
  改写这段话写的更加丰富。{我对这个风铃的感情是由它的铃声引起的。每当风吹来时,风铃发出非常动听的声音,听起来是那么乐观、豁达,像一个小女孩格格的笑声。}
83
  """,
84
- Task.COMPLETION: """
85
- """,
86
- Task.FREE: ""
87
- }
88
-
89
- task2prompt_end = {
90
- Task.READING_COMPREHENSION: """文章:“经审理查明,被告人张××、杜×、杨2某均为辽宁省辽阳第一监狱五监区服刑人员。2015年11月3日13时许,被告人张××、杜×因无事便跟随去催要生产材料的被告人杨2某一同前往六监区,在六监区生产车间门外,被告人杨2某与六监区送料员于×因送料问题发生争执,被告人杨2某上前拽住被害人于×胳膊并用手击打被害人后脖颈两下,被告人张××、杜×见杨2某动手后,先后上前分别对被害人于×面部、头部及腹部进行殴打,后被赶到的干警制止。被害人于×被打造成面部受伤,鼻子流血,当日下午14时许,到监区内医院就诊,诊断为:鼻部中段向左侧畸形,11月5日经监狱医院X光诊断为鼻骨骨折。2015年11月18日,经辽阳襄平法医司法鉴定所法医鉴定:被害人于×身体损伤程度为轻伤二级。被告人张××、杜×、杨2某共同赔偿被害人于×人民币7000元,被害人于×对被告人的行为表示谅解。”
91
- 问题: “被害人于×11月5日经监狱医院X光诊断后的诊断结果为?”
92
- 答案:""",
93
- Task.COPY: """商品描述:冬季百搭的外套
94
- 文案:""",
95
- Task.QA: """问题:四大名著分别是?
96
- 回答:""",
97
- Task.TRANSLATE: """“I am a programmer in Tencent”的中文翻译是:""",
98
- Task.DIALOG_JOURNAL: """Elon Musk: 你好,你想讨论什么?
99
- 我:收购Twitter之后你想做什么?
100
- Elon Musk:""",
101
- Task.REWRITE: """有这样一段文本,{我想家了}
102
- 改写这段话包含更多悲伤的感情。{""",
103
  Task.COMPLETION: """“八月十八潮,壮观天下无。”这是北宋大诗人苏东坡咏赞钱塘秋潮的千古名句。千百年来,钱塘江以其奇特卓绝的江潮,不知倾倒了多少游人看客。
104
- 每年的农历���月十八前后,是观潮的最佳时节。这期间,秋阳朗照,金风宜人,钱塘江口的海塘上,游客群集,兴致盎然,争睹奇景。""",
 
105
  Task.FREE: ""
106
  }
107
 
108
- prompt_fix = task2prompt_pre[Task[task_type]]
109
- prompt_user = task2prompt_end[Task[task_type]]
110
-
111
- user_input = st.text_area('你的输入(最终完整输入请见下方 API 请求内容)', value=prompt_user, height=180)
112
- all_input = prompt_fix + user_input
 
 
 
113
  all_input = all_input.rstrip('\\n')
114
 
115
 
@@ -161,14 +118,11 @@ def completion():
161
  if choice.get("finish_reason", None) != "finished":
162
  st.error(f'生成结果#{idx}出错: {choice["finish_reason"]}')
163
  elif choice.get("text", None) is None:
164
- st.error(f'生成结果#{idx}出错: internal error')
165
- else:
166
- text = choice.get("text", "")
167
- text = cut_message(text)
168
- if len(text) == 0:
169
- st.info(f'生成结果#{idx}: 结果为空,可能的原因:生成的第一个字符为stop字符,请合理配置prompt或stop')
170
- else:
171
- st.success(f'生成结果#{idx}: {text}')
172
 
173
  if task_type == 'COMPLETION':
174
  st.text('Tips: 可多次生成后复制你认为的最好结果拼接于原文后,让WeLM继续生成。')
@@ -177,34 +131,24 @@ def completion():
177
  st.error(f"生成结果出错:{str(e)}")
178
 
179
 
180
- code_str = """
181
- post_json = {{
182
- 'prompt': '{all_input}',
183
- 'model': '{model}',
184
- 'max_tokens': {max_tokens},
185
- 'temperature': {temperature},
186
- 'top_p': {top_p},
187
- 'top_k': {top_k},
188
- 'n': {n},
189
- "stop": '{stop_tokens}',
190
- }}
191
- """.format(all_input=all_input,model=model,max_tokens=max_tokens,temperature=temperature, top_p=top_p,top_k=top_k,n=n,stop_tokens=stop_tokens)
192
- st.code(code_str)
193
 
194
  if st.button('立即生成'):
195
  completion()
196
 
197
 
198
  footer="""<style>
 
199
  a:link , a:visited{
200
  background-color: transparent;
201
  text-decoration: none;
202
  color: rgb(7 6 17);
203
  }
 
204
  a:hover, a:active {
205
  background-color: transparent;
206
  text-decoration: underline;
207
  }
 
208
  .footer {
209
  position: relative;
210
  left: 0;
@@ -220,11 +164,12 @@ text-align: left;
220
  <br>
221
  <br>
222
  <br>
223
- <br>
224
  <p style="font-size:12px">声明(受<a href="https://beta.openai.com/docs/usage-guidelines/content-policy" target="_blank"> OpenAI GPT3's Content Policy </a>启发)</p>
 
225
  <p style="font-size:12px">我们禁止用户在知情的情况下产生或利用他人在知情的情况下产生有害内容,包括且不限于仇恨言论、骚扰信息、自我伤害内容、性内容、政治内容、垃圾邮件、诈骗信息等。<br>
226
  特别提示:本网页上产生的所有内容不代表本平台的观点和意见。<br>
227
  欲了解更多信息,请阅读我们的<a href="https://welm.weixin.qq.com/docs/license/" target="_blank">《服务使用协议》和《免责声明》</a>。</p>
228
  </div>
229
  """
230
- st.markdown(footer,unsafe_allow_html=True)
 
5
 
6
  st.header("WeLM Demo 初体验")
7
  st.text('Tips: ')
8
+ st.text("* WeLM 不是一个直接的对话机器人,而是一个补全用户输入信息的生成模型")
9
+ st.text("* 修改Prompts请先参考 https://welm.weixin.qq.com/docs/introduction/")
 
 
 
 
10
 
11
  class Task(str, Enum):
12
+ DIALOG_JOURNAL = "对话-采访"
 
 
 
13
  READING_COMPREHENSION = "阅读理解"
14
  TRANSLATE = "翻译"
15
+ REWRITE = "改写"
16
+ COMPLETION = "续写"
17
  FREE = "自由任务"
18
 
19
 
 
25
  )
26
  task_type = task_value2type[task_type]
27
 
28
+ task2prompt = {
29
+ Task.READING_COMPREHENSION: """在这个关于“故意伤害罪”的案例:
30
+ “经审理查明,被告人张××、杜×、杨2某均为辽宁省辽阳第一监狱五监区服刑人员。201511月3日13时许,被告人张××、杜×因无事便跟随去催要生产材料的被告人杨2某一同前往六监区,在六监区生产车间门外,被告人杨2某与六监区送料员于×因送料问题发生争执,被告人杨2某上前拽住被害人于×胳膊并用手击打被害人后脖颈两下,被告人张××、杜×见杨2某动手后,先后上前分别对被害人于×面部、头部及腹部进行殴打,后被赶到的干警制止。被害人于×被打造成面部受伤,鼻子流血,当日下午14时许,到监区内医院就诊,诊断为:鼻部中段向左侧畸形,115日经监狱医院X光诊断为鼻骨骨折。20151118日,经辽阳襄平法医司法鉴定所法医鉴定:被害人于×身体损伤程度为轻伤二级。被告人张××、杜×、杨2某共同赔偿被害人于×人民币7000元,被害人于×对被告人的行为表示谅解。”
31
+ 问题: “被害人于×11月5日经监狱医院X光诊断后的诊断结果为?”
32
+ 答案:""",
 
 
 
 
 
 
 
 
 
 
 
 
33
  Task.TRANSLATE: """“I had a good time”的中文翻译是:我玩得很开心。
34
  “The pandemic has triggered more demand for online shopping”的中文翻译是:疫情引发了更多的网购需求
35
+ “I am a programmer in Tencent”的中文翻译是:""",
36
+ Task.DIALOG_JOURNAL: """Elon Musk SpaceX 和特斯拉汽⻋公司的首席执行官。
37
+ 我:今天我们有 Elon Musk。欢迎加入我们。
38
+ Elon Musk:谢谢你邀请我。
39
+ 我:你认为 OpenAI 会如何发展?
40
+ Elon Musk:我认为进展非常顺利。我认为我们在 OpenAI 有一个非常有才华的团队。
41
+ 我:你现在是怎么进行时间分配?
42
+ Elon Musk:我每周都会尝试将部分时间花在 OpenAI 上,但除此之外,其他时间是 SpaceX 和特斯拉。
43
+ 我:你如何看待自动驾驶技术?
44
+ Elon Musk:""",
 
 
 
 
 
 
 
 
 
 
45
  Task.REWRITE: """有这样一段文本,{医生微笑着递给小明棒棒糖,同时让小明服下了药。}
46
  改写这段话让它变得更加惊悚。{医生眼露凶光让小明服药,小明感到非常害怕}。
47
  有这样一段文本,{雨下得很大}
 
53
  有这样一段文本,{风铃声响起}
54
  改写这段话写的更加丰富。{我对这个风铃的感情是由它的铃声引起的。每当风吹来时,风铃发出非常动听的声音,听起来是那么乐观、豁达,像一个小女孩格格的笑声。}
55
  """,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  Task.COMPLETION: """“八月十八潮,壮观天下无。”这是北宋大诗人苏东坡咏赞钱塘秋潮的千古名句。千百年来,钱塘江以其奇特卓绝的江潮,不知倾倒了多少游人看客。
57
+ 每年的农历八月十八前后,是观潮的最佳时节。这期间,秋阳朗照,金风宜人,钱塘江口的海塘上,游客群集,兴致盎然,争睹奇景。
58
+ """,
59
  Task.FREE: ""
60
  }
61
 
62
+ prompt = task2prompt[Task[task_type]]
63
+ if task_type == 'REWRITE':
64
+ pre_input = st.text_area('输入样例', value=prompt, height=400)
65
+ rewrite_text = "有这样一段文本,{我想家了}\n改写这段话包含更多悲伤的感情。{"
66
+ rewrite_text = st.text_area('你的输入', value=rewrite_text, height=100)
67
+ all_input = prompt + rewrite_text
68
+ else:
69
+ all_input = st.text_area('模型输入', value=prompt, height=400)
70
  all_input = all_input.rstrip('\\n')
71
 
72
 
 
118
  if choice.get("finish_reason", None) != "finished":
119
  st.error(f'生成结果#{idx}出错: {choice["finish_reason"]}')
120
  elif choice.get("text", None) is None:
121
+ st.error(f'生成结果#{idx}出错: 无生成结果')
122
+ elif len(choice.get("text", "")) == 0:
123
+ st.info(f'生成结果#{idx}: 生成结果为空')
124
+ else:
125
+ st.success(f'生成结果#{idx}: {cut_message(choice["text"])}')
 
 
 
126
 
127
  if task_type == 'COMPLETION':
128
  st.text('Tips: 可多次生成后复制你认为的最好结果拼接于原文后,让WeLM继续生成。')
 
131
  st.error(f"生成结果出错:{str(e)}")
132
 
133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
 
135
  if st.button('立即生成'):
136
  completion()
137
 
138
 
139
  footer="""<style>
140
+
141
  a:link , a:visited{
142
  background-color: transparent;
143
  text-decoration: none;
144
  color: rgb(7 6 17);
145
  }
146
+
147
  a:hover, a:active {
148
  background-color: transparent;
149
  text-decoration: underline;
150
  }
151
+
152
  .footer {
153
  position: relative;
154
  left: 0;
 
164
  <br>
165
  <br>
166
  <br>
167
+ <br>
168
  <p style="font-size:12px">声明(受<a href="https://beta.openai.com/docs/usage-guidelines/content-policy" target="_blank"> OpenAI GPT3's Content Policy </a>启发)</p>
169
+
170
  <p style="font-size:12px">我们禁止用户在知情的情况下产生或利用他人在知情的情况下产生有害内容,包括且不限于仇恨言论、骚扰信息、自我伤害内容、性内容、政治内容、垃圾邮件、诈骗信息等。<br>
171
  特别提示:本网页上产生的所有内容不代表本平台的观点和意见。<br>
172
  欲了解更多信息,请阅读我们的<a href="https://welm.weixin.qq.com/docs/license/" target="_blank">《服务使用协议》和《免责声明》</a>。</p>
173
  </div>
174
  """
175
+ st.markdown(footer,unsafe_allow_html=True)
requirements.txt DELETED
@@ -1,2 +0,0 @@
1
- altair<5
2
- streamlit