@@ -239,132 +239,6 @@ async def _respond_to_event(self, text_data):
239239 elif event == "stop" :
240240 await self .stop ()
241241
242- async def _respond_to_event_old (self , text_data ):
243- from llmstack .apps .apis import AppViewSet
244- from llmstack .apps .models import AppSessionFiles
245-
246- json_data = json .loads (text_data )
247- id = json_data .get ("id" , None )
248- event = json_data .get ("event" , None )
249- request_uuid = str (uuid .uuid4 ())
250- self ._session_id = self ._session_id or json_data .get (
251- "session_id" ,
252- None ,
253- )
254- self ._user = self .scope .get ("user" , None )
255- self ._session = self .scope .get ("session" , None )
256-
257- # if event == "run":
258- # try:
259- # request = await _build_request_from_input({"input": input, "stream": True}, self.scope)
260- # if is_ratelimited_fn(request, self._respond_to_event):
261- # raise Ratelimited("Rate limit reached.")
262-
263- # output_stream, self._coordinator_ref = await self._run_app(request_uuid=request_uuid, request=request)
264- # # Generate a uuid for the response
265- # response_id = str(uuid.uuid4())
266-
267- # async for output in output_stream:
268- # if "errors" in output or "session" in output:
269- # if "session" in output:
270- # self._session_id = output["session"]["id"]
271- # await self.send(text_data=json.dumps({**output, **{"reply_to": id}}))
272- # else:
273- # await self.send(
274- # text_data=json.dumps(
275- # {"output": output, "reply_to": id, "id": response_id, "request_id": request_uuid}
276- # )
277- # )
278-
279- # await self.send(
280- # text_data=json.dumps(
281- # {"event": "done", "reply_to": id, "id": response_id, "request_id": request_uuid}
282- # )
283- # )
284- # except Ratelimited:
285- # await self.send(
286- # text_data=json.dumps({"event": "ratelimited", "reply_to": id, "request_id": request_uuid})
287- # )
288- # except UsageLimitReached:
289- # await self.send(
290- # text_data=json.dumps({"event": "usagelimited", "reply_to": id, "request_id": request_uuid})
291- # )
292- # except Exception as e:
293- # logger.exception(e)
294- # await self.send(text_data=json.dumps({"errors": [str(e)], "reply_to": id, "request_id": request_uuid}))
295-
296- if event == "init" :
297- # Create a new session and return the session id
298- self ._session_id = await AppViewSet ().init_app_async (self .app_id )
299- await self .send (text_data = json .dumps ({"session" : {"id" : self ._session_id }, "request_id" : request_uuid }))
300-
301- if event == "create_asset" :
302- try :
303- # Create an asset in the session. Returns asset info for the other side to upload content to
304- session_created = False
305- if not self ._session_id :
306- self ._session_id = await AppViewSet ().init_app_async (self .app_id )
307- session_created = True
308-
309- asset_data = json_data .get ("data" , {})
310- asset_metadata = {
311- "file_name" : asset_data .get ("file_name" , str (uuid .uuid4 ())),
312- "mime_type" : asset_data .get ("mime_type" , "application/octet-stream" ),
313- "app_uuid" : self .app_id ,
314- "username" : (
315- self ._user .username
316- if self ._user and not self ._user .is_anonymous
317- else self ._session .get ("_prid" , "" )
318- ),
319- }
320-
321- asset = await sync_to_async (AppSessionFiles .create_asset )(
322- asset_metadata , self ._session_id , streaming = asset_data .get ("streaming" , False )
323- )
324-
325- if not asset :
326- await self .send (
327- text_data = json .dumps (
328- {
329- "errors" : ["Failed to create asset" ],
330- "reply_to" : id ,
331- "request_id" : request_uuid ,
332- "asset_request_id" : id ,
333- }
334- )
335- )
336- return
337-
338- output = {
339- "asset" : asset .objref ,
340- "reply_to" : id ,
341- "request_id" : request_uuid ,
342- "asset_request_id" : id ,
343- }
344-
345- if session_created :
346- output ["session" ] = {"id" : self ._session_id }
347-
348- await self .send (text_data = json .dumps (output ))
349- except Exception as e :
350- logger .exception (e )
351- await self .send (
352- text_data = json .dumps (
353- {"errors" : [str (e )], "reply_to" : id , "request_id" : request_uuid , "asset_request_id" : id }
354- )
355- )
356-
357- if event == "delete_asset" :
358- # Delete an asset in the session
359- if not self ._session_id :
360- return
361-
362- # TODO: Implement delete asset
363-
364- if event == "stop" :
365- if self ._coordinator_ref :
366- self ._coordinator_ref .stop ()
367-
368242 async def receive (self , text_data ):
369243 self ._event_response_task = run_coro_in_new_loop (self ._respond_to_event (text_data ), name = "respond_to_event" )
370244
0 commit comments