| | 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 "未找到相似的错误类型" |
| |
|
| |
|
| |
|