webui.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import gradio as gr
  2. from db import MongoDao
  3. dao = MongoDao("obrand-ec")
  4. def get_merchant_list():
  5. """ 返回商户列表,显示 title,存储 outId """
  6. merchant_data = dao.get_fields_data(["outId", "title"])[:50]
  7. merchant_dict = {m["title"]: m["outId"] for m in merchant_data}
  8. return merchant_dict
  9. def display_outid(title):
  10. """ 根据商户名称返回对应的 outId """
  11. merchant_dict = get_merchant_list()
  12. return merchant_dict.get(title, "未找到对应 ID")
  13. def check_infringement(merchant):
  14. """ 模拟侵权检测逻辑 """
  15. return f"商户 {merchant} 的侵权检测结果:未发现侵权"
  16. merchant_dict = get_merchant_list()
  17. merchant_list_titles = list(merchant_dict.keys())
  18. with gr.Blocks() as demo:
  19. gr.Markdown("## 侵权识别系统", elem_id="header")
  20. with gr.Row():
  21. # 左侧部分
  22. with gr.Column():
  23. brand_dropdown = gr.Dropdown(
  24. ["李宁", "耐克", "阿迪达斯", "彪马"],
  25. label="品牌选择",
  26. value="李宁",
  27. interactive=True)
  28. search_box = gr.Textbox(label="搜索商户")
  29. search_button = gr.Button("搜索")
  30. merchant_list = gr.Dropdown(
  31. merchant_list_titles,
  32. label="商户列表",
  33. interactive=True
  34. )
  35. check_button = gr.Button("查询侵权")
  36. # 右侧部分
  37. with gr.Column():
  38. with gr.Row():
  39. image_display = gr.Image(label="商品图片", interactive=False)
  40. product_info = gr.Textbox(label="商品信息", interactive=False)
  41. infringement_result = gr.Textbox(label="侵权识别结果", interactive=False)
  42. # 事件绑定
  43. merchant_list.change(display_outid, inputs=merchant_list, outputs=product_info)
  44. check_button.click(check_infringement, inputs=merchant_list, outputs=infringement_result)
  45. demo.launch(share=True)