from template import expression
from config import simplemodel
def callzaihuansuan0103_1(bianma, A,B,C, aiclient, sfclient):
    completion = aiclient.chat.completions.create(
        model="glm-4.5-flash",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": " 背景知识：已知预应力高强混凝土管桩（PHC）型号定义为PHC-AAA(BB)CC-DDD-E1,E2,E3,其中AAA代表管桩外径，BB代表管桩壁厚，CC表示型号，DDD表示混凝土强度等级，E1/E2/E3表示分段桩长。例如，PHC-500(125)-AB-C80-9,7表示外径500mm,壁厚125mm,型号AB，混凝土强度C80,分段桩长分别为9米和7米，总桩长16米"},
            {"role": "user", "content": " 背景知识：送桩 是指当桩顶设计标高低于地面时,需要把桩顶打入到设计标高。计算时，送桩长度为自桩顶面到自然地坪高度另加0.5米,送桩系数为送桩长度除以总桩长。例如，某桩总长10米，送桩长度2米，则送桩系数为2米除以10米等于0.2"},
        {"role": "user", "content": "问题描述：  计量单位可以用名称或者符号表示，常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3。给定一段工作内容描述，内容为" + C + "，给定其工作量计量单位，内容为" + A + "，记作A，再给定一个工作量计量单位，内容为" + B + "，记作B。若A表示长度米，B表示体积立方米，且工作内容涉及送桩，则可以计算桩的截面积(单位为平方米)，作为换算系数coefficient_a，再计算送桩系数，作为换算系数coefficient_b, 最终返回A=coefficient_a*coefficient_b*B。例如，工作内容涉及桩的截面积是0.1平方米，送桩系数为0.1，则返回A=0.01*B。工作内容涉及桩的截面积为0.2，送桩系数为0.2，则返回A=0.04*B。若不符合上述情况，则返回A<>B。例如，A表示长度，B表示面积，则返回A<>B。再例如，A表示重量，B表示体积，则返回A<>B"},
        ],
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    completion = sfclient.chat.completions.create(
        model=simplemodel(),
        messages=expression(json_string),
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    return json_string

def callzaihuansuan0103_2(bianma, A,B,C, aiclient, qwclient, sfclient):
    print("0103_2")
    print(A)
    print(B)
    print(C)
    completion = aiclient.chat.completions.create(
        model="glm-4.5-air",
        #model="Qwen/Qwen3-14B",
        #model="qwen3-14b",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": " 背景知识：已知预应力高强混凝土管桩（PHC）型号定义为PHC-AAA(BB)CC-DDD-E1,E2,E3,其中AAA代表管桩外径，BB代表管桩壁厚，CC表示型号，DDD表示混凝土强度等级，E1/E2/E3表示分段桩长。例如，PHC-500(125)-AB-C80-9,7表示外径500mm,壁厚125mm,型号AB，混凝土强度C80,分段桩长分别为9米和7米，总桩长16米"},
            {"role": "user", "content": " 背景知识：送桩 是指当桩顶设计标高低于地面时,需要把桩顶打入到设计标高。计算时，送桩长度为自桩顶面到自然地坪高度另加0.5米"},
        {"role": "user", "content": "问题描述：  计量单位可以用名称或者符号表示，常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3, 表示数目的符号“个”。给定一段工作内容描述，内容为" + C + "，给定其工作量计量单位，内容为" + A + "，记作A，再给定一个工作量计量单位，内容为" + B + "，记作B。请先辨别出上述个单位表示什么，然后解决下面的问题。如果经过辨别后，你认为A表示长度米，B表示体积立方米，且工作内容涉及打桩、压桩，则可以计算桩的截面积(单位为平方米)，作为换算系数，返回A=coefficient*B。例如，工作内容涉及桩的截面积是0.1平方米，则返回A=0.1*B。工作内容涉及桩的截面积为0.2，则返回A=0.2*B。若A不表示长度米，或者B不表示体积立方米，或工作内容不符合上述情况，则返回A<>B。例如，A表示长度，B表示面积，则返回A<>B。再例如，A表示重量，B表示体积，则返回A<>B, 再比如，A表示长度，B表示数目（个），则返回A<>B"},
        ],
        #extra_body={"enable_thinking": False},
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    completion = sfclient.chat.completions.create(
        model=simplemodel(),
        messages=expression(json_string),
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    return json_string

def callzaihuansuan0103_3(bianma, A,B,C, aiclient, qwclient, sfclient):
    print("0103_3")
    print(A)
    print(B)
    print(C)
    completion = aiclient.chat.completions.create(
        model="glm-4.5-flash",
        #model="Qwen/Qwen3-14B",
        #model="qwen3-14b",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": " 背景知识：已知预应力高强混凝土管桩（PHC）型号定义为PHC-AAA(BB)CC-DDD-E1,E2,E3,其中AAA代表管桩外径，BB代表管桩壁厚，CC表示型号，DDD表示混凝土强度等级，E1/E2/E3表示分段桩长。例如，PHC-500(125)-AB-C80-9,7表示外径500mm,壁厚125mm,型号AB，混凝土强度C80,分段桩长分别为9米和7米，总桩长16米"},
            {"role": "user", "content": " 背景知识：接桩，可以将多节管桩连续打入地基，直至达到设计深度.焊接是一种接桩的方法。两节桩接桩，有一个接头；三节桩焊接，有两个接头；以此类推；可以定义接桩系数，为单位长度的接头个数。例如，桩总长10米，有接头1个，则接桩系数为0.1；再例如，桩总长20米，有接头4个，则接桩系数为0.2"},
        {"role": "user", "content": "问题描述：  计量单位可以用名称或者符号表示，常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3, 表示数目的符号“个”。给定一段工作内容描述，内容为" + C + "，该工作需要进行接桩，给定其工作量计量单位，内容为" + A + "，记作A，再给定一个工作量计量单位，内容为" + B + "，记作B。请先辨别出上述个单位表示什么，然后解决下面的问题。如果经过辨别后，你认为A表示长度米，B表示接头个数，且工作内容涉及接桩，则可以计算接桩系数，作为换算系数，返回A=coefficient*B。例如，工作内容涉及桩的接桩系数为0.1，则返回A=0.1*B。工作内容涉及桩的接桩系数为0.2，则返回A=0.2*B。若A不表示长度米，或者B不表示接头个数，或工作内容不符合上述情况，则返回A<>B。例如，A表示长度，B表示面积，则返回A<>B。再例如，A表示重量，B表示体积，则返回A<>B"},
        ],
        #extra_body={"enable_thinking": False},
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    completion = sfclient.chat.completions.create(
        model=simplemodel(),
        messages=expression(json_string),
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    return json_string

