Spaces:
Sleeping
Sleeping
Keldos
commited on
Commit
•
c06298e
1
Parent(s):
ef91b66
dev: 适配gradio 3.41.2
Browse filesdev: 适配 gradio 3.41.0
- 修改avatar样式
- 修复gradio升级带来的代码块样式问题
- config_example.json +2 -2
- modules/config.py +2 -2
- modules/presets.py +2 -1
- requirements.txt +2 -2
- web_assets/javascript/chat-history.js +6 -0
- web_assets/stylesheet/ChuanhuChat.css +1 -0
- web_assets/stylesheet/chatbot.css +5 -28
- web_assets/stylesheet/markdown.css +20 -15
- web_assets/stylesheet/override-gradio.css +5 -4
- web_assets/user.png +0 -0
config_example.json
CHANGED
@@ -29,8 +29,8 @@
|
|
29 |
"hide_history_when_not_logged_in": false, //未登录情况下是否不展示对话历史
|
30 |
"check_update": true, //是否启用检查更新
|
31 |
"default_model": "gpt-3.5-turbo", // 默认模型
|
32 |
-
"bot_avatar": "default", //
|
33 |
-
"user_avatar": "default", //
|
34 |
|
35 |
//== API 用量 ==
|
36 |
"show_api_billing": false, //是否显示OpenAI API用量(启用需要填写sensitive_id)
|
|
|
29 |
"hide_history_when_not_logged_in": false, //未登录情况下是否不展示对话历史
|
30 |
"check_update": true, //是否启用检查更新
|
31 |
"default_model": "gpt-3.5-turbo", // 默认模型
|
32 |
+
"bot_avatar": "default", // 机器人头像,可填写本地或网络图片链接,或者"none"(不显示头像)
|
33 |
+
"user_avatar": "default", // 用户头像,可填写本地或网络图片链接,或者"none"(不显示头像)
|
34 |
|
35 |
//== API 用量 ==
|
36 |
"show_api_billing": false, //是否显示OpenAI API用量(启用需要填写sensitive_id)
|
modules/config.py
CHANGED
@@ -281,8 +281,8 @@ user_avatar = config.get("user_avatar", "default")
|
|
281 |
if bot_avatar == "" or bot_avatar == "none" or bot_avatar is None:
|
282 |
bot_avatar = None
|
283 |
elif bot_avatar == "default":
|
284 |
-
bot_avatar = "
|
285 |
if user_avatar == "" or user_avatar == "none" or user_avatar is None:
|
286 |
user_avatar = None
|
287 |
elif user_avatar == "default":
|
288 |
-
user_avatar = "
|
|
|
281 |
if bot_avatar == "" or bot_avatar == "none" or bot_avatar is None:
|
282 |
bot_avatar = None
|
283 |
elif bot_avatar == "default":
|
284 |
+
bot_avatar = "web_assets/chatbot.png"
|
285 |
if user_avatar == "" or user_avatar == "none" or user_avatar is None:
|
286 |
user_avatar = None
|
287 |
elif user_avatar == "default":
|
288 |
+
user_avatar = "web_assets/user.png"
|
modules/presets.py
CHANGED
@@ -243,6 +243,7 @@ small_and_beautiful_theme = gr.themes.Soft(
|
|
243 |
block_title_background_fill_dark="*primary_900",
|
244 |
block_label_background_fill_dark="*primary_900",
|
245 |
input_background_fill="#F6F6F6",
|
246 |
-
chatbot_code_background_color="*neutral_950",
|
|
|
247 |
chatbot_code_background_color_dark="*neutral_950",
|
248 |
)
|
|
|
243 |
block_title_background_fill_dark="*primary_900",
|
244 |
block_label_background_fill_dark="*primary_900",
|
245 |
input_background_fill="#F6F6F6",
|
246 |
+
# chatbot_code_background_color="*neutral_950",
|
247 |
+
# gradio 会把这个几个chatbot打头的变量应用到其他md渲染的地方,鬼晓得怎么想的。。。
|
248 |
chatbot_code_background_color_dark="*neutral_950",
|
249 |
)
|
requirements.txt
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
-
gradio==3.
|
2 |
-
gradio_client==0.
|
3 |
pypinyin
|
4 |
tiktoken
|
5 |
socksio
|
|
|
1 |
+
gradio==3.41.2
|
2 |
+
gradio_client==0.5.0
|
3 |
pypinyin
|
4 |
tiktoken
|
5 |
socksio
|
web_assets/javascript/chat-history.js
CHANGED
@@ -25,6 +25,12 @@ function loadHistoryHtml() {
|
|
25 |
return; // logged in, do nothing
|
26 |
}
|
27 |
if (!historyLoaded) {
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
var fakeHistory = document.createElement('div');
|
29 |
fakeHistory.classList.add('history-message');
|
30 |
fakeHistory.innerHTML = tempDiv.innerHTML;
|
|
|
25 |
return; // logged in, do nothing
|
26 |
}
|
27 |
if (!historyLoaded) {
|
28 |
+
// preprocess, gradio buttons in history lost their event listeners
|
29 |
+
var gradioCopyButtons = tempDiv.querySelectorAll('button.copy_code_button');
|
30 |
+
for (var i = 0; i < gradioCopyButtons.length; i++) {
|
31 |
+
gradioCopyButtons[i].parentNode.removeChild(gradioCopyButtons[i]);
|
32 |
+
}
|
33 |
+
|
34 |
var fakeHistory = document.createElement('div');
|
35 |
fakeHistory.classList.add('history-message');
|
36 |
fakeHistory.innerHTML = tempDiv.innerHTML;
|
web_assets/stylesheet/ChuanhuChat.css
CHANGED
@@ -37,6 +37,7 @@
|
|
37 |
}
|
38 |
|
39 |
#netsetting-warning hr {
|
|
|
40 |
margin-bottom: 1em;
|
41 |
}
|
42 |
|
|
|
37 |
}
|
38 |
|
39 |
#netsetting-warning hr {
|
40 |
+
margin-top: 0.5em;
|
41 |
margin-bottom: 1em;
|
42 |
}
|
43 |
|
web_assets/stylesheet/chatbot.css
CHANGED
@@ -247,35 +247,12 @@ hr.append-display {
|
|
247 |
note: find it better without transition animation...;
|
248 |
} */
|
249 |
|
250 |
-
|
251 |
-
|
252 |
-
flex-direction: row;
|
253 |
-
display: flex;
|
254 |
-
gap: 8px;
|
255 |
-
width: 100%;
|
256 |
-
}
|
257 |
-
.bot-message-row {
|
258 |
-
justify-content: flex-start;
|
259 |
-
}
|
260 |
-
.user-message-row {
|
261 |
-
justify-content: flex-end;
|
262 |
}
|
263 |
-
.
|
264 |
-
width: 32px;
|
265 |
-
height: 32px;
|
266 |
background-color: transparent;
|
267 |
background-size: cover;
|
268 |
-
border-radius: 5px !important;
|
269 |
-
}
|
270 |
-
.chatbot-avatar.bot-avatar {
|
271 |
-
margin-left: 5px;
|
272 |
}
|
273 |
-
.chatbot-avatar.user-avatar {
|
274 |
-
margin-right: 10px;
|
275 |
-
}
|
276 |
-
.chatbot-avatar img {
|
277 |
-
border-radius: 5px !important;
|
278 |
-
object-fit: cover;
|
279 |
-
width: 100%;
|
280 |
-
height: 100%;
|
281 |
-
} */
|
|
|
247 |
note: find it better without transition animation...;
|
248 |
} */
|
249 |
|
250 |
+
img.avatar-image {
|
251 |
+
border-radius: 5px !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
}
|
253 |
+
.avatar-container {
|
254 |
+
width: 32px !important;
|
255 |
+
height: 32px !important;
|
256 |
background-color: transparent;
|
257 |
background-size: cover;
|
|
|
|
|
|
|
|
|
258 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
web_assets/stylesheet/markdown.css
CHANGED
@@ -4,52 +4,57 @@
|
|
4 |
}
|
5 |
|
6 |
/* 表格 */
|
7 |
-
.message table {
|
8 |
margin: 1em 0;
|
9 |
border-collapse: collapse;
|
10 |
empty-cells: show;
|
11 |
}
|
12 |
-
.message td, .message th {
|
13 |
border: 1.2px solid var(--border-color-primary) !important;
|
14 |
padding: 0.2em;
|
15 |
}
|
16 |
-
.message thead {
|
17 |
background-color: rgba(175,184,193,0.2);
|
18 |
}
|
19 |
-
.message thead th {
|
20 |
padding: .5em .2em;
|
21 |
}
|
22 |
|
23 |
/* 行内代码 */
|
24 |
-
.message :not(pre) code {
|
25 |
display: inline;
|
26 |
white-space: break-spaces;
|
27 |
-
font-family: var(--font-mono);
|
28 |
-
border-radius: 6px;
|
29 |
margin: 0 2px 0 2px;
|
30 |
-
padding: .
|
31 |
-
background-color: rgba(175,184,193,0.2);
|
|
|
|
|
32 |
}
|
33 |
/* 代码块 */
|
34 |
-
.message pre,
|
35 |
-
.message pre[class*=language-] {
|
36 |
color: #fff;
|
37 |
overflow-x: auto;
|
38 |
overflow-y: hidden;
|
39 |
-
margin: .8em 1em 1em 0em !important;
|
40 |
padding: var(--spacing-xl) 1.2em !important;
|
41 |
border-radius: var(--radius-lg) !important;
|
|
|
42 |
}
|
43 |
-
.message pre code,
|
44 |
-
.message pre code[class*=language-] {
|
45 |
color: #fff;
|
46 |
padding: 0;
|
47 |
margin: 0;
|
48 |
background-color: unset;
|
49 |
text-shadow: none;
|
50 |
font-family: var(--font-mono);
|
|
|
|
|
|
|
|
|
51 |
}
|
52 |
-
|
53 |
|
54 |
/* 覆盖prism.css */
|
55 |
.language-css .token.string,
|
|
|
4 |
}
|
5 |
|
6 |
/* 表格 */
|
7 |
+
.md-message table {
|
8 |
margin: 1em 0;
|
9 |
border-collapse: collapse;
|
10 |
empty-cells: show;
|
11 |
}
|
12 |
+
.md-message td, .message th {
|
13 |
border: 1.2px solid var(--border-color-primary) !important;
|
14 |
padding: 0.2em;
|
15 |
}
|
16 |
+
.md-message thead {
|
17 |
background-color: rgba(175,184,193,0.2);
|
18 |
}
|
19 |
+
.md-message thead th {
|
20 |
padding: .5em .2em;
|
21 |
}
|
22 |
|
23 |
/* 行内代码 */
|
24 |
+
.md-message :not(pre) > code {
|
25 |
display: inline;
|
26 |
white-space: break-spaces;
|
27 |
+
font-family: var(--font-mono) !important;
|
28 |
+
border-radius: 6px !important;
|
29 |
margin: 0 2px 0 2px;
|
30 |
+
padding: .1em .4em .08em .4em !important;
|
31 |
+
background-color: rgba(175,184,193,0.2) !important;
|
32 |
+
border: none !important;
|
33 |
+
font-size: var(--text-md) !important;
|
34 |
}
|
35 |
/* 代码块 */
|
36 |
+
.md-message pre,
|
37 |
+
.md-message pre[class*=language-] {
|
38 |
color: #fff;
|
39 |
overflow-x: auto;
|
40 |
overflow-y: hidden;
|
|
|
41 |
padding: var(--spacing-xl) 1.2em !important;
|
42 |
border-radius: var(--radius-lg) !important;
|
43 |
+
background: var(--neutral-950) !important;
|
44 |
}
|
45 |
+
.md-message pre code,
|
46 |
+
.md-message pre code[class*=language-] {
|
47 |
color: #fff;
|
48 |
padding: 0;
|
49 |
margin: 0;
|
50 |
background-color: unset;
|
51 |
text-shadow: none;
|
52 |
font-family: var(--font-mono);
|
53 |
+
font-size: var(--text-md);
|
54 |
+
}
|
55 |
+
.md-message .code_wrap {
|
56 |
+
margin: .8em 1em 1em 0em;
|
57 |
}
|
|
|
58 |
|
59 |
/* 覆盖prism.css */
|
60 |
.language-css .token.string,
|
web_assets/stylesheet/override-gradio.css
CHANGED
@@ -15,14 +15,15 @@ footer {
|
|
15 |
}
|
16 |
|
17 |
/* 覆盖 gradio 丑陋的复制按钮样式 */
|
18 |
-
.message
|
19 |
-
border-radius: 5px;
|
20 |
transition: background-color .2s ease;
|
|
|
21 |
}
|
22 |
-
.message
|
23 |
background-color: #333232;
|
24 |
}
|
25 |
-
.message
|
26 |
color: #fff !important;
|
27 |
background: var(--neutral-950) !important;
|
28 |
}
|
|
|
15 |
}
|
16 |
|
17 |
/* 覆盖 gradio 丑陋的复制按钮样式 */
|
18 |
+
.message .code_wrap button[title="copy"] {
|
19 |
+
border-radius: 5px !important;
|
20 |
transition: background-color .2s ease;
|
21 |
+
color: white;
|
22 |
}
|
23 |
+
.message .code_wrap button[title="copy"]:hover {
|
24 |
background-color: #333232;
|
25 |
}
|
26 |
+
.message .code_wrap button .check {
|
27 |
color: #fff !important;
|
28 |
background: var(--neutral-950) !important;
|
29 |
}
|
web_assets/user.png
ADDED