Skip to content

Commit 45c8387

Browse files
committed
Refactor MessageHandler to optimize message saving logic, ensuring messages are saved without transcription when engagement is not needed, enhancing resource efficiency.
1 parent 217e210 commit 45c8387

1 file changed

Lines changed: 28 additions & 3 deletions

File tree

bot/rp_bot/messages/message_handler.py

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,16 +164,20 @@ async def get_response(
164164
args: List[str],
165165
) -> Optional[CommandResponse]:
166166
message_analysis_result = await self.prepare_get_reply(person, context, message)
167-
if message_analysis_result.save_message_to_db:
167+
if (
168+
message_analysis_result.save_message_to_db
169+
and not message_analysis_result.engage_is_needed
170+
):
171+
# Save message without transcribing to save resources
168172
await self.db.dialogs.add_message_to_dialog(
169173
context=context,
170174
person=person,
171-
# TODO: it might be worth it to save image and audio descriptions
172175
transcribed_message=TranscribedMessage(
173176
message_text=message.message_text,
174177
timestamp=message.timestamp,
175178
),
176179
)
180+
return None
177181
if not message_analysis_result.engage_is_needed:
178182
return None
179183

@@ -192,6 +196,14 @@ async def get_response(
192196
self.models_toolkit,
193197
self.prompt_manager,
194198
)
199+
await self.db.dialogs.add_message_to_dialog(
200+
context=context,
201+
person=person,
202+
transcribed_message=TranscribedMessage(
203+
message_text=message.message_text,
204+
timestamp=message.timestamp,
205+
),
206+
)
195207
response_message = await ai_agent.get_reply(prompt, system_prompt)
196208
result = CommandResponse(
197209
text="message_response", kwargs={"response_text": response_message}
@@ -203,7 +215,11 @@ async def stream_get_response(
203215
self, person: Person, context: Context, message: Message, args: List[str]
204216
) -> AsyncIterator[CommandResponse]:
205217
message_analysis_result = await self.prepare_get_reply(person, context, message)
206-
if message_analysis_result.save_message_to_db:
218+
if (
219+
message_analysis_result.save_message_to_db
220+
and not message_analysis_result.engage_is_needed
221+
):
222+
# Save message without transcribing to save resources
207223
await self.db.dialogs.add_message_to_dialog(
208224
context=context,
209225
person=person,
@@ -212,6 +228,7 @@ async def stream_get_response(
212228
timestamp=message.timestamp,
213229
),
214230
)
231+
return None
215232
if not message_analysis_result.engage_is_needed:
216233
return
217234

@@ -242,4 +259,12 @@ async def stream_get_response(
242259
text="streaming_message_response",
243260
kwargs={"response_text": response_message},
244261
)
262+
await self.db.dialogs.add_message_to_dialog(
263+
context=context,
264+
person=person,
265+
transcribed_message=TranscribedMessage(
266+
message_text=message.message_text,
267+
timestamp=message.timestamp,
268+
),
269+
)
245270
await self.finish_get_reply(person, context, message, response_message)

0 commit comments

Comments
 (0)