huansuan0111.py 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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 callzaihuansuan0111_1(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
  13. completion = aiclient.chat.completions.create(
  14. model="glm-4.5-flash",
  15. #model="Qwen/Qwen3-14B",
  16. #model="qwen3-14b",
  17. messages=[
  18. {"role": "system", "content": "You are a helpful assistant."},
  19. {"role": "user", "content": "在施工上下文中,钢筋网片规格一般描述为Φ4@200,表示直径4毫米,间距200毫米。再比如,Φ6@150,表示直径6毫米,间距150毫米"},
  20. {"role": "user", "content": "问题描述: 给定一段工作内容描述,内容为" + C + ",请找出钢筋网片的规格并返回,例如,如果规格为Φ4@200,请返回Φ4@200,如果没有找到,则返回miss"},
  21. ],
  22. #extra_body={"enable_thinking": False},
  23. extra_body={"thinking": {"type": "disabled"}},
  24. )
  25. json_string = completion.choices[0].message.content
  26. print(json_string)
  27. if '@' in json_string:
  28. parts = json_string.split('@')
  29. pa = re.compile(r'\d+')
  30. zhijing = pa.search(parts[0][-10:]).group()
  31. jianju = pa.search(parts[1][:10]).group()
  32. print('zhijing')
  33. print(zhijing)
  34. print('jianju')
  35. print(jianju)
  36. zhijing = int(zhijing)
  37. jianju = int(jianju)
  38. midu = 2 / jianju
  39. weight = 0.00617 * zhijing * zhijing * midu
  40. weight = 'A=' + str(weight) + '*B'
  41. return '''
  42. {
  43. 'answer': ''' + weight + '''
  44. }
  45. '''
  46. else:
  47. return '''
  48. {
  49. 'answer': 'A<>B'
  50. }
  51. '''
  52. def callzaihuansuan0111_2(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
  53. completion = aiclient.chat.completions.create(
  54. model="glm-4.5-flash",
  55. messages=[
  56. {"role": "system", "content": "You are a helpful assistant."},
  57. {"role": "user", "content": " 背景知识:厚度可以用单位米(m)来衡量,可以用单位厘米(cm)来衡量,可以用单位毫米(mm)来衡量;如果没有明确单位,默认指毫米"},
  58. {"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"},
  59. ],
  60. extra_body={"thinking": {"type": "disabled"}},
  61. )
  62. json_string = completion.choices[0].message.content
  63. print(json_string)
  64. completion = sfclient.chat.completions.create(
  65. model=simplemodel(),
  66. messages=expression(json_string),
  67. extra_body={"thinking": {"type": "disabled"}},
  68. )
  69. json_string = completion.choices[0].message.content
  70. print(json_string)
  71. return json_string
  72. def callzaihuansuan0111_3(bianma, label, A,B,C, aiclient, qwclient, sfclient):##C->tz
  73. completion = aiclient.chat.completions.create(
  74. model="glm-4.5-flash",
  75. messages=[
  76. {"role": "system", "content": "You are a helpful assistant."},
  77. {"role": "user", "content": " 背景知识:高度、宽度可以用单位米(m)来衡量,可以用单位厘米(cm)来衡量,可以用单位毫米(mm)来衡量;如果没有明确单位,默认指毫米"},
  78. {"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"},
  79. ],
  80. extra_body={"thinking": {"type": "disabled"}},
  81. )
  82. json_string = completion.choices[0].message.content
  83. print(json_string)
  84. completion = sfclient.chat.completions.create(
  85. model=simplemodel(),
  86. messages=expression(json_string),
  87. extra_body={"thinking": {"type": "disabled"}},
  88. )
  89. json_string = completion.choices[0].message.content
  90. print(json_string)
  91. return json_string