@@ -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