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
