agent.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. if __name__ == "__main__":
  66. agent = Agent()
  67. image_url1 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg'
  68. image_url2 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg'
  69. agent.product_image_similarity_judgement(image_url1, image_url2)
  70. # ["http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/88/9b9027dd-95b7-4024-b71e-fb7cbfde16a1.jpg",
  71. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg",
  72. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg",
  73. # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/91/d42ae626-8606-4e29-8a75-a247ab6be790.jpg"]