Spaces:
Sleeping
Sleeping
feat:gradio验证支持多用户
Browse files- ChuanhuChatbot.py +15 -10
- README.md +5 -3
ChuanhuChatbot.py
CHANGED
|
@@ -25,6 +25,7 @@ else:
|
|
| 25 |
dockerflag = False
|
| 26 |
|
| 27 |
authflag = False
|
|
|
|
| 28 |
|
| 29 |
if dockerflag:
|
| 30 |
my_api_key = os.environ.get("my_api_key")
|
|
@@ -35,6 +36,7 @@ if dockerflag:
|
|
| 35 |
username = os.environ.get("USERNAME")
|
| 36 |
password = os.environ.get("PASSWORD")
|
| 37 |
if not (isinstance(username, type(None)) or isinstance(password, type(None))):
|
|
|
|
| 38 |
authflag = True
|
| 39 |
else:
|
| 40 |
if (
|
|
@@ -45,12 +47,15 @@ else:
|
|
| 45 |
with open("api_key.txt", "r") as f:
|
| 46 |
my_api_key = f.read().strip()
|
| 47 |
if os.path.exists("auth.json"):
|
|
|
|
| 48 |
with open("auth.json", "r", encoding='utf-8') as f:
|
| 49 |
auth = json.load(f)
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
|
|
|
|
|
|
| 54 |
|
| 55 |
gr.Chatbot.postprocess = postprocess
|
| 56 |
PromptHelper.compact_text_chunks = compact_text_chunks
|
|
@@ -71,11 +76,11 @@ with gr.Blocks(css=customCSS, theme=small_and_beautiful_theme) as demo:
|
|
| 71 |
gr.HTML(title)
|
| 72 |
status_display = gr.Markdown(get_geoip(), elem_id="status_display")
|
| 73 |
|
| 74 |
-
with gr.Row(
|
| 75 |
with gr.Column(scale=5):
|
| 76 |
-
with gr.Row(
|
| 77 |
chatbot = gr.Chatbot(elem_id="chuanhu_chatbot").style(height="100%")
|
| 78 |
-
with gr.Row(
|
| 79 |
with gr.Column(scale=12):
|
| 80 |
user_input = gr.Textbox(
|
| 81 |
show_label=False, placeholder="在这里输入"
|
|
@@ -83,7 +88,7 @@ with gr.Blocks(css=customCSS, theme=small_and_beautiful_theme) as demo:
|
|
| 83 |
with gr.Column(min_width=70, scale=1):
|
| 84 |
submitBtn = gr.Button("发送", variant="primary")
|
| 85 |
cancelBtn = gr.Button("取消", variant="secondary", visible=False)
|
| 86 |
-
with gr.Row(
|
| 87 |
emptyBtn = gr.Button(
|
| 88 |
"🧹 新的对话",
|
| 89 |
)
|
|
@@ -412,7 +417,7 @@ if __name__ == "__main__":
|
|
| 412 |
demo.queue(concurrency_count=CONCURRENT_COUNT).launch(
|
| 413 |
server_name="0.0.0.0",
|
| 414 |
server_port=7860,
|
| 415 |
-
auth=
|
| 416 |
favicon_path="./assets/favicon.ico",
|
| 417 |
)
|
| 418 |
else:
|
|
@@ -427,7 +432,7 @@ if __name__ == "__main__":
|
|
| 427 |
if authflag:
|
| 428 |
demo.queue(concurrency_count=CONCURRENT_COUNT).launch(
|
| 429 |
share=False,
|
| 430 |
-
auth=
|
| 431 |
favicon_path="./assets/favicon.ico",
|
| 432 |
inbrowser=True,
|
| 433 |
)
|
|
|
|
| 25 |
dockerflag = False
|
| 26 |
|
| 27 |
authflag = False
|
| 28 |
+
auth_list = []
|
| 29 |
|
| 30 |
if dockerflag:
|
| 31 |
my_api_key = os.environ.get("my_api_key")
|
|
|
|
| 36 |
username = os.environ.get("USERNAME")
|
| 37 |
password = os.environ.get("PASSWORD")
|
| 38 |
if not (isinstance(username, type(None)) or isinstance(password, type(None))):
|
| 39 |
+
auth_list.append((os.environ.get("USERNAME"), os.environ.get("PASSWORD")))
|
| 40 |
authflag = True
|
| 41 |
else:
|
| 42 |
if (
|
|
|
|
| 47 |
with open("api_key.txt", "r") as f:
|
| 48 |
my_api_key = f.read().strip()
|
| 49 |
if os.path.exists("auth.json"):
|
| 50 |
+
authflag = True
|
| 51 |
with open("auth.json", "r", encoding='utf-8') as f:
|
| 52 |
auth = json.load(f)
|
| 53 |
+
for _ in auth:
|
| 54 |
+
if auth[_]["username"] and auth[_]["password"]:
|
| 55 |
+
auth_list.append((auth[_]["username"], auth[_]["password"]))
|
| 56 |
+
else:
|
| 57 |
+
logging.error("请检查auth.json文件中的用户名和密码!")
|
| 58 |
+
sys.exit(1)
|
| 59 |
|
| 60 |
gr.Chatbot.postprocess = postprocess
|
| 61 |
PromptHelper.compact_text_chunks = compact_text_chunks
|
|
|
|
| 76 |
gr.HTML(title)
|
| 77 |
status_display = gr.Markdown(get_geoip(), elem_id="status_display")
|
| 78 |
|
| 79 |
+
with gr.Row().style(equal_height=True):
|
| 80 |
with gr.Column(scale=5):
|
| 81 |
+
with gr.Row():
|
| 82 |
chatbot = gr.Chatbot(elem_id="chuanhu_chatbot").style(height="100%")
|
| 83 |
+
with gr.Row():
|
| 84 |
with gr.Column(scale=12):
|
| 85 |
user_input = gr.Textbox(
|
| 86 |
show_label=False, placeholder="在这里输入"
|
|
|
|
| 88 |
with gr.Column(min_width=70, scale=1):
|
| 89 |
submitBtn = gr.Button("发送", variant="primary")
|
| 90 |
cancelBtn = gr.Button("取消", variant="secondary", visible=False)
|
| 91 |
+
with gr.Row():
|
| 92 |
emptyBtn = gr.Button(
|
| 93 |
"🧹 新的对话",
|
| 94 |
)
|
|
|
|
| 417 |
demo.queue(concurrency_count=CONCURRENT_COUNT).launch(
|
| 418 |
server_name="0.0.0.0",
|
| 419 |
server_port=7860,
|
| 420 |
+
auth=auth_list,
|
| 421 |
favicon_path="./assets/favicon.ico",
|
| 422 |
)
|
| 423 |
else:
|
|
|
|
| 432 |
if authflag:
|
| 433 |
demo.queue(concurrency_count=CONCURRENT_COUNT).launch(
|
| 434 |
share=False,
|
| 435 |
+
auth=auth_list,
|
| 436 |
favicon_path="./assets/favicon.ico",
|
| 437 |
inbrowser=True,
|
| 438 |
)
|
README.md
CHANGED
|
@@ -108,12 +108,14 @@
|
|
| 108 |
|
| 109 |
在`api_key.txt`中填写你的API-Key,注意不要填写任何无关内容。
|
| 110 |
|
| 111 |
-
在`auth.json
|
| 112 |
|
| 113 |
```
|
| 114 |
{
|
| 115 |
-
|
| 116 |
-
|
|
|
|
|
|
|
| 117 |
}
|
| 118 |
```
|
| 119 |
|
|
|
|
| 108 |
|
| 109 |
在`api_key.txt`中填写你的API-Key,注意不要填写任何无关内容。
|
| 110 |
|
| 111 |
+
在`auth.json`中填写你的用户名和密码,支持多用户。格式如下:
|
| 112 |
|
| 113 |
```
|
| 114 |
{
|
| 115 |
+
"user1": {
|
| 116 |
+
"username": "用户名",
|
| 117 |
+
"password": "密码"
|
| 118 |
+
}
|
| 119 |
}
|
| 120 |
```
|
| 121 |
|