from agent import Glm, Prompt class Agent: _instance = None def __new__(cls): if not cls._instance: cls._instance = super(Agent, cls).__new__(cls) cls._instance._initialized = False return cls._instance def __init__(self): if not self._initialized: self.glm = Glm() self._initialized = True def judge_title_relation(self, basic_title, url_title): """判断基础标题与链接标题的相关性,过滤错误数据的爬取""" self.glm.set_modelname("glm-4-plus") def brand_key_word_judgement(self, brandname, title): """判断是否为关键词引流""" self.glm.set_modelname("glm-4-plus") prompt = Prompt.EXTRACT_INFO_FROM_TITLE + f""" 请根据上述逻辑,分析以下商品标题,并输出结果: 商品标题:{title} 给定的引流品牌:{brandname}""" response = self.glm.text_response(prompt) return response.content def license_product_judgement(self, title, license_list): """判断是否为未授权商品""" license_list_str = "" for product in license_list: license_list_str += f"{product}\n" self.glm.set_modelname("glm-4-plus") prompt = Prompt.LICENSE_LIST_FILTER + f""" 请根据上述逻辑,分析以下商品是否为授权生产的,并输出结果: 商品名称: {title} 已生产的产品清单: {license_list_str} 输出结果: - 如果找到匹配项则输出: ```json {{ "in_list": true, "march_product": 匹配到的产品 }} ``` - 如果未找到匹配项则输出: ```json {{ "in_list": false }} ``` """ response = self.glm.text_response(prompt) response = response.content.replace(' ', '').replace('\n', '').replace('\t', '').replace(":", ": ") return response def image_logo_judgement(self, logo_path, image_url): """判断图像中是否有指定品牌的logo""" self.glm.set_modelname("glm-4v-plus-0111") prompt = Prompt.IMAGE_LOGO_JUDGEMENT response = self.glm.multi_epoch_image_response(logo_path, image_url, prompt) response = response.content return response def product_image_similarity_judgement(self, image_url1, image_url2): """判断两个图像中的产品是否一致""" self.glm.set_modelname("glm-4v-plus-0111") prompt = Prompt.PRODUCT_JUDGEMENT response = self.glm.image_response(prompt, image_url1, image_url2) response = response.content return response def get_log_from_product_images(self, image_url_list): """从产品图像中获取商标信息""" self.glm.set_modelname("glm-4v-plus-0111") prompt = Prompt.LOGO_FROM_PRODUCTS response = self.glm.images_response(prompt, image_url_list) response = response.content return response def multi_products_images_similarity_judgement(self, product_image_url_list, basic_product_image_url_list): self.glm.set_modelname("glm-4v-plus-0111") prompt = Prompt.MULTI_PRODUCT_JUDGEMENT response = self.glm.multi_images_similarity_judge(product_image_url_list, basic_product_image_url_list, prompt) response = response.content return response if __name__ == "__main__": agent = Agent() # image_url1 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg' # image_url2 = 'http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg' # agent.product_image_similarity_judgement(image_url1, image_url2) image_url_list = [ "https://gw.alicdn.com/imgextra/O1CN01EFpxoy1JdrhyyD8Gp_!!3378851052.jpg_q95.jpg_.webp", "https://img.alicdn.com/imgextra/i2/3378851052/O1CN01N1VBKz1JdriDQ7v3s_!!3378851052.jpg_q75.jpg_.webp", "https://img.alicdn.com/imgextra/i4/3378851052/O1CN01d1T16h1JdriBxQW8j_!!3378851052.jpg_q75.jpg_.webp", "https://img.alicdn.com/imgextra/i4/3378851052/O1CN01O5Gb861JdriAyGLo0_!!3378851052.jpg_q75.jpg_.webp", "https://img.alicdn.com/imgextra/i1/3378851052/O1CN01WT8Kg81JdriDTZ4lq_!!3378851052.jpg_q75.jpg_.webp", "https://img.alicdn.com/imgextra/i2/3378851052/O1CN01v4KL0D1JdriCrG3SH_!!3378851052.jpg_q75.jpg_.webp" ] response = agent.get_log_from_product_images(image_url_list) print(response) # ["http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/88/9b9027dd-95b7-4024-b71e-fb7cbfde16a1.jpg", # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/0902/118/27466cf6-fb28-4580-9009-95a3763e06bf.jpg", # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/169/8ca15632-9cb9-40e7-8915-e6773e17a05e.jpg", # "http://h2.appsimg.com/a.appsimg.com/upload/merchandise/pdcvis/613214/2024/1120/91/d42ae626-8606-4e29-8a75-a247ab6be790.jpg"]