Skip to content

Commit 3c8c9ec

Browse files
committed
refactor: исправил вызов api в боте
1 parent 2c14138 commit 3c8c9ec

3 files changed

Lines changed: 16 additions & 20 deletions

File tree

answer/handlers/ask_bot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ async def handle_any_message(message: Message):
4444

4545
search_message = await message.answer("🔍 Ищу информацию и готовлю развернутый ответ...")
4646

47-
api_result = bot_service.generate_response(
47+
api_result = await bot_service.generate_response(
4848
text=validated_question, chat_id=str(message.chat.id), generate_ai_response=True
4949
)
5050

answer/routes/base.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ async def init_resources():
175175
"vector_store": app.state.vector_store,
176176
"ensemble_retriever": app.state.ensemble_retriever,
177177
"keywords_dict": app.state.keywords_dict,
178+
"text_preprocessor": app.state.text_preprocessor,
178179
}
179180
search_service.set_app_state(app_state_dict)
180181

@@ -191,27 +192,16 @@ async def shutdown_resources():
191192
async def generate_response(user_input: UserInput):
192193
if not user_input.text:
193194
raise HTTPException(status_code=400, detail="Text cannot be empty")
194-
195-
if user_input.generate_ai_response:
196-
ensemble_retriever = app.state.ensemble_retriever
197-
else:
198-
ensemble_retriever = app.state.filtered_ensemble_retriever
199-
200-
processed_text = app.state.text_preprocessor.preprocess(user_input.text)
201-
202-
results, combined_text = get_context(
203-
query=processed_text,
204-
key_words_dict=app.state.keywords_dict,
205-
ensemble_retriever=ensemble_retriever,
206-
vector_store=app.state.vector_store,
207-
ensemble_k=settings.ensemble_k,
208-
verbose=True,
195+
196+
response = await bot_service.generate_response(
197+
text=user_input.text,
198+
generate_ai_response=user_input.generate_ai_response,
209199
)
210200

211-
if results is None:
201+
if response is None:
212202
raise HTTPException(status_code=500, detail="Ошибка генерации ответа")
213203

214-
return results
204+
return response
215205

216206

217207
@app.post("/users", response_model=UserResponse)

answer/services/bot_service.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def get_or_create_user(self, chat_id: str) -> Tuple[Optional[Dict], bool]:
8080
logger.error(f"Ошибка получения/создания пользователя: {e}", exc_info=True)
8181
return None, False
8282

83-
def generate_response(
83+
async def generate_response(
8484
self, text: str, chat_id: str = "", generate_ai_response: bool = False
8585
) -> Optional[Dict[str, Any]]:
8686
"""
@@ -106,15 +106,21 @@ def generate_response(
106106
else app_state.get("filtered_ensemble_retriever", app_state["ensemble_retriever"])
107107
)
108108

109+
processed_text = app_state["text_preprocessor"].preprocess(text)
110+
109111
results, combined_text = get_context(
110-
query=text,
112+
query=processed_text,
111113
key_words_dict=app_state["keywords_dict"],
112114
ensemble_retriever=ensemble_retriever,
113115
vector_store=app_state["vector_store"],
114116
ensemble_k=settings.ensemble_k,
115117
verbose=True,
116118
)
117119

120+
if results is None:
121+
logger.error("Ошибка генерации ответа от get_context")
122+
return None
123+
118124
formatted_results = [
119125
{
120126
"topic": getattr(r, "topic", ""),

0 commit comments

Comments
 (0)