huansuan0110.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import re
  2. with open('gangjiegouhuansuan','r') as f:
  3. content = f.read()
  4. import json
  5. obj = json.loads(content)
  6. options=[]
  7. for i in range(len(obj['mc'])):
  8. options.append('给定选项A'+str(i)+', 内容为'+obj['mc'][i])
  9. options = ','.join(options)
  10. def callzaihuansuan0110_1(bianma, label, A,B,C, aiclient, qwclient):##C->tz
  11. completion = aiclient.chat.completions.create(
  12. model="glm-4.5-flash",
  13. #model="Qwen/Qwen3-14B",
  14. #model="qwen3-14b",
  15. messages=[
  16. {"role": "system", "content": "You are a helpful assistant."},
  17. {"role": "user", "content": "在施工上下文中,描述厚度,不加计量单位,则默认指的是毫米(mm)。例如,找坡厚度30,指的是30mm厚"},
  18. {"role": "user", "content": "问题描述: 计量单位可以用名称或者符号表示,常用的符号包括表示米的符号m,表示平方米的符号m2, 表示立方米的符号m3.给定一段工作内容描述,内容为" + C + ",给定其工作量计量单位,内容为" + A + ",记作A,再给定一个工作量计量单位,内容为" + B + ",记作B。请先辨别出上述个单位表示什么,然后解决下面的问题。如果经过辨别后,你认为A表示面积,B表示体积,且工作内容涉及混凝土找坡,则可以以找坡厚度(米)作为换算系数,返回A=coefficient*B。例如,工作内容涉及找坡厚度30mm,则返回A=0.03*B。若A不表示面积,或者B不表示体积,或工作内容没有给出找坡厚度,则返回A<>B。例如,A表示长度,B表示面积,则返回A<>B。再例如,A表示重量,B表示体积,则返回A<>B, 再比如,A表示长度,B表示数目(个),则返回A<>B"},
  19. ],
  20. #extra_body={"enable_thinking": False},
  21. extra_body={"thinking": {"type": "disabled"}},
  22. )
  23. json_string = completion.choices[0].message.content
  24. print(json_string)
  25. completion = aiclient.chat.completions.create(
  26. model="glm-4.5-flash",
  27. messages=[
  28. {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
  29. {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于A=B的表达式作为答案,表达式中不含有圆周率π, 请将该最终答案输出"},
  30. ],
  31. extra_body={"thinking": {"type": "disabled"}},
  32. )
  33. json_string = completion.choices[0].message.content
  34. print(json_string)
  35. return json_string