| import pandas as pd |
| import os |
| import difflib |
|
|
| def map_(input_text): |
| |
| |
| demo_code_folder = './' |
|
|
| errorType = pd.read_excel('./error_type.xlsx') |
| type = [] |
| for i in range(len(errorType)): |
| information = { |
| 'num': int(errorType['number'][i]), |
| 'type': errorType['type'][i], |
| 'context': errorType['context'][i] |
| } |
| type.append(information) |
|
|
| |
| best_match = None |
| best_similarity = 0 |
| for info in type: |
| similarity = difflib.SequenceMatcher(None, input_text, info['type']).ratio() |
| if similarity > best_similarity: |
| best_similarity = similarity |
| best_match = info |
|
|
| |
| if best_match: |
| |
| code_file_name = str(best_match['num']) + ".py" |
| code_file_path = os.path.join(demo_code_folder, code_file_name) |
| |
| if os.path.exists(code_file_path): |
| |
| with open(code_file_path, "r") as file: |
| code = file.read() |
| return f"存在的错误:\n\n{best_match['context']}\n\n" + '-' * 50 + f"\n\n示例代码:\n```ss\n{code}\nss```" |
| else: |
| return "未找到对应的示例代码文件" |
| else: |
| return "未找到相似的错误类型" |
|
|
|
|
|
|