from config import simplemodel def fuzhu_util( label, options, work, aiclient, qwclient, sfclient ): xuanxiang=[] choice=[] letters='ABCDEFGHIJKLMNOPQRSTUVWXYZ' for i in range(len(options)): xuanxiang.append("给定修正、补充选项:" + options[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": "以下是一段工作内容的描述:" + work + '\n'}, {"role": "user", "content": "该工作内容的描述中包含了一道工序如下:" + label + '\n'}, {"role": "user", "content": "该工序与工作内容可能有稍许偏差,需要修正或补充。施工地区设定在南通市." + '; '.join(xuanxiang) + "\n请从上述选项中选择出符合工作内容描述,有明确依据确实可以修正、补充的选项并返回。例如,选项中如果有除锈等级的修正,则你需要分析工作内容描述中是否明确除锈等级。如果明确除锈等级,你应该选择对应选项。如果没有,则不得选择。再比如,选项中提及原材料每米重量5kg以内为小型构件。那么你要分析工作内容中是否给出原材料每米重量,如果给出,则你可以据此做出选择,如果没有给出,你不得选择该选项。再比如,选项中提及,(如果)设计采用螺栓的,如何如何,那么你要分析工作内容,如果工作内容明确描述设计使用螺栓的,你可以据此做出选择,如果没有,则你不得选择。再比如,选项中提到坡度大于10°的斜板,那么你要分析工作内容,如果工作内容提及斜板并且明确提及坡度,并且该坡度大于10°,则你可以据此做出选择,如果没有,则你不的选择。请给出分析并返回类似[A, B]这样的数组。如果没有任何选项符合,则返回空数组[]"}, ], extra_body={"thinking": {"type": "disabled"}}, ) json_string = completion.choices[0].message.content print(json_string) if len(json_string) < 8: for i in range(len(options)): if letters[i] in json_string: choice.append(letters[i]) else: completion = sfclient.chat.completions.create( model=simplemodel(), 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) for i in range(len(options)): if letters[i] in json_string: choice.append(letters[i]) return choice