import pandas as pd import os import difflib def map_(input_text): #输入文本 # input_text = "TypeError: unsupported operand type(s) for ^: 'int' and 'float'" 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: # print() 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 "未找到相似的错误类型"