Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
CHANGED
@@ -23,8 +23,8 @@ model_name = "fb700/chatglm-fitness-RLHF"
|
|
23 |
RETRY_FLAG = False
|
24 |
|
25 |
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
|
26 |
-
model = AutoModel.from_pretrained(model_name, trust_remote_code=True).quantize(8).half().cuda()
|
27 |
-
|
28 |
model = model.eval()
|
29 |
|
30 |
_ = """Override Chatbot.postprocess"""
|
@@ -331,8 +331,8 @@ def mindmap(
|
|
331 |
flowchartins = """
|
332 |
"instruction": "现在你是一个分析师,你需要按照要求将我给你的内容或者主题以Mermaid语言生成足够深度以包含尽量多主要细节的流程图。学习下面的<context></context>里面的知识来完成分析。如果通过<context></context>的学习找不到答案,只需说你不知道。请不要编造答案。",
|
333 |
"input":
|
334 |
-
<context>
|
335 |
-
|
336 |
答案:
|
337 |
graph TD;
|
338 |
A[客户进入奶茶店] --> B[浏览店内菜单并选择奶茶口味和大小];
|
@@ -346,24 +346,7 @@ flowchartins = """
|
|
346 |
I --> |有问题| E;
|
347 |
I --> |没问题| K[将奶茶交给客户并感谢客户光临];
|
348 |
K --> L[客户拿着奶茶离开奶茶店享受美味的饮品];
|
349 |
-
请复制生成内容至https://mermaid-js.github.io/mermaid-live-editor
|
350 |
-
|
351 |
-
用户问题:训练一只狗
|
352 |
-
答案:
|
353 |
-
graph TD;
|
354 |
-
A[狗主人] --> B[给狗喂食+散步+洗澡];
|
355 |
-
B --> C[训练狗学习新技能];
|
356 |
-
C --> D[让狗参加社交活动];
|
357 |
-
D --> E[给狗提供良好的生活环境];
|
358 |
-
E --> F[让狗保持积极的心态];
|
359 |
-
F --> G[训练狗遵守指令];
|
360 |
-
G --> H[让狗遵守指令并听从指挥];
|
361 |
-
H --> I[检查狗的行为];
|
362 |
-
I --> |有问题| J[调整训练方法];
|
363 |
-
J --> G
|
364 |
-
I --> |没问题| K[奖励狗的行为];
|
365 |
-
请复制生成内容至https://mermaid-js.github.io/mermaid-live-editor/
|
366 |
-
|
367 |
用户问题:根据所给内容:"当用户要找一张图片,告诉用户打开浏览器从收藏夹中找到bofanAI,打开网页后滚动到聊天窗口下方,在示例区点双击样例第一项后,样例提示词将出现在输入窗,在输入窗中用其它英文语单词替换monkey,然后点击发送后将接收到5张照片的小图,鼠标右键点击小图获取大图,在跳出的菜单中选择在新标签页打开,就可以在新标签页获取大图。接下来,你可以检查图片是否有误, 如果有问题则鼠标右键点击小图获取大图,如果没问题可以将图片保持在本地。"
|
368 |
答案:
|
369 |
graph TD;
|
@@ -380,7 +363,7 @@ flowchartins = """
|
|
380 |
K --> L[检查图片是否有误];
|
381 |
L --> |有问题| I[鼠标右键点击小图获取大图];
|
382 |
L --> |没问题| M[将图片保持在本地];
|
383 |
-
请复制生成内容至https://mermaid-js.github.io/mermaid-live-editor
|
384 |
</context>
|
385 |
用户问题:
|
386 |
"""
|
@@ -573,7 +556,7 @@ def allSecretary(
|
|
573 |
history,
|
574 |
past_key_values,
|
575 |
)
|
576 |
-
|
577 |
redBookins = """
|
578 |
1、如果用户没有输入,请你告诉他:请输入你想写的内容
|
579 |
2、收到用户输入,按照下面是小红书帖子进行编写:
|
@@ -604,12 +587,14 @@ redBookins = """
|
|
604 |
用户输入:
|
605 |
|
606 |
"""
|
|
|
|
|
607 |
def redBook(
|
608 |
user_input, chatbot, max_length, top_p, temperature, history, past_key_values
|
609 |
):
|
610 |
|
611 |
-
|
612 |
-
user_input = redBookins+user_input
|
613 |
|
614 |
yield from predict(
|
615 |
RETRY_FLAG, # type: ignore
|
@@ -690,17 +675,55 @@ def mindAsk(
|
|
690 |
past_key_values,
|
691 |
)
|
692 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
693 |
from bs4 import BeautifulSoup
|
694 |
import requests
|
695 |
|
|
|
696 |
def scrape_text(url, proxies) -> str:
|
697 |
-
"""从网页抓取文本,限制为前500
|
698 |
|
699 |
参数:
|
700 |
url (str): 要抓取文本的网址
|
701 |
|
702 |
返回:
|
703 |
-
str: 抓取到的文本,最多为前500
|
704 |
"""
|
705 |
headers = {
|
706 |
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
|
@@ -716,9 +739,25 @@ def scrape_text(url, proxies) -> str:
|
|
716 |
for script in soup(["script", "style"]):
|
717 |
script.extract()
|
718 |
text = soup.get_text()
|
|
|
719 |
# 截取文本,限制最多500个字符
|
720 |
text = text[:500]
|
721 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
722 |
|
723 |
# 定义函数:联网搜索并更新聊天界面
|
724 |
def GGSearch(
|
@@ -763,8 +802,8 @@ def GGSearch(
|
|
763 |
# 更新聊天界面和历史记录
|
764 |
chatbot.append(("联网搜索结果:", GGSearchins))
|
765 |
history.append(("联网搜索结果:", GGSearchins))
|
766 |
-
|
767 |
-
user_input =
|
768 |
|
769 |
# 继续正常的 GPT 对话流程
|
770 |
yield from predict(
|
@@ -778,7 +817,7 @@ def GGSearch(
|
|
778 |
past_key_values=None,
|
779 |
)
|
780 |
|
781 |
-
|
782 |
|
783 |
|
784 |
with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) as demo:
|
@@ -786,7 +825,7 @@ with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) a
|
|
786 |
gr.HTML(
|
787 |
"""<center><a href="https://huggingface.co/spaces/mikeee/chatglm2-6b-4bit?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>It's beyond Fitness,模型由[帛凡]基于ChatGLM-6B进行微调后,在健康(全科)、心理等领域达至少60分的专业水准,而且中文总结能力超越了GPT3.5各版本。</center>"""
|
788 |
"""<center>特别声明:本应用仅为模型能力演示,无任何商业行为,部署资源为Huggingface官方免费提供,任何通过此项目产生的知识仅用于学术参考,作者和网站均不承担任何责任。</center>"""
|
789 |
-
"""<h1 align="center">🐰帛凡 Fitness AI🐰
|
790 |
"""<center><a href="https://huggingface.co/fb700/chatglm-fitness-RLHF">Bofan基于chatglm-6B的微调模型</a>如果喜欢请给个 💖 。遇到任何问题可邮件和我联系👉 [email protected]</center>"""
|
791 |
)
|
792 |
|
@@ -842,11 +881,12 @@ with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) a
|
|
842 |
txtSumBtn = gr.Button("文字总结", variant="primary")
|
843 |
teachPlanBtn = gr.Button("教案编写", variant="secondary")
|
844 |
allSecretaryBtn = gr.Button("全能文秘", variant="secondary")
|
845 |
-
redBookBtn = gr.Button("📕小红书帖子", variant="secondary")
|
|
|
846 |
with gr.Row():
|
847 |
fitnessAskBtn = gr.Button("🥼健康咨询", variant="primary")
|
848 |
mindAskBtn = gr.Button("😶🌫️心理咨询", variant="primary")
|
849 |
-
GGSearchBtn = gr.Button("
|
850 |
|
851 |
with gr.Column(scale=1):
|
852 |
gr.HTML("""<h3 align="center">🍀您好,除健康咨询和心理��询外,其它功能使用前,请先清空历史,并输入问题。🍀</h3>""")
|
@@ -1178,7 +1218,7 @@ with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) a
|
|
1178 |
# outputs = [chatbot, history, last_user_message, user_message]
|
1179 |
outputs=[chatbot, history, past_key_values],
|
1180 |
)
|
1181 |
-
|
1182 |
GGSearchBtn.click(
|
1183 |
reset_state, outputs=[chatbot, history, past_key_values], show_progress="full"
|
1184 |
)
|
@@ -1195,7 +1235,8 @@ with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) a
|
|
1195 |
],
|
1196 |
# outputs = [chatbot, history, last_user_message, user_message]
|
1197 |
outputs=[chatbot, history, past_key_values],
|
1198 |
-
)
|
|
|
1199 |
deleteBtn.click(delete_last_turn, [chatbot, history], [chatbot, history])
|
1200 |
|
1201 |
with gr.Accordion("Example inputs", open=False):
|
@@ -1303,4 +1344,4 @@ with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) a
|
|
1303 |
# reduce to 5 if OOM occurs to often
|
1304 |
|
1305 |
#demo.queue(concurrency_count=6, max_size=30).launch(debug=True)
|
1306 |
-
demo.queue(concurrency_count=
|
|
|
23 |
RETRY_FLAG = False
|
24 |
|
25 |
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
|
26 |
+
#model = AutoModel.from_pretrained(model_name, trust_remote_code=True).quantize(8).half().cuda()
|
27 |
+
model = AutoModel.from_pretrained(model_name, trust_remote_code=True).half().cuda()
|
28 |
model = model.eval()
|
29 |
|
30 |
_ = """Override Chatbot.postprocess"""
|
|
|
331 |
flowchartins = """
|
332 |
"instruction": "现在你是一个分析师,你需要按照要求将我给你的内容或者主题以Mermaid语言生成足够深度以包含尽量多主要细节的流程图。学习下面的<context></context>里面的知识来完成分析。如果通过<context></context>的学习找不到答案,只需说你不知道。请不要编造答案。",
|
333 |
"input":
|
334 |
+
"<context>
|
335 |
+
用户问题: 购买奶茶
|
336 |
答案:
|
337 |
graph TD;
|
338 |
A[客户进入奶茶店] --> B[浏览店内菜单并选择奶茶口味和大小];
|
|
|
346 |
I --> |有问题| E;
|
347 |
I --> |没问题| K[将奶茶交给客户并感谢客户光临];
|
348 |
K --> L[客户拿着奶茶离开奶茶店享受美味的饮品];
|
349 |
+
请复制生成内容至https://mermaid-js.github.io/mermaid-live-editor/。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
350 |
用户问题:根据所给内容:"当用户要找一张图片,告诉用户打开浏览器从收藏夹中找到bofanAI,打开网页后滚动到聊天窗口下方,在示例区点双击样例第一项后,样例提示词将出现在输入窗,在输入窗中用其它英文语单词替换monkey,然后点击发送后将接收到5张照片的小图,鼠标右键点击小图获取大图,在跳出的菜单中选择在新标签页打开,就可以在新标签页获取大图。接下来,你可以检查图片是否有误, 如果有问题则鼠标右键点击小图获取大图,如果没问题可以将图片保持在本地。"
|
351 |
答案:
|
352 |
graph TD;
|
|
|
363 |
K --> L[检查图片是否有误];
|
364 |
L --> |有问题| I[鼠标右键点击小图获取大图];
|
365 |
L --> |没问题| M[将图片保持在本地];
|
366 |
+
请复制生成内容至https://mermaid-js.github.io/mermaid-live-editor/。"
|
367 |
</context>
|
368 |
用户问题:
|
369 |
"""
|
|
|
556 |
history,
|
557 |
past_key_values,
|
558 |
)
|
559 |
+
'''
|
560 |
redBookins = """
|
561 |
1、如果用户没有输入,请你告诉他:请输入你想写的内容
|
562 |
2、收到用户输入,按照下面是小红书帖子进行编写:
|
|
|
587 |
用户输入:
|
588 |
|
589 |
"""
|
590 |
+
'''
|
591 |
+
redBookins="请你用最华丽、最真诚和最有感情的语言祝:顺欣妈妈、昊昊爸爸、昊昊生日快乐!请大量的使用🎂、❤️、💖、🥳、🥂、🎈、🎊、🎉、🎁、🍾等表示庆祝的的Emoji"
|
592 |
def redBook(
|
593 |
user_input, chatbot, max_length, top_p, temperature, history, past_key_values
|
594 |
):
|
595 |
|
596 |
+
user_input = redBookins
|
597 |
+
#user_input = redBookins+user_input
|
598 |
|
599 |
yield from predict(
|
600 |
RETRY_FLAG, # type: ignore
|
|
|
675 |
past_key_values,
|
676 |
)
|
677 |
|
678 |
+
# 导入所需模块
|
679 |
+
|
680 |
+
from bs4 import BeautifulSoup
|
681 |
+
import requests
|
682 |
+
|
683 |
+
'''
|
684 |
+
# 定义函数:从网页中抓取文本
|
685 |
+
def scrape_text(url, proxies) -> str:
|
686 |
+
"""从网页抓取文本
|
687 |
+
|
688 |
+
参数:
|
689 |
+
url (str): 要抓取文本的网址
|
690 |
+
|
691 |
+
返回:
|
692 |
+
str: 抓取到的文本
|
693 |
+
"""
|
694 |
+
headers = {
|
695 |
+
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
|
696 |
+
'Content-Type': 'text/plain',
|
697 |
+
}
|
698 |
+
try:
|
699 |
+
response = requests.get(url, headers=headers, proxies=proxies, timeout=8)
|
700 |
+
if response.encoding == "ISO-8859-1":
|
701 |
+
response.encoding = response.apparent_encoding
|
702 |
+
except:
|
703 |
+
return "无法连接到该网页"
|
704 |
+
soup = BeautifulSoup(response.text, "html.parser")
|
705 |
+
for script in soup(["script", "style"]):
|
706 |
+
script.extract()
|
707 |
+
text = soup.get_text()
|
708 |
+
lines = (line.strip() for line in text.splitlines())
|
709 |
+
chunks = (phrase.strip() for line in lines for phrase in line.split(" "))
|
710 |
+
text = "\n".join(chunk for chunk in chunks if chunk)
|
711 |
+
return text
|
712 |
+
'''
|
713 |
+
# 修改函数:从网页中抓取文本,限制为前500个字符
|
714 |
+
# 导入所需模块
|
715 |
from bs4 import BeautifulSoup
|
716 |
import requests
|
717 |
|
718 |
+
# 定义函数:从网页中抓取文本并根据长度和回车/空格前字符数进行筛选
|
719 |
def scrape_text(url, proxies) -> str:
|
720 |
+
"""从网页抓取文本,限制为前500个字符,丢弃字符数小于10的行和连续的空格键、回车键之间字符数小于10的部分
|
721 |
|
722 |
参数:
|
723 |
url (str): 要抓取文本的网址
|
724 |
|
725 |
返回:
|
726 |
+
str: 抓取到的文本,最多为前500个字符,丢弃字符数小于10的行和连续的空格键、回车键之间字符数小于10的部分
|
727 |
"""
|
728 |
headers = {
|
729 |
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36',
|
|
|
739 |
for script in soup(["script", "style"]):
|
740 |
script.extract()
|
741 |
text = soup.get_text()
|
742 |
+
|
743 |
# 截取文本,限制最多500个字符
|
744 |
text = text[:500]
|
745 |
+
|
746 |
+
# 丢弃字符数小于10的行和连续的空格键、回车键之间字符数小于10的部分
|
747 |
+
lines = text.split('\n')
|
748 |
+
selected_lines = []
|
749 |
+
for line in lines:
|
750 |
+
# 去除多余的空格
|
751 |
+
cleaned_line = ' '.join(line.split())
|
752 |
+
if len(cleaned_line) >= 27:
|
753 |
+
selected_lines.append(cleaned_line)
|
754 |
+
|
755 |
+
# 拼接选中的行
|
756 |
+
selected_text = '\n'.join(selected_lines)
|
757 |
+
|
758 |
+
return selected_text
|
759 |
+
|
760 |
+
|
761 |
|
762 |
# 定义函数:联网搜索并更新聊天界面
|
763 |
def GGSearch(
|
|
|
802 |
# 更新聊天界面和历史记录
|
803 |
chatbot.append(("联网搜索结果:", GGSearchins))
|
804 |
history.append(("联网搜索结果:", GGSearchins))
|
805 |
+
ggins1="请围用户搜索主题,对搜索结果进行全面的总结。\n用户搜索主题:"
|
806 |
+
user_input =ggins1+ user_input+ "\n搜索结果:\n"+ GGSearchins
|
807 |
|
808 |
# 继续正常的 GPT 对话流程
|
809 |
yield from predict(
|
|
|
817 |
past_key_values=None,
|
818 |
)
|
819 |
|
820 |
+
|
821 |
|
822 |
|
823 |
with gr.Blocks(title="🐰Bofan Ai🐰", theme=gr.themes.Soft(text_size="sm")) as demo:
|
|
|
825 |
gr.HTML(
|
826 |
"""<center><a href="https://huggingface.co/spaces/mikeee/chatglm2-6b-4bit?duplicate=true"><img src="https://bit.ly/3gLdBN6" alt="Duplicate Space"></a>It's beyond Fitness,模型由[帛凡]基于ChatGLM-6B进行微调后,在健康(全科)、心理等领域达至少60分的专业水准,而且中文总结能力超越了GPT3.5各版本。</center>"""
|
827 |
"""<center>特别声明:本应用仅为模型能力演示,无任何商业行为,部署资源为Huggingface官方免费提供,任何通过此项目产生的知识仅用于学术参考,作者和网站均不承担任何责任。</center>"""
|
828 |
+
"""<h1 align="center">🐰帛凡 Fitness AI🐰 演示🥂🎈祝顺欣妈妈、昊昊爸爸、昊昊生日快乐!🎂❤️</h1>"""
|
829 |
"""<center><a href="https://huggingface.co/fb700/chatglm-fitness-RLHF">Bofan基于chatglm-6B的微调模型</a>如果喜欢请给个 💖 。遇到任何问题可邮件和我联系👉 [email protected]</center>"""
|
830 |
)
|
831 |
|
|
|
881 |
txtSumBtn = gr.Button("文字总结", variant="primary")
|
882 |
teachPlanBtn = gr.Button("教案编写", variant="secondary")
|
883 |
allSecretaryBtn = gr.Button("全能文秘", variant="secondary")
|
884 |
+
#redBookBtn = gr.Button("📕小红书帖子", variant="secondary")
|
885 |
+
redBookBtn = gr.Button("🎂生日快乐🎂", variant="secondary")
|
886 |
with gr.Row():
|
887 |
fitnessAskBtn = gr.Button("🥼健康咨询", variant="primary")
|
888 |
mindAskBtn = gr.Button("😶🌫️心理咨询", variant="primary")
|
889 |
+
GGSearchBtn = gr.Button("联网搜索", variant="primary")
|
890 |
|
891 |
with gr.Column(scale=1):
|
892 |
gr.HTML("""<h3 align="center">🍀您好,除健康咨询和心理��询外,其它功能使用前,请先清空历史,并输入问题。🍀</h3>""")
|
|
|
1218 |
# outputs = [chatbot, history, last_user_message, user_message]
|
1219 |
outputs=[chatbot, history, past_key_values],
|
1220 |
)
|
1221 |
+
# 绑定函数到联网搜索按钮的点击事件
|
1222 |
GGSearchBtn.click(
|
1223 |
reset_state, outputs=[chatbot, history, past_key_values], show_progress="full"
|
1224 |
)
|
|
|
1235 |
],
|
1236 |
# outputs = [chatbot, history, last_user_message, user_message]
|
1237 |
outputs=[chatbot, history, past_key_values],
|
1238 |
+
)
|
1239 |
+
|
1240 |
deleteBtn.click(delete_last_turn, [chatbot, history], [chatbot, history])
|
1241 |
|
1242 |
with gr.Accordion("Example inputs", open=False):
|
|
|
1344 |
# reduce to 5 if OOM occurs to often
|
1345 |
|
1346 |
#demo.queue(concurrency_count=6, max_size=30).launch(debug=True)
|
1347 |
+
demo.queue(concurrency_count=6, max_size=30).launch(debug=True, auth=eval(os.environ.get("AUTHENTICATION")))
|