import re
from config import simplemodel
from template import expression
with open('gangjiegouhuansuan','r') as f:
    content = f.read()
import json
obj = json.loads(content)
options=[]
for i in range(len(obj['mc'])):
    options.append('给定选项A'+str(i)+', 内容为'+obj['mc'][i])
options = ','.join(options)
def callzaihuansuan0111_1(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
    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": "在施工上下文中，钢筋网片规格一般描述为Φ4@200，表示直径4毫米，间距200毫米。再比如，Φ6@150，表示直径6毫米，间距150毫米"},
        {"role": "user", "content": "问题描述：  给定一段工作内容描述，内容为" + C + "，请找出钢筋网片的规格并返回,例如，如果规格为Φ4@200，请返回Φ4@200,如果没有找到，则返回miss"},
        ],
        #extra_body={"enable_thinking": False},
        extra_body={"thinking": {"type": "disabled"}},
    )
    json_string = completion.choices[0].message.content
    print(json_string)
    if '@' in json_string:
        parts = json_string.split('@')
        pa = re.compile(r'\d+')
        zhijing = pa.search(parts[0][-10:]).group()
        jianju = pa.search(parts[1][:10]).group()
        print('zhijing')
        print(zhijing)
        print('jianju')
        print(jianju)
        zhijing = int(zhijing)
        jianju = int(jianju)
        midu = 2 / jianju
        weight = 0.00617 * zhijing * zhijing * midu
        weight = 'A=' + str(weight) + '*B'
        return '''
        {
        'answer': ''' + weight + '''
        }
        '''
    else:
        return '''
    {
    'answer': 'A<>B'
    }
    '''

    
def callzaihuansuan0111_2(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
    completion = aiclient.chat.completions.create(
        model="glm-4.5-flash",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": " 背景知识：厚度可以用单位米（m）来衡量，可以用单位厘米（cm）来衡量，可以用单位毫米（mm）来衡量；如果没有明确单位，默认指毫米"},
        {"role": "user", "content": "问题描述：  计量单位可以用名称或者符号表示，常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3。给定一段工作内容描述，内容为" + C + "，给定其工作量计量单位，内容为" + A + "，记作A，再给定一个工序描述， 内容为" + label + ",它属于前述工作内容的一部分。它的计量单位为" + B + "，记作B。若A表示面积，B表示体积，且工序涉及垫层，则可以从工作内容中识别出垫层的厚度(米)，作为换算系数coefficient，最终返回A=coefficient*B。例如，工作内容涉及垫层的厚度是0.1米，则返回A=0.1*B。工作内容涉及垫层的厚度为200mm，则换算为0.2米，返回A=0.2*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 callzaihuansuan0111_3(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
    completion = aiclient.chat.completions.create(
        model="glm-4.5-flash",
        messages=[
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": " 背景知识：高度、宽度可以用单位米（m）来衡量，可以用单位厘米（cm）来衡量，可以用单位毫米（mm）来衡量；如果没有明确单位，默认指毫米"},
        {"role": "user", "content": "问题描述：  计量单位可以用名称或者符号表示，常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3。给定一段工作内容描述，内容为" + C + "，给定其工作量计量单位，内容为" + A + "，记作A，再给定一个工序描述， 内容为" + label + ",它属于前述工作内容的一部分。它的计量单位为" + B + "，记作B。若A表示面积，B表示长度，且工序涉及踢脚线，则可以从工作内容中识别出踢脚线的高度(米)，然后根据矩形面积和高度，求出长度，作为换算系数coefficient，最终返回A=coefficient*B。例如，工作内容涉及踢脚线的高度是100毫米（0.1米），A表示面积是1m2(1平方米),则长度为10m,而B表示10m,则返回A=1*B。工作内容涉及踢脚线的高度为200mm，换算为0.2米，A表示面积1m2(1平方米)，则可以求得矩形长度为5米，因为B表示长度为10米，所以返回A=0.5*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
