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
# Open the file
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 = 'Failed to open the file: %s' % e
finally:
return content
# Save the file
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)
# Save file atomic operation
def saveCode(self, programmingName, content_list):
# Generate version number
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"
# Save to file
if code_file != "":
try:
content = content_list[0]
with open(code_file, 'w') as f:
(content)
res_content = "Save successfully"
except Exception as e:
print('Error: %s' % e)
res_content = 'Save failed: %s' % e
else:
res_content = "Save failed: File type not found"
return res_content
# Submit an AI conversation
def conversation_ask(self, message):
# Constitute the conversation content
ai_message = message + self.last_content
messages = [{'role': Role.USER, 'content': ai_message}]
# Submit a conversation
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