diff --git a/llmstack/apps/runner/app_runner.py b/llmstack/apps/runner/app_runner.py index 1ed14e9f41..e1ecac36d5 100644 --- a/llmstack/apps/runner/app_runner.py +++ b/llmstack/apps/runner/app_runner.py @@ -166,6 +166,9 @@ def id(self): class SheetStoreAppRunnerSource(StoreAppRunnerSource): type: AppRunnerSourceType = AppRunnerSourceType.SHEET + request_ip: str = "" + request_location: str = "" + request_user_agent: str = "Promptly" sheet_id: str @property @@ -397,6 +400,11 @@ async def run(self, request: AppRunnerRequest): # Send the final output if "chunks" in output: + # Persist bookkeeping data + bookkeeping_data = self._coordinator.bookkeeping_data().get().get() + self._source.effects(request_id, self._session_id, output, bookkeeping_data) + + # Send the final output yield AppRunnerStreamingResponse( id=request_id, client_request_id=request.client_request_id, @@ -404,10 +412,6 @@ async def run(self, request: AppRunnerRequest): data=AppRunnerResponseOutputData(output=output.get("output", {}), chunks=output.get("chunks", {})), ) - # Persist bookkeeping data - bookkeeping_data = self._coordinator.bookkeeping_data().get().get() - self._source.effects(request_id, self._session_id, output, bookkeeping_data) - def run_until_complete(self, request: AppRunnerRequest, event_loop): for response in iter_over_async(self.run(request), event_loop): if isinstance(response.data, AppRunnerResponseErrorsData) or isinstance(