谦言 commited on
Commit
c66e342
·
1 Parent(s): 0a72604

add multi-people support

Browse files
Files changed (1) hide show
  1. app.py +54 -9
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import importlib
2
  import os
3
  import random
@@ -75,7 +76,11 @@ def process_configuration(uuid_str, bot_avatar, name, description,
75
  knowledge_files, capabilities_checkboxes,
76
  openapi_schema, openapi_auth, openapi_auth_apikey,
77
  openapi_auth_apikey_type, openapi_privacy_policy,
78
- state):
 
 
 
 
79
  uuid_str = check_uuid(uuid_str)
80
  tool_cfg = state['tool_cfg']
81
  capabilities = state['capabilities']
@@ -406,7 +411,11 @@ with demo:
406
  }
407
 
408
  # tab 切换的事件处理
409
- def on_congifure_tab_select(_state, uuid_str):
 
 
 
 
410
  uuid_str = check_uuid(uuid_str)
411
  configure_updated = _state.get('configure_updated', False)
412
  if configure_updated:
@@ -448,7 +457,11 @@ with demo:
448
  gr.Dataset.update(samples=suggestion)
449
  }
450
 
451
- def create_send_message(chatbot, input, _state, uuid_str):
 
 
 
 
452
  uuid_str = check_uuid(uuid_str)
453
  # 将发送的消息添加到聊天历史
454
  builder_agent = _state['builder_agent']
@@ -512,7 +525,11 @@ with demo:
512
  ])
513
 
514
  # 配置 "Preview" 的消息发送功能
515
- def preview_send_message(chatbot, input, _state, uuid_str):
 
 
 
 
516
  # 将发送的消息添加到聊天历史
517
  _uuid_str = check_uuid(uuid_str)
518
  user_agent = _state['user_agent']
@@ -568,7 +585,11 @@ with demo:
568
  inputs=[user_chatbot, preview_chat_input, state, uuid_str],
569
  outputs=[user_chatbot, user_chat_bot_cover, preview_chat_input])
570
 
571
- def upload_file(chatbot, upload_button, _state, uuid_str):
 
 
 
 
572
  uuid_str = check_uuid(uuid_str)
573
  new_file_paths = []
574
  if 'file_paths' in _state:
@@ -606,7 +627,11 @@ with demo:
606
  outputs=[user_chatbot, user_chat_bot_cover, preview_chat_input])
607
 
608
  # configuration for publish
609
- def publish_agent(name, uuid_str, state):
 
 
 
 
610
  uuid_str = check_uuid(uuid_str)
611
  env_params = {}
612
  env_params.update(
@@ -710,7 +735,28 @@ with demo:
710
  publish_hint_md
711
  ])
712
 
713
- def init_all(uuid_str, _state):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
714
  uuid_str = check_uuid(uuid_str)
715
  builder_cfg, model_cfg, tool_cfg, available_tool_list, _, _ = parse_configuration(
716
  uuid_str)
@@ -727,9 +773,8 @@ with demo:
727
  create_send_button:
728
  gr.Button.update(value=i18n.get('send'), interactive=True),
729
  }
730
-
731
  demo.load(
732
- init_all, inputs=[uuid_str, state], outputs=configure_updated_outputs)
733
 
734
  demo.queue(concurrency_count=10)
735
  demo.launch(show_error=True)
 
1
+ import hashlib
2
  import importlib
3
  import os
4
  import random
 
76
  knowledge_files, capabilities_checkboxes,
77
  openapi_schema, openapi_auth, openapi_auth_apikey,
78
  openapi_auth_apikey_type, openapi_privacy_policy,
79
+ state, request: gr.Request):
80
+ if request:
81
+ uuid_str = generate_user_id(request.headers)
82
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
83
+
84
  uuid_str = check_uuid(uuid_str)
85
  tool_cfg = state['tool_cfg']
86
  capabilities = state['capabilities']
 
411
  }
412
 
413
  # tab 切换的事件处理
414
+ def on_congifure_tab_select(_state, uuid_str, request: gr.Request):
415
+ if request:
416
+ uuid_str = generate_user_id(request.headers)
417
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
418
+
419
  uuid_str = check_uuid(uuid_str)
420
  configure_updated = _state.get('configure_updated', False)
421
  if configure_updated:
 
457
  gr.Dataset.update(samples=suggestion)
458
  }
459
 
460
+ def create_send_message(chatbot, input, _state, uuid_str, request: gr.Request):
461
+ if request:
462
+ uuid_str = generate_user_id(request.headers)
463
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
464
+
465
  uuid_str = check_uuid(uuid_str)
466
  # 将发送的消息添加到聊天历史
467
  builder_agent = _state['builder_agent']
 
525
  ])
526
 
527
  # 配置 "Preview" 的消息发送功能
528
+ def preview_send_message(chatbot, input, _state, uuid_str, request: gr.Request):
529
+ if request:
530
+ uuid_str = generate_user_id(request.headers)
531
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
532
+
533
  # 将发送的消息添加到聊天历史
534
  _uuid_str = check_uuid(uuid_str)
535
  user_agent = _state['user_agent']
 
585
  inputs=[user_chatbot, preview_chat_input, state, uuid_str],
586
  outputs=[user_chatbot, user_chat_bot_cover, preview_chat_input])
587
 
588
+ def upload_file(chatbot, upload_button, _state, uuid_str, request: gr.Request):
589
+ if request:
590
+ uuid_str = generate_user_id(request.headers)
591
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
592
+
593
  uuid_str = check_uuid(uuid_str)
594
  new_file_paths = []
595
  if 'file_paths' in _state:
 
627
  outputs=[user_chatbot, user_chat_bot_cover, preview_chat_input])
628
 
629
  # configuration for publish
630
+ def publish_agent(name, uuid_str, state, request: gr.Request):
631
+ if request:
632
+ uuid_str = generate_user_id(request.headers)
633
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
634
+
635
  uuid_str = check_uuid(uuid_str)
636
  env_params = {}
637
  env_params.update(
 
735
  publish_hint_md
736
  ])
737
 
738
+
739
+ def generate_user_id(request_headers):
740
+ # 提取所需的信息
741
+ ip_address = request_headers['host']
742
+ user_agent = request_headers['user-agent']
743
+ accept_language = request_headers['accept-language']
744
+ cookie = request_headers['cookie']
745
+
746
+ # 将信息组合成一个字符串
747
+ combined_info = f"{ip_address}-{user_agent}-{accept_language}-{cookie}"
748
+
749
+ # 使用哈希函数生成唯一标识符
750
+ user_id = hashlib.sha256(combined_info.encode()).hexdigest()
751
+
752
+ return user_id
753
+
754
+
755
+ def init_all(uuid_str, _state, request: gr.Request):
756
+ if request:
757
+ uuid_str = generate_user_id(request.headers)
758
+ logger.info(uuid=uuid_str, message='init_all', step='generate_uuid')
759
+
760
  uuid_str = check_uuid(uuid_str)
761
  builder_cfg, model_cfg, tool_cfg, available_tool_list, _, _ = parse_configuration(
762
  uuid_str)
 
773
  create_send_button:
774
  gr.Button.update(value=i18n.get('send'), interactive=True),
775
  }
 
776
  demo.load(
777
+ init_all, inputs=[uuid_str, state,], outputs=configure_updated_outputs)
778
 
779
  demo.queue(concurrency_count=10)
780
  demo.launch(show_error=True)