让AI给你写代码,初体验(三)- AI加上格式化对话,实现对单个文件的修改/保存

时间:2025-04-09 07:22:11
class Assistant: def __init__(self): self.last_content = "" self.last_AI_message = "" self.python_path = "/home/cfets/gitea/pyWebTest1/example/server/" self.html_path = "/home/cfets/gitea/pyWebTest1/example/templates/" self.js_path = "/home/cfets/gitea/pyWebTest1/example/static/" def setLastContent(self, content): self.last_content = content def setLastAImessage(self, message): self.last_AI_message = message def getLastContent(self): return self.last_content def getLastAImessage(self): return self.last_AI_message def genAImessage(self, newMsg): return newMsg + self.last_content # 打开文件 def openFile(self, programmingName): file_suffix = (".")[-1] match file_suffix: case "py": resources_file = self.python_path + programmingName case "html": resources_file = self.html_path + programmingName case "javascript": resources_file = self.js_path + programmingName try: with open(resources_file, "r", encoding="utf-8") as f: content = () (content) except Exception as e: print('Error: %s' % e) content = '打开文件失败: %s' % e finally: return content # 保存文件 def saveFile(self, replyMessages): python_content = (r'```python(.*?)```', replyMessages, ) ("python", python_content) html_content = (r'```html(.*?)```', replyMessages, ) ("html", html_content) js_content = (r'```javascript(.*?)```', replyMessages, ) ("javascript", js_content) # 保存文件原子操作 def saveCode(self, programmingName, content_list): # 生成版本号 code_file = "" res_content = "" now_time = ('%Y-%m-%d_%H:%M:%S', ()) i = (1, 100) match programmingName: case "python": code_file = self.python_path + "pyTest_" + now_time + '_' + str(i) + ".py" case "html": code_file = self.html_path + "htmlTest_" + now_time + '_' + str(i) + ".html" case "javascript": code_file = self.js_path + "script_" + now_time + '_' + str(i) + ".js" # 保存至文件 if code_file != "": try: content = content_list[0] with open(code_file, 'w') as f: (content) res_content = "保存成功" except Exception as e: print('Error: %s' % e) res_content = '保存失败: %s' % e else: res_content = "保存失败: 未找到文件类型" return res_content # 提交AI对话 def conversation_ask(self, message): # 组成对话内容 ai_message = message + self.last_content messages = [{'role': Role.USER, 'content': ai_message}] # 提交对话 responses = (.qwen_max, messages=messages, result_format='message', stream=True, incremental_output=True) print('from AI:', end='') whole_message = '' for response in responses: if response.status_code == : whole_message += [0]['message']['content'] print([0]['message']['content'], end='') else: print('Request id: %s, Status code: %s, error code: %s, error message: %s' % ( response.request_id, response.status_code, , )) print('\n') ({'role': 'assistant', 'content': whole_message}) (whole_message) return whole_message