Uniaff commited on
Commit
05ccaed
·
verified ·
1 Parent(s): 81f858b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -7
app.py CHANGED
@@ -75,21 +75,21 @@ def delete_faiss_index():
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
- 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)}")
@@ -109,6 +109,7 @@ def process_comments(ACCESS_TOKEN, user_context):
109
 
110
  all_comments = []
111
  all_comment_ids = []
 
112
 
113
  for post_data in posts_with_unanswered_comments:
114
  post_id = post_data['post_id']
@@ -128,9 +129,10 @@ def process_comments(ACCESS_TOKEN, user_context):
128
  # Добавляем комментарий и его ID в списки
129
  all_comments.append(message)
130
  all_comment_ids.append(comment_id)
 
131
 
132
  # Генерируем ответы на все комментарии батчем
133
- responses = generate_responses(all_comments, context=user_context)
134
 
135
  # Отправляем ответы на соответствующие комментарии
136
  for comment_id, response_message in zip(all_comment_ids, responses):
@@ -142,6 +144,16 @@ def process_comments(ACCESS_TOKEN, user_context):
142
  log_message(f"Ошибка при отправке ответа на комментарий {comment_id}")
143
 
144
  # Формируем информацию о обработанных постах
 
 
 
 
 
 
 
 
 
 
145
  for post_data in posts_with_unanswered_comments:
146
  post_id = post_data['post_id']
147
  post_message = post_data['post_message']
@@ -150,7 +162,7 @@ def process_comments(ACCESS_TOKEN, user_context):
150
  'post_message': post_message,
151
  'hidden_comments': next(
152
  (item['hidden_comments'] for item in hidden_comments_data if item['post_id'] == post_id), []),
153
- # Вы можете добавить дополнительную информацию, если необходимо
154
  })
155
 
156
  return {
@@ -159,7 +171,6 @@ def process_comments(ACCESS_TOKEN, user_context):
159
  }
160
 
161
 
162
-
163
  with gr.Blocks() as demo:
164
  with gr.Tab("Главная страница"):
165
  gr.Markdown("# Facebook Comment Filter")
 
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)}")
 
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']
 
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):
 
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']
 
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 {
 
171
  }
172
 
173
 
 
174
  with gr.Blocks() as demo:
175
  with gr.Tab("Главная страница"):
176
  gr.Markdown("# Facebook Comment Filter")