| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- tuliaos=[
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 薄型 0.5小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 薄型 1小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 薄型 1.5小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 薄型 2小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 厚型 2小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 厚型 2.5小时',
- '第十七章 油漆、涂料、裱糊工程 17.1 油漆、涂料 17.1.2 金属面油漆 17.1.2.3 防火涂料 金属面防火涂料 厚型 3小时',
- ]
- tuliao_options=[]
- tuliao_letters='ABCDEFG'
- for i in range(len(tuliaos)):
- tuliao_options.append('给定选项'+tuliao_letters[i]+', 内容为' + tuliaos[i])
- import json
- with open('nantong_rule', 'r') as f:
- content = f.read()
- import json
- obj=json.loads(content)
- from fallback import fallback
- def fanghuotuliao(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- options=[]
- letters = "ABCDEFGHIJKLMN"
- for i in range(len(A)):
- options.append("给定选项" + letters[i]+",内容为"+A[i] )
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": "问题描述: " + ','.join(options) + "。请问选项中是否有防火涂料相关选项,请回答是或者否"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- if len(json_string) < 4:
- if '是' in json_string:
- return True
- else:
- return False
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个是或者否的判断作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- answer=[]
- if '否' in json_string:
- return False
- return True
- def fanghuo(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- options=[]
- letters = "ABCDEFGHIJKLMN"
- for i in range(len(A)):
- options.append("给定选项" + letters[i]+",内容为"+A[i] )
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": "问题描述: 给定一段工作内容: " + B['label'] + " " + B['mc'] + " " + B['tz'] + "。请问工作内容是否提及防火要求,请回答是或者否"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- if len(json_string) < 4:
- if '是' in json_string:
- return True
- else:
- return False
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个是或者否的判断作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- answer=[]
- if '否' in json_string:
- return False
- return True
- def tuliaofilter(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": "问题描述: 给定一段涉及防火涂料的工作内容: " + B['label'] + " " + B['mc'] + " " + B['tz'] + ",".join(tuliao_options) + "。请选出最恰当的选项。请返回类似A或者B或者C这样的结果"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- if len(json_string) < 4:
- if 'A' in json_string:
- return tuliaos[0]
- if 'B' in json_string:
- return tuliaos[1]
- if 'C' in json_string:
- return tuliaos[2]
- if 'D' in json_string:
- return tuliaos[3]
- if 'E' in json_string:
- return tuliaos[4]
- if 'F' in json_string:
- return tuliaos[5]
- if 'G' in json_string:
- return tuliaos[6]
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于A或者B的字母作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- if 'A' in json_string:
- return tuliaos[0]
- if 'B' in json_string:
- return tuliaos[1]
- if 'C' in json_string:
- return tuliaos[2]
- if 'D' in json_string:
- return tuliaos[3]
- if 'E' in json_string:
- return tuliaos[4]
- if 'F' in json_string:
- return tuliaos[5]
- if 'G' in json_string:
- return tuliaos[6]
- def aifilter3(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- options=[]
- letters = "ABCDEFGHIJKLMN"
- for i in range(len(A)):
- options.append("给定选项" + letters[i]+",内容为"+A[i] )
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": " 特殊处理要求:如果选项中有含有“零星钢构件制作”字样的选项,并且同时选项中有含有“铁件制作”字样的选项,则二者只能选一,且优先选择出现靠前的选项"},
- {"role": "user", "content": " 重要提示:除特殊处理要求提及的内容外,不需考虑选项内容与工作内容是否符合,只需要根据特殊处理要求做出处理"},
- {"role": "user", "content": "问题描述: 给定一段工作内容: " + B['label'] + " " + B['mc'] + " " + B['tz'] + ",".join(options) + "。请根据处理要求做出处理,并返回结果。例如,如果处理完后剩余A,B,C三个选项,请返回[A,B,C]"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于[A,B,C]的数组作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- answer=[]
- if 'A' in json_string:
- answer.append(A[0])
- if 'B' in json_string:
- answer.append(A[1])
- if 'C' in json_string:
- answer.append(A[2])
- if 'D' in json_string:
- answer.append(A[3])
- if 'E' in json_string:
- answer.append(A[4])
- if 'F' in json_string:
- answer.append(A[5])
- if 'G' in json_string:
- answer.append(A[6])
- if 'H' in json_string:
- answer.append(A[7])
- if 'I' in json_string:
- answer.append(A[8])
- if 'J' in json_string:
- answer.append(A[9])
- return answer
- def aifilter1(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- options=[]
- letters = "ABCDEFGHIJKLMN"
- for i in range(len(A)):
- options.append("给定选项" + letters[i]+",内容为"+A[i] )
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": " 特殊处理要求:如果选项中有晒衣架制作安装的选项,但是工作内容中不涉及晒衣架,则去除选项中的晒衣架制作安装的选项"},
- {"role": "user", "content": " 特殊处理要求:如果选项中有龙骨钢骨架制作安装的选项,但是工作内容中不涉及龙骨钢骨架,则去除选项中的龙骨钢骨架的选项"},
- {"role": "user", "content": " 重要提示:除特殊处理要求提及的内容外,不需考虑选项内容与工作内容是否符合,只需要根据特殊处理要求做出处理"},
- {"role": "user", "content": "问题描述: 给定一段工作内容: " + B['label'] + " " + B['mc'] + " " + B['tz'] + ",".join(options) + "。请根据处理要求做出处理,并返回结果。例如,如果处理完后剩余A,B,C三个选项,请返回[A,B,C]"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于[A,B,C]的数组作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- answer=[]
- if 'A' in json_string:
- answer.append(A[0])
- if 'B' in json_string:
- answer.append(A[1])
- if 'C' in json_string:
- answer.append(A[2])
- if 'D' in json_string:
- answer.append(A[3])
- if 'E' in json_string:
- answer.append(A[4])
- if 'F' in json_string:
- answer.append(A[5])
- if 'G' in json_string:
- answer.append(A[6])
- if 'H' in json_string:
- answer.append(A[7])
- if 'I' in json_string:
- answer.append(A[8])
- if 'J' in json_string:
- answer.append(A[9])
- return answer
- def aifilter2(A, #options
- B, #data
- aiclient,
- qwclient,
- dw):
- options=[]
- letters = "ABCDEFGHIJKLMN"
- for i in range(len(A)):
- options.append("给定选项" + letters[i]+",内容为"+A[i] )
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- #model="Qwen/Qwen3-14B",
- messages=[
- {"role": "system", "content": "You are a helpful assistant."},
- {"role": "user", "content": " 特殊处理要求:如果选项中有含有“零星钢构件制作”字样的选项,并且选项中没有其他具体的钢构件选项,则不做任何处理"},
- {"role": "user", "content": " 特殊处理要求:如果选项中有含有“零星钢构件制作”字样的选项,并且选项中有其他具体的钢构件选项(例如CZ轻钢檩条),则去除选项中的含有“零星钢构件制作”字样的选项"},
- {"role": "user", "content": " 重要提示:除特殊处理要求提及的内容外,不需考虑选项内容与工作内容是否符合,只需要根据特殊处理要求做出处理"},
- {"role": "user", "content": "问题描述: 给定一段工作内容: " + B['label'] + " " + B['mc'] + " " + B['tz'] + ",".join(options) + "。请根据处理要求做出处理,并返回结果。例如,如果处理完后剩余A,B,C三个选项,请返回[A,B,C]"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- if len(json_string) < 4:
-
- answer=[]
- if 'A' in json_string:
- answer.append(A[0])
- if 'B' in json_string:
- answer.append(A[1])
- if 'C' in json_string:
- answer.append(A[2])
- if 'D' in json_string:
- answer.append(A[3])
- if 'E' in json_string:
- answer.append(A[4])
- if 'F' in json_string:
- answer.append(A[5])
- if 'G' in json_string:
- answer.append(A[6])
- if 'H' in json_string:
- answer.append(A[7])
- if 'I' in json_string:
- answer.append(A[8])
- if 'J' in json_string:
- answer.append(A[9])
-
-
- return answer
- completion = aiclient.chat.completions.create(
- model="glm-4.5-flash",
- messages=[
- {"role": "system", "content": "You are a helpful assistant.请将最终答案以JSON格式输出"},
- {"role": "user", "content": " 给你一段文字如下, " + json_string + ",其中给出了一个类似于[A,B,C]的数组作为结果,请将该最终结果输出"},
- ],
- extra_body={"thinking": {"type": "disabled"}},
- #extra_body={"enable_thinking": False},
- )
- json_string = completion.choices[0].message.content
- print(json_string)
- answer=[]
- if 'A' in json_string:
- answer.append(A[0])
- if 'B' in json_string:
- answer.append(A[1])
- if 'C' in json_string:
- answer.append(A[2])
- if 'D' in json_string:
- answer.append(A[3])
- if 'E' in json_string:
- answer.append(A[4])
- if 'F' in json_string:
- answer.append(A[5])
- if 'G' in json_string:
- answer.append(A[6])
- if 'H' in json_string:
- answer.append(A[7])
- if 'I' in json_string:
- answer.append(A[8])
- if 'J' in json_string:
- answer.append(A[9])
- return answer
- def postprocess0106_(selected, data, aiclient, qwclient, label_name, name_dw):
- if len(selected) == 1:
- return selected
- return aifilter3(aifilter2(aifilter1(selected, data, aiclient, qwclient, name_dw), data, aiclient, qwclient, name_dw), data, aiclient, qwclient, name_dw)
- def postprocess0106(selected, data, aiclient, qwclient, label_name, name_dw):
- selected = postprocess0106_(selected, data, aiclient, qwclient, label_name, name_dw)
- hit = fanghuo(selected, data, aiclient, qwclient, name_dw)
- if hit:
- tuliao = fanghuotuliao(selected, data, aiclient, qwclient, name_dw)
- if not tuliao:
- selected.append(tuliaofilter(selected, data, aiclient, qwclient, name_dw))
- return selected
- else:
- return selected
|