def adjust( selected, data, aiclient, qwclient, sfclient ): options=[ ['第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以内地砖 干硬性水泥砂浆', '第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以外地砖 干硬性水泥砂浆'], ['第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以内地砖 水泥砂浆', '第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以外地砖 水泥砂浆'], ['第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以内地砖 干粉型粘结剂','第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼地面单块0.4m2以外地砖 干粉型粘结剂'], ['第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼梯单块0.1m2以内地砖 水泥砂浆', '第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼梯单块0.4m2以内地砖 水泥砂浆', '第十三章 楼地面工程 13.4 块料面层 13.4.4 地砖、橡胶塑料板 楼梯单块0.4m2以外地砖 水泥砂浆'], ['第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.06m2以内墙砖 砂浆粘贴 墙面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以内墙砖 砂浆粘贴 墙面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以上墙砖 砂浆粘贴 墙面'], ['第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.06m2以内墙砖 砂浆粘贴 柱、梁、零星面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以内墙砖 砂浆粘贴 柱、梁、零星面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以上墙砖 砂浆粘贴 柱、梁、零星面'], ['第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.06m2以内墙砖 干粉型粘结剂粘贴 墙面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以内墙砖 干粉型粘结剂粘贴 墙面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以上墙砖 干粉型粘结剂粘贴 墙面'], ['第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.06m2以内墙砖 干粉型粘结剂粘贴 柱、梁、零星面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以内墙砖 干粉型粘结剂粘贴 柱、梁、零星面', '第十四章 墙柱面工程 14.3 镶贴块料面层及幕墙 14.3.1 瓷砖 单块面积0.18m2以上墙砖 干粉型粘结剂粘贴 柱、梁、零星面'] ] hit = [] hit_group = [] for entry in selected: for group in options: if entry in group: hit = [entry] hit_group = group if len(hit) == 0: return selected xuanxiang=[] choice=[] letters='ABC' for i in range(len(hit_group)): xuanxiang.append("给定一个选项:" + hit_group[i] + ', 记作' + letters[i]) completion = aiclient.chat.completions.create( model="glm-4.5-air", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "长度单位可以是米,是厘米,是毫米。如果未注明,则默认是毫米."}, {"role": "user", "content": "以下是一段工作内容的描述: " + data['tz'] + '\n其中可能包括了地砖或者墙砖的尺寸。譬如,10厚800X800防滑地砖,就表明地砖尺寸为800毫米乘以800毫米\n根据尺寸可以算出单块砖的面积0.64m2。再例如,10厚600X600地砖,尺寸600毫米,面积0.36m2' + ';'.join(xuanxiang) + "\n请根据工作内容计算出面积,并从上述选项中选择单块面积最恰当的一个选项并返回。请给出分析过程并返回A或者B或者C作为答案.如果无法确定,请返回A"}, ], extra_body={"thinking": {"type": "disabled"}}, ) json_string = completion.choices[0].message.content print(json_string) if len(json_string) < 8: if 'A' in json_string: choice=[hit_group[0]] if 'B' in json_string: choice=[hit_group[1]] if 'C' in json_string: choice=[hit_group[2]] else: completion = aiclient.chat.completions.create( model="glm-4.5-flash", messages=[ {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"}, {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于A或者B或者C的选项作为答案,请将该答案输出"}, ], extra_body={"thinking": {"type": "disabled"}}, ) json_string = completion.choices[0].message.content print(json_string) if 'A' in json_string: choice=[hit_group[0]] if 'B' in json_string: choice=[hit_group[1]] if 'C' in json_string: choice=[hit_group[2]] selected = [x for x in selected if x not in hit] selected = selected + choice return selected