huansuan0112.py 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import re
  2. from config import simplemodel
  3. from template import expression
  4. with open('gangjiegouhuansuan','r') as f:
  5. content = f.read()
  6. import json
  7. obj = json.loads(content)
  8. options=[]
  9. for i in range(len(obj['mc'])):
  10. options.append('给定选项A'+str(i)+', 内容为'+obj['mc'][i])
  11. options = ','.join(options)
  12. def callzaihuansuan0112_1(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
  13. completion = aiclient.chat.completions.create(
  14. model="glm-4.5-flash",
  15. messages=[
  16. {"role": "system", "content": "You are a helpful assistant."},
  17. {"role": "user", "content": " 背景知识:长度可以用单位米(m)来衡量,可以用单位厘米(cm)来衡量,可以用单位毫米(mm)来衡量;如果没有明确单位,默认指毫米"},
  18. {"role": "user", "content": "问题描述: 计量单位可以用名称或者符号表示,常用的符号包括表示米的符号m,表示千米的符号km,表示吨的符号t,表示千克的符号kg,表示平方米的符号m2,表示立方米的符号m3。给定一段工作内容描述,内容为" + C + ",给定其工作量计量单位,内容为" + A + ",记作A,再给定一个工序描述, 内容为" + label + ",它属于前述工作内容的一部分。它的计量单位为" + B + ",记作B。若A表示面积,B表示房间数量,且工序涉及卫生间隔断,则可以从工作内容中识别出每间隔断的宽度、高度(米),计算面积,取倒数作为换算系数coefficient,最终返回A=coefficient*B。例如,工作内容涉及隔断的高度是900(毫米),宽400(毫米),则可计算得面积0.36(平方米),求倒数得每平方米面积对应2.78间隔断。因为单位B是10间(不是1间,需按比例换算),所以最终返回A=0.278*B。若不符合上述情况,则返回A<>B。例如,A表示长度,B表示面积,则返回A<>B。再例如,A表示重量,B表示体积,则返回A<>B"},
  19. ],
  20. extra_body={"thinking": {"type": "disabled"}},
  21. )
  22. json_string = completion.choices[0].message.content
  23. print(json_string)
  24. completion = sfclient.chat.completions.create(
  25. model=simplemodel(),
  26. messages=expression(json_string),
  27. extra_body={"thinking": {"type": "disabled"}},
  28. )
  29. json_string = completion.choices[0].message.content
  30. print(json_string)
  31. return json_string
  32. def callzaihuansuan0111_3(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
  33. completion = aiclient.chat.completions.create(
  34. model="glm-4.5-flash",
  35. messages=[
  36. {"role": "system", "content": "You are a helpful assistant."},
  37. {"role": "user", "content": " 背景知识:高度、宽度可以用单位米(m)来衡量,可以用单位厘米(cm)来衡量,可以用单位毫米(mm)来衡量;如果没有明确单位,默认指毫米"},
  38. {"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"},
  39. ],
  40. extra_body={"thinking": {"type": "disabled"}},
  41. )
  42. json_string = completion.choices[0].message.content
  43. print(json_string)
  44. completion = sfclient.chat.completions.create(
  45. model=simplemodel(),
  46. messages=expression(json_string),
  47. extra_body={"thinking": {"type": "disabled"}},
  48. )
  49. json_string = completion.choices[0].message.content
  50. print(json_string)
  51. return json_string