Update app.py
Browse files
app.py
CHANGED
@@ -51,7 +51,6 @@ BOT_COMMANDS = [
|
|
51 |
{"command": "test", "description": "获取当前使用的提示词索引"},
|
52 |
]
|
53 |
DEFAULT_TEMP = 1.5
|
54 |
-
# 新增的用户和群组信息存储
|
55 |
USER_LAST_ACTIVE = {}
|
56 |
GROUP_ACTIVE_USERS = {}
|
57 |
GROUP_INFO = {}
|
@@ -114,11 +113,9 @@ async def handleTelegramUpdate(update):
|
|
114 |
fromUserLastName = update['message']['from'].get('last_name', '')
|
115 |
fromUserName = update['message']['from'].get('username', '')
|
116 |
|
117 |
-
# 更新用户最后活跃时间
|
118 |
USER_LAST_ACTIVE[fromUserId] = datetime.now()
|
119 |
|
120 |
if isGroupChat:
|
121 |
-
# 更新群组活跃用户
|
122 |
GROUP_ACTIVE_USERS.setdefault(chatId, set()).add(fromUserId)
|
123 |
if chatId not in GROUP_INFO:
|
124 |
chat_info = await getChatInfo(chatId)
|
@@ -181,12 +178,10 @@ async def handleTelegramUpdate(update):
|
|
181 |
await sendTelegramMessage(chatId, f'当前群组触发前缀为: {prefix}')
|
182 |
return
|
183 |
|
184 |
-
# 在群组中处理私聊指令
|
185 |
if userMessage.startswith('/settemp ') or userMessage.startswith('/promat ') or command in ['gettemp', 'getpromat', 'resetuser']:
|
186 |
await handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat)
|
187 |
return
|
188 |
else:
|
189 |
-
# 私聊中处理所有指令
|
190 |
if userMessage.startswith('/settemp ') or userMessage.startswith('/promat ') or command in ['gettemp', 'getpromat', 'resetuser']:
|
191 |
await handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat)
|
192 |
return
|
@@ -214,7 +209,6 @@ def parseCommand(userMessage):
|
|
214 |
command = command.split('@')[0]
|
215 |
return command[1:]
|
216 |
|
217 |
-
|
218 |
async def handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat):
|
219 |
command = parseCommand(userMessage)
|
220 |
if userMessage.startswith('/settemp '):
|
@@ -258,12 +252,10 @@ async def processAiMessage(chatId, userMessage, fromUserId, message_id, fromUser
|
|
258 |
userPromptIndex = USER_SETTINGS.get(fromUserId, {}).get('prompt_index', CURRENT_PROMPT_INDEX)
|
259 |
currentPrompt = PROMPT_TEMPLATES.get(userPromptIndex, "")
|
260 |
|
261 |
-
# 获取用户和群组的上下文信息
|
262 |
user_last_active = USER_LAST_ACTIVE.get(fromUserId, None)
|
263 |
group_info = GROUP_INFO.get(chatId, None)
|
264 |
group_active_users = GROUP_ACTIVE_USERS.get(chatId, None)
|
265 |
|
266 |
-
# 构建更丰富的系统提示
|
267 |
system_prompt = f"""
|
268 |
{currentPrompt}
|
269 |
当前时间: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
|
@@ -441,4 +433,4 @@ async def getChatInfo(chatId):
|
|
441 |
return None
|
442 |
|
443 |
if __name__ == '__main__':
|
444 |
-
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
|
|
51 |
{"command": "test", "description": "获取当前使用的提示词索引"},
|
52 |
]
|
53 |
DEFAULT_TEMP = 1.5
|
|
|
54 |
USER_LAST_ACTIVE = {}
|
55 |
GROUP_ACTIVE_USERS = {}
|
56 |
GROUP_INFO = {}
|
|
|
113 |
fromUserLastName = update['message']['from'].get('last_name', '')
|
114 |
fromUserName = update['message']['from'].get('username', '')
|
115 |
|
|
|
116 |
USER_LAST_ACTIVE[fromUserId] = datetime.now()
|
117 |
|
118 |
if isGroupChat:
|
|
|
119 |
GROUP_ACTIVE_USERS.setdefault(chatId, set()).add(fromUserId)
|
120 |
if chatId not in GROUP_INFO:
|
121 |
chat_info = await getChatInfo(chatId)
|
|
|
178 |
await sendTelegramMessage(chatId, f'当前群组触发前缀为: {prefix}')
|
179 |
return
|
180 |
|
|
|
181 |
if userMessage.startswith('/settemp ') or userMessage.startswith('/promat ') or command in ['gettemp', 'getpromat', 'resetuser']:
|
182 |
await handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat)
|
183 |
return
|
184 |
else:
|
|
|
185 |
if userMessage.startswith('/settemp ') or userMessage.startswith('/promat ') or command in ['gettemp', 'getpromat', 'resetuser']:
|
186 |
await handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat)
|
187 |
return
|
|
|
209 |
command = command.split('@')[0]
|
210 |
return command[1:]
|
211 |
|
|
|
212 |
async def handlePrivateCommand(chatId, userMessage, fromUserId, isGroupChat):
|
213 |
command = parseCommand(userMessage)
|
214 |
if userMessage.startswith('/settemp '):
|
|
|
252 |
userPromptIndex = USER_SETTINGS.get(fromUserId, {}).get('prompt_index', CURRENT_PROMPT_INDEX)
|
253 |
currentPrompt = PROMPT_TEMPLATES.get(userPromptIndex, "")
|
254 |
|
|
|
255 |
user_last_active = USER_LAST_ACTIVE.get(fromUserId, None)
|
256 |
group_info = GROUP_INFO.get(chatId, None)
|
257 |
group_active_users = GROUP_ACTIVE_USERS.get(chatId, None)
|
258 |
|
|
|
259 |
system_prompt = f"""
|
260 |
{currentPrompt}
|
261 |
当前时间: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")}
|
|
|
433 |
return None
|
434 |
|
435 |
if __name__ == '__main__':
|
436 |
+
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|