Uniaff commited on
Commit
508f6a9
·
verified ·
1 Parent(s): 05ccaed

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -33
app.py CHANGED
@@ -75,21 +75,22 @@ def delete_faiss_index():
75
  # return f"Ошибка: {response.json().get('detail')}"
76
 
77
 
78
- async def generate_responses(user_queries, context):
79
  log_message(f"Генерация ответов на {len(user_queries)} запросов")
80
  prompt = ChatPromptTemplate.from_template(template)
81
 
82
  # Формируем список полных промптов для каждого запроса
83
  full_prompts = [prompt.format(context=context, input=query) for query in user_queries]
84
 
85
- # Используем await llm.abatch для получения ответов на все промпты
86
- responses = await llm.abatch(full_prompts)
87
  log_message("Ответы сгенерированы.")
88
  return responses
89
 
90
 
91
 
92
- async def process_comments(ACCESS_TOKEN, user_context):
 
93
  log_message("Начинаем процесс скрытия отрицательных комментариев.")
94
  hidden_comments_data = hide_negative_comments(ACCESS_TOKEN)
95
  log_message(f"Количество постов с скрытыми комментариями: {len(hidden_comments_data)}")
@@ -106,10 +107,11 @@ async def process_comments(ACCESS_TOKEN, user_context):
106
 
107
  processed_posts = []
108
  processed_comment_ids = set()
109
-
110
  all_comments = []
111
  all_comment_ids = []
112
- all_comment_post_ids = [] # Сохраняем соответствующий post_id для каждого комментария
 
113
 
114
  for post_data in posts_with_unanswered_comments:
115
  post_id = post_data['post_id']
@@ -126,15 +128,18 @@ async def process_comments(ACCESS_TOKEN, user_context):
126
  message = comment['message']
127
  log_message(f"Добавление комментария для обработки: {message}")
128
 
129
- # Добавляем комментарий и его ID в списки
130
  all_comments.append(message)
131
  all_comment_ids.append(comment_id)
132
- all_comment_post_ids.append(post_id) # Сохраняем post_id для последующей группировки
 
133
 
134
  # Генерируем ответы на все комментарии батчем
135
- responses = await generate_responses(all_comments, context=user_context)
 
 
 
136
 
137
- # Отправляем ответы на соответствующие комментарии
138
  for comment_id, response_message in zip(all_comment_ids, responses):
139
  log_message(f"Ответ на комментарий {comment_id}: {response_message}")
140
  success = reply_comment(comment_id=comment_id, message=response_message, token=ACCESS_TOKEN)
@@ -143,32 +148,16 @@ async def process_comments(ACCESS_TOKEN, user_context):
143
  else:
144
  log_message(f"Ошибка при отправке ответа на комментарий {comment_id}")
145
 
146
- # Формируем информацию о обработанных постах
147
- # Группируем комментарии по постам
148
- post_comments = {}
149
- for post_id, comment_id, response_message in zip(all_comment_post_ids, all_comment_ids, responses):
150
- if post_id not in post_comments:
151
- post_comments[post_id] = []
152
- post_comments[post_id].append({
153
- 'comment_id': comment_id,
154
- 'reply_message': response_message
155
  })
156
 
157
- for post_data in posts_with_unanswered_comments:
158
- post_id = post_data['post_id']
159
- post_message = post_data['post_message']
160
- processed_posts.append({
161
- 'post_id': post_id,
162
- 'post_message': post_message,
163
- 'hidden_comments': next(
164
- (item['hidden_comments'] for item in hidden_comments_data if item['post_id'] == post_id), []),
165
- 'replies': post_comments.get(post_id, [])
166
- })
167
 
168
- return {
169
- "status": "completed",
170
- "posts": processed_posts
171
- }
172
 
173
 
174
  with gr.Blocks() as demo:
 
75
  # return f"Ошибка: {response.json().get('detail')}"
76
 
77
 
78
+ def generate_responses(user_queries, context):
79
  log_message(f"Генерация ответов на {len(user_queries)} запросов")
80
  prompt = ChatPromptTemplate.from_template(template)
81
 
82
  # Формируем список полных промптов для каждого запроса
83
  full_prompts = [prompt.format(context=context, input=query) for query in user_queries]
84
 
85
+ # Используем llm.batch для получения ответов на все промпты
86
+ responses = llm.batch(full_prompts)
87
  log_message("Ответы сгенерированы.")
88
  return responses
89
 
90
 
91
 
92
+
93
+ def process_comments(ACCESS_TOKEN, user_context):
94
  log_message("Начинаем процесс скрытия отрицательных комментариев.")
95
  hidden_comments_data = hide_negative_comments(ACCESS_TOKEN)
96
  log_message(f"Количество постов с скрытыми комментариями: {len(hidden_comments_data)}")
 
107
 
108
  processed_posts = []
109
  processed_comment_ids = set()
110
+
111
  all_comments = []
112
  all_comment_ids = []
113
+ comment_id_to_post_id = {}
114
+ comment_id_to_message = {}
115
 
116
  for post_data in posts_with_unanswered_comments:
117
  post_id = post_data['post_id']
 
128
  message = comment['message']
129
  log_message(f"Добавление комментария для обработки: {message}")
130
 
131
+ # Сохраняем данные комментария
132
  all_comments.append(message)
133
  all_comment_ids.append(comment_id)
134
+ comment_id_to_post_id[comment_id] = post_id
135
+ comment_id_to_message[comment_id] = message
136
 
137
  # Генерируем ответы на все комментарии батчем
138
+ responses = generate_responses(all_comments, context=user_context)
139
+
140
+ # Собираем результаты в список для отображения
141
+ result_data = []
142
 
 
143
  for comment_id, response_message in zip(all_comment_ids, responses):
144
  log_message(f"Ответ на комментарий {comment_id}: {response_message}")
145
  success = reply_comment(comment_id=comment_id, message=response_message, token=ACCESS_TOKEN)
 
148
  else:
149
  log_message(f"Ошибка при отправке ответа на комментарий {comment_id}")
150
 
151
+ # Добавляем информацию в результат
152
+ result_data.append({
153
+ 'Post ID': comment_id_to_post_id[comment_id],
154
+ 'Comment ID': comment_id,
155
+ 'Comment': comment_id_to_message[comment_id],
156
+ 'Response': response_message
 
 
 
157
  })
158
 
159
+ return result_data
 
 
 
 
 
 
 
 
 
160
 
 
 
 
 
161
 
162
 
163
  with gr.Blocks() as demo: