agent.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from agent import Glm, Prompt
  2. class Agent:
  3. _instance = None
  4. def __new__(cls):
  5. if not cls._instance:
  6. cls._instance = super(Agent, cls).__new__(cls)
  7. cls._instance._initialized = False
  8. return cls._instance
  9. def __init__(self):
  10. if not self._initialized:
  11. self.glm = Glm()
  12. self._initialized = True
  13. def brand_key_word_judgement(self, brandname, title):
  14. """判断是否为关键词引流"""
  15. self.glm.set_modelname("glm-4-plus")
  16. prompt = Prompt.EXTRACT_INFO_FROM_TITLE + f"""
  17. 请根据上述逻辑,分析以下商品标题,并输出结果:
  18. 商品标题:{title}
  19. 给定的引流品牌:{brandname}"""
  20. response = self.glm.text_response(prompt)
  21. return response.content
  22. def license_product_judgement(self, title, license_list):
  23. """判断是否为未授权商品"""
  24. license_list_str = ""
  25. for product in license_list:
  26. license_list_str += f"{product}\n"
  27. self.glm.set_modelname("glm-4-plus")
  28. prompt = Prompt.LICENSE_LIST_FILTER + f"""
  29. 请根据上述逻辑,分析以下商品是否为授权生产的,并输出结果:
  30. 商品名称: {title}
  31. 已生产的产品清单:
  32. {license_list_str}
  33. 输出结果:
  34. - 如果找到匹配项则输出:
  35. ```json
  36. {{
  37. "in_list": true,
  38. "march_product": 匹配到的产品
  39. }}
  40. ```
  41. - 如果未找到匹配项则输出:
  42. ```json
  43. {{
  44. "in_list": false
  45. }}
  46. ```
  47. """
  48. response = self.glm.text_response(prompt)
  49. response = response.content.replace(' ', '').replace('\n', '').replace('\t', '').replace(":", ": ")
  50. return response
  51. def image_logo_judgement(self, logo_path, image_url):
  52. """判断图像中是否有指定品牌的logo"""
  53. self.glm.set_modelname("glm-4v-plus-0111")
  54. prompt = Prompt.IMAGE_LOGO_JUDGEMENT
  55. response = self.glm.multi_epoch_image_response(logo_path, image_url, prompt)
  56. response = response.content
  57. return response
  58. def product_image_similarity_judgement(self, image_url1, image_url2):
  59. """判断两个图像中的产品是否一致"""
  60. self.glm.set_modelname("glm-4v-plus-0111")
  61. prompt = Prompt.PRODUCT_JUDGEMENT
  62. response = self.glm.image_response(prompt, image_url1, image_url2)
  63. response = response.content
  64. return response
  65. def get_log_from_product_images(self, image_url_list):
  66. """从产品图像中获取商标信息"""
  67. self.glm.set_modelname("glm-4v-plus-0111")
  68. prompt = Prompt.LOGO_FROM_PRODUCTS
  69. response = self.glm.images_response(prompt, image_url_list)
  70. response = response.content
  71. return response
  72. if __name__ == "__main__":
  73. agent = Agent()
  74. # image_url1 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg'
  75. # image_url2 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg'
  76. # agent.product_image_similarity_judgement(image_url1, image_url2)
  77. image_url_list = [
  78. "https://gw.alicdn.com/imgextra/O1CN01EFpxoy1JdrhyyD8Gp_!!3378851052.jpg_q95.jpg_.webp",
  79. "https://img.alicdn.com/imgextra/i2/3378851052/O1CN01N1VBKz1JdriDQ7v3s_!!3378851052.jpg_q75.jpg_.webp",
  80. "https://img.alicdn.com/imgextra/i4/3378851052/O1CN01d1T16h1JdriBxQW8j_!!3378851052.jpg_q75.jpg_.webp",
  81. "https://img.alicdn.com/imgextra/i4/3378851052/O1CN01O5Gb861JdriAyGLo0_!!3378851052.jpg_q75.jpg_.webp",
  82. "https://img.alicdn.com/imgextra/i1/3378851052/O1CN01WT8Kg81JdriDTZ4lq_!!3378851052.jpg_q75.jpg_.webp",
  83. "https://img.alicdn.com/imgextra/i2/3378851052/O1CN01v4KL0D1JdriCrG3SH_!!3378851052.jpg_q75.jpg_.webp"
  84. ]
  85. response = agent.get_log_from_product_images(image_url_list)
  86. print(response)
  87. # ["http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/88/9b9027dd-95b7-4024-b71e-fb7cbfde16a1.jpg",
  88. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg",
  89. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg",
  90. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/91/d42ae626-8606-4e29-8a75-a247ab6be790.jpg"]