Bladeren bron

侵权流程展示界面demo

Sherlock 1 jaar geleden
bovenliggende
commit
5df21d1fbf
6 gewijzigde bestanden met toevoegingen van 99 en 8 verwijderingen
  1. 31 0
      .gradio/certificate.pem
  2. 3 2
      agent/glm.py
  3. 1 1
      config/config.py
  4. 2 4
      config/config.yaml
  5. 3 1
      db/__init__.py
  6. 59 0
      webui.py

+ 31 - 0
.gradio/certificate.pem

@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----

+ 3 - 2
agent/glm.py

@@ -10,7 +10,7 @@ class Glm:
     
     def __init__(self, model_name):
         if not self._initialized:
-            self.cfg = load_config()["deepseek"]
+            self.cfg = load_config()['glm']
             self.client = ZhipuAI(api_key=self.cfg["api_key"])
             self._initialized = True
             
@@ -27,4 +27,5 @@ class Glm:
     
 if __name__ == '__main__':
     glm = Glm("glm-4-flash")
-    glm.response("你好")
+    response = glm.response("请帮我编写一段快速排序的代码")
+    print(response)

+ 1 - 1
config/config.py

@@ -1,6 +1,6 @@
 import yaml
 
 def load_config():
-    with open('./config/config.yaml', 'r') as file:
+    with open('./config/config.yaml', 'r', encoding='utf-8') as file:
         config = yaml.safe_load(file)
     return config

+ 2 - 4
config/config.yaml

@@ -5,7 +5,5 @@ mongodb:
   password: "Andun@AI$2025*"  # 如果需要身份验证
   database: "ai-monitor"
 
-deepseek:
-  base_url: "https://api.deepseek.com"
-  api_key: "sk-32e513ecf25941d4b62b3de6584b4c9e"
-  model: "deepseek-chat"
+glm:
+  api_key: "4c4842830e4a43fdb3f81ed4e5f576ca.e6ciwHvKpBdYpelQ"

+ 3 - 1
db/__init__.py

@@ -1,4 +1,6 @@
 from db.db_client import MongoClientHelper
+from db.dao.dao import MongoDao
 __all__ = [
-    "MongoClientHelper"
+    "MongoClientHelper",
+    "MongoDao"
 ]

+ 59 - 0
webui.py

@@ -0,0 +1,59 @@
+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)