import gradio as gr from db import MongoDao dao = MongoDao("obrand-ec") def get_merchant_list(): """ 返回商户列表,显示 title,存储 outId """ merchant_data = dao.get_fields_data(["outId", "title"])[:50] merchant_dict = {m["title"]: m["outId"] for m in merchant_data} return merchant_dict def display_outid(title): """ 根据商户名称返回对应的 outId """ merchant_dict = get_merchant_list() return merchant_dict.get(title, "未找到对应 ID") def check_infringement(merchant): """ 模拟侵权检测逻辑 """ return f"商户 {merchant} 的侵权检测结果:未发现侵权" merchant_dict = get_merchant_list() merchant_list_titles = list(merchant_dict.keys()) with gr.Blocks() as demo: gr.Markdown("## 侵权识别系统", elem_id="header") with gr.Row(): # 左侧部分 with gr.Column(): brand_dropdown = gr.Dropdown( ["李宁", "耐克", "阿迪达斯", "彪马"], label="品牌选择", value="李宁", interactive=True) search_box = gr.Textbox(label="搜索商户") search_button = gr.Button("搜索") merchant_list = gr.Dropdown( merchant_list_titles, label="商户列表", interactive=True ) check_button = gr.Button("查询侵权") # 右侧部分 with gr.Column(): with gr.Row(): image_display = gr.Image(label="商品图片", interactive=False) product_info = gr.Textbox(label="商品信息", interactive=False) infringement_result = gr.Textbox(label="侵权识别结果", interactive=False) # 事件绑定 merchant_list.change(display_outid, inputs=merchant_list, outputs=product_info) check_button.click(check_infringement, inputs=merchant_list, outputs=infringement_result) demo.launch(share=True)