extra.py 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import time
  2. from menchuangfallback import menchuangfallback
  3. def extra(
  4. data, #data
  5. aiclient,
  6. qwclient,
  7. menchuang_collection,
  8. model):
  9. if data['bianma'].startswith("0108"):
  10. sentence=["特征描述:" + data['mc'] + "\n" + data['tz']]
  11. embeddings = model.encode(sentence)
  12. result = menchuang_collection.query(query_embeddings=embeddings, n_results=10)
  13. print(result['documents'][0])
  14. l = len([x for x in result['distances'][0] if x < 0.5])
  15. if l < 2:
  16. l = 2
  17. completion = aiclient.chat.completions.create(
  18. model="glm-4.5-flash",
  19. messages=[
  20. {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
  21. {"role": "user", "content": "特征描述往往比较具体,工作内容是对特征描述的主要关键的总结提炼。以下是一些特征描述以及对应的提炼的工作内容的例子。" + '\n\n'.join(result['documents'][0][:l]) + "给定一段特征描述,内容为" + data['mc'] +data['tz'] + "。请参照示例,给出提炼的工作内容. 注意,不需要输出特征描述,仅输出工作内容"},
  22. ],
  23. extra_body={"thinking": {"type": "disabled"}},
  24. )
  25. json_string = completion.choices[0].message.content
  26. print(json_string)
  27. answers = json_string.split("\n")
  28. answers = [x for x in answers if ':' in x ]
  29. answer2 = answers[0].split(":")[1].replace(" ", "")
  30. return answer2
  31. completion = aiclient.chat.completions.create(
  32. model="glm-4.5-flash",
  33. messages=[
  34. {"role": "system", "content": "You are a helpful assistant."},
  35. {"role": "user", "content": " 背景知识:已知预应力高强混凝土管桩(PHC)代号定义为PHC-AAA(BB)CC-DDD-E1,E2,E3,E4,其中AAA代表管桩外径,BB代表管桩壁厚,CC表示型号,DDD表示混凝土强度等级,E1/E2/E3/E4表示分段桩长。例如,PHC-500(125)-AB-C80-9,7 表示外径500mm,壁厚125mm,型号AB,混凝土强度C80, 分段桩长分别为9米和7米,总桩长16米,施工时需要将两个分段接桩"},
  36. {"role": "user", "content": "问题描述: 给定一段工作内容描述,内容为" + data['mc'] +data['tz'] + "。请判断内容中是否包含桩的代号,如果没有,请输出“无”,如果有,请输出代号"},
  37. ],
  38. extra_body={"thinking": {"type": "disabled"}},
  39. )
  40. json_string = completion.choices[0].message.content
  41. completion = aiclient.chat.completions.create(
  42. model="glm-4.5-flash",
  43. messages=[
  44. {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
  45. {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个代号作为答案,请将该最终答案输出"},
  46. ],
  47. extra_body={"thinking": {"type": "disabled"}},
  48. )
  49. json_string = completion.choices[0].message.content
  50. answers = json_string.split("\n")
  51. answers = [x for x in answers if ':' in x ]
  52. answers = [x for x in answers if not 'true' in x]
  53. answers = [x for x in answers if not '是' in x]
  54. print(answers)
  55. if len(answers) == 0:
  56. return "无"
  57. answer2 = answers[0].split(":")[1].replace(" ", "")
  58. return answer2
  59. def need_extra(
  60. data, #data
  61. aiclient,
  62. qwclient,
  63. result):
  64. if data['bianma'].startswith("0108") and len(result) == 0:
  65. return True
  66. time.sleep(1)
  67. completion = qwclient.chat.completions.create(
  68. model="ZhipuAI/GLM-4.6",
  69. #model="glm-4.5-flash",
  70. messages=[
  71. {"role": "system", "content": "You are a helpful assistant."},
  72. {"role": "user", "content": "问题描述: 给定一段工作内容描述,内容为" + data['mc'] +data['tz'] + "。请判断内容是否属于打桩、压桩。请回答是或者否"},
  73. ],
  74. extra_body={"thinking": {"type": "disabled"}},
  75. )
  76. json_string = completion.choices[0].message.content
  77. print(json_string)
  78. if "是" in json_string:
  79. return True
  80. else:
  81. return False