Spaces:
Sleeping
Sleeping
import hashlib | |
import gradio as gr | |
import random | |
import time | |
def generate_user_id(request_headers): | |
# 提取所需的信息 | |
ip_address = request_headers['host'] | |
user_agent = request_headers['user-agent'] | |
accept_language = request_headers['accept-language'] | |
if 'cookie' in request_headers: | |
cookie = request_headers['cookie'] | |
else: | |
cookie = 'empty' | |
print(f'cookie not in request_headers: {request_headers}') | |
# 将信息组合成一个字符串 | |
combined_info = f"{ip_address}-{user_agent}-{accept_language}-{cookie}" | |
print('combined_info:', combined_info) | |
# 使用哈希函数生成唯一标识符 | |
user_id = hashlib.sha256(combined_info.encode()).hexdigest() | |
print('user_id:', user_id) | |
return f"{combined_info}\n user_id:{user_id}" | |
def page_load(request: gr.Request): | |
uuid = generate_user_id(request.headers) | |
print('[page_load] uuid:', uuid) | |
with gr.Blocks() as demo: | |
chatbot = gr.Chatbot() | |
msg = gr.Textbox() | |
clear = gr.ClearButton([msg, chatbot]) | |
def respond(message, chat_history, request: gr.Request): | |
uuid = generate_user_id(request_headers=request.headers) | |
bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"]) | |
chat_history.append((message, bot_message)) | |
time.sleep(2) | |
return "", chat_history | |
msg.submit(respond, [msg, chatbot], [msg, chatbot]) | |
demo.load(page_load, None, None) | |
if __name__ == "__main__": | |
demo.launch() |