Spaces:
Paused
Paused
Update app.py
Browse files
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.
|
86 |
-
responses = llm.
|
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")
|