yangtb24 commited on
Commit
70af755
·
verified ·
1 Parent(s): 4ddbefb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -14
app.py CHANGED
@@ -3,6 +3,7 @@ import json
3
  import requests
4
  from flask import Flask, request, jsonify
5
  from datetime import datetime
 
6
 
7
  app = Flask(__name__)
8
 
@@ -113,7 +114,6 @@ class EventEmitter:
113
  'metadata': [{'name': title, 'source': url, 'html': False}],
114
  })
115
 
116
-
117
  def make_telegram_request(method, data=None):
118
  url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/{method}"
119
  if PHP_PROXY_URL: # 使用代理
@@ -265,6 +265,13 @@ def parseCommand(userMessage):
265
  command = command.split('@')[0]
266
  return command[1:]
267
 
 
 
 
 
 
 
 
268
  async def processAiMessage(chatId, userMessage, fromUserId):
269
  history = chatHistories.get(chatId, [])
270
  userTemp = USER_SETTINGS.get(fromUserId, {}).get('temperature', DEFAULT_TEMP)
@@ -279,13 +286,7 @@ async def processAiMessage(chatId, userMessage, fromUserId):
279
  *history
280
  ]
281
 
282
- eventEmitter = EventEmitter(async (event) => {
283
- print('Event:', event)
284
- if event.get('type') == 'status':
285
- await sendTelegramMessage(chatId, f"状态更新: {event['data']['description']}")
286
- elif event.get('type') == 'citation':
287
- await sendTelegramMessage(chatId, f"引用信息: {event['data']['metadata'][0]['name']}")
288
- })
289
 
290
  try:
291
  ai_response = requests.post(AI_API_ENDPOINT, headers=AI_API_HEADERS, json={
@@ -319,7 +320,7 @@ async def handleAiResponse(ai_data, chatId, history, eventEmitter):
319
  toolCalls = choice['message']['tool_calls']
320
  toolResults = []
321
  for toolCall in toolCalls:
322
- toolResult = await executeToolCall(toolCall, eventEmitter)
323
  toolResults.append(toolResult)
324
 
325
  newMessages = [
@@ -340,7 +341,7 @@ async def handleAiResponse(ai_data, chatId, history, eventEmitter):
340
  return 'AI 返回了无法识别的格式'
341
  return 'AI 返回了无法识别的格式'
342
 
343
- async def executeToolCall(toolCall, eventEmitter):
344
  name = toolCall['function']['name']
345
  args = toolCall['function'].get('arguments', {})
346
 
@@ -510,8 +511,5 @@ async def handle_webhook():
510
  def health_check():
511
  return 'OK'
512
 
513
-
514
- import asyncio
515
  if __name__ == '__main__':
516
- app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
517
-
 
3
  import requests
4
  from flask import Flask, request, jsonify
5
  from datetime import datetime
6
+ import asyncio
7
 
8
  app = Flask(__name__)
9
 
 
114
  'metadata': [{'name': title, 'source': url, 'html': False}],
115
  })
116
 
 
117
  def make_telegram_request(method, data=None):
118
  url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/{method}"
119
  if PHP_PROXY_URL: # 使用代理
 
265
  command = command.split('@')[0]
266
  return command[1:]
267
 
268
+ async def event_handler(event):
269
+ print('Event:', event)
270
+ if event.get('type') == 'status':
271
+ await sendTelegramMessage(event['data']['chatId'], f"状态更新: {event['data']['description']}")
272
+ elif event.get('type') == 'citation':
273
+ await sendTelegramMessage(event['data']['chatId'], f"引用信息: {event['data']['metadata'][0]['name']}")
274
+
275
  async def processAiMessage(chatId, userMessage, fromUserId):
276
  history = chatHistories.get(chatId, [])
277
  userTemp = USER_SETTINGS.get(fromUserId, {}).get('temperature', DEFAULT_TEMP)
 
286
  *history
287
  ]
288
 
289
+ eventEmitter = EventEmitter(event_handler)
 
 
 
 
 
 
290
 
291
  try:
292
  ai_response = requests.post(AI_API_ENDPOINT, headers=AI_API_HEADERS, json={
 
320
  toolCalls = choice['message']['tool_calls']
321
  toolResults = []
322
  for toolCall in toolCalls:
323
+ toolResult = await executeToolCall(toolCall, eventEmitter,chatId)
324
  toolResults.append(toolResult)
325
 
326
  newMessages = [
 
341
  return 'AI 返回了无法识别的格式'
342
  return 'AI 返回了无法识别的格式'
343
 
344
+ async def executeToolCall(toolCall, eventEmitter,chatId):
345
  name = toolCall['function']['name']
346
  args = toolCall['function'].get('arguments', {})
347
 
 
511
  def health_check():
512
  return 'OK'
513
 
 
 
514
  if __name__ == '__main__':
515
+ app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))