VyLala commited on
Commit
2708f73
·
verified ·
1 Parent(s): e8eac38

Update model.py

Browse files
Files changed (1) hide show
  1. model.py +16 -9
model.py CHANGED
@@ -865,13 +865,12 @@ def parse_multi_sample_llm_output(raw_response: str, output_format_str):
865
  metadata_list = {}
866
  explanation_lines = []
867
  output_answers = raw_response.split("\n")[0].split(", ")
868
- print("raw explanation line: ",raw_response.split("\n")[1])
869
- if ". " in raw_response.split("\n")[1] and len(raw_response.split("\n")[1].split(". ")) > 1:
870
- explanation_lines = [x for x in raw_response.split(". ")[1] if x.strip()]
871
- print("explain line split by dot: ", explanation_lines)
872
- else:
873
- explanation_lines = [x for x in raw_response.split("\n")[1:] if x.strip()]
874
- print("explain line split by new line: ", explanation_lines)
875
  output_formats = output_format_str.split(", ")
876
  explain = ""
877
  # assign output format to its output answer and explanation
@@ -880,9 +879,17 @@ def parse_multi_sample_llm_output(raw_response: str, output_format_str):
880
  for o in range(len(outputs)):
881
  output = outputs[o]
882
  metadata_list[output] = {"answer":"",
883
- output+"_explanation":""}
884
  # assign output answers
885
  if o < len(output_answers):
 
 
 
 
 
 
 
 
886
  metadata_list[output]["answer"] = output_answers[o]
887
  if "unknown" in metadata_list[output]["answer"].lower():
888
  metadata_list[output]["answer"] = "unknown"
@@ -1238,7 +1245,7 @@ def query_document_info(query_word, alternative_query_word, metadata, master_str
1238
  f"If the text does not specify ancient or archaeological context, assume 'modern'. "
1239
  f"Provide only {output_format_str}. "
1240
  f"If any information is not explicitly present, use the fallback rules above before defaulting to 'unknown'. "
1241
- f"For each non-'unknown' field in {explain_list}, write one sentence explaining how it was inferred from the text (one sentence for each)."
1242
  f"\n\nText Snippets:\n{context_for_llm}\n\n"
1243
  f"Output Format: {output_format_str}"
1244
  )
 
865
  metadata_list = {}
866
  explanation_lines = []
867
  output_answers = raw_response.split("\n")[0].split(", ")
868
+ explanation_lines = [x for x in raw_response.split("\n")[1:] if x.strip()]
869
+ print("raw explanation line which split by new line: ", explanation_lines)
870
+ if len(explanation_lines) == 1:
871
+ if len(explanation_lines[0].split(". ")) > len(explanation_lines):
872
+ explanation_lines = [x for x in explanation_lines[0].split(". ") if x.strip()]
873
+ print("explain line split by dot: ", explanation_lines)
 
874
  output_formats = output_format_str.split(", ")
875
  explain = ""
876
  # assign output format to its output answer and explanation
 
879
  for o in range(len(outputs)):
880
  output = outputs[o]
881
  metadata_list[output] = {"answer":"",
882
+ output+"_explanation":""}
883
  # assign output answers
884
  if o < len(output_answers):
885
+ # check if output_format unexpectedly in the answer such as:
886
+ #country_name: Europe, modern/ancient: modern
887
+ try:
888
+ if ": " in output_answers[o]:
889
+ output_answers[o] = output_answers[o].split(": ")[1]
890
+ except:
891
+ pass
892
+ # Europe, modern
893
  metadata_list[output]["answer"] = output_answers[o]
894
  if "unknown" in metadata_list[output]["answer"].lower():
895
  metadata_list[output]["answer"] = "unknown"
 
1245
  f"If the text does not specify ancient or archaeological context, assume 'modern'. "
1246
  f"Provide only {output_format_str}. "
1247
  f"If any information is not explicitly present, use the fallback rules above before defaulting to 'unknown'. "
1248
+ f"If the {explain_list} is not 'unknown', write 1 sentence after the output explaining how you inferred it from the text (one sentence for each)."
1249
  f"\n\nText Snippets:\n{context_for_llm}\n\n"
1250
  f"Output Format: {output_format_str}"
1251
  )