diff --git a/api/responder.py b/api/responder.py index 8907104..c92c902 100644 --- a/api/responder.py +++ b/api/responder.py @@ -7,6 +7,7 @@ import aiohttp import asyncio import starlette +from typing import Set from rich import print from dotenv import load_dotenv @@ -23,6 +24,8 @@ CRITICAL_API_ERRORS = ['invalid_api_key', 'account_deactivated'] keymanager = providerkeys.manager +background_tasks: Set[asyncio.Task] = set() + async def respond( path: str='/v1/chat/completions', user: dict=None, @@ -154,7 +157,7 @@ async def respond( if (not is_stream) and server_json_response: yield json.dumps(server_json_response) - asyncio.create_task( + task = asyncio.create_task( after_request.after_request( incoming_request=incoming_request, target_request=target_request, @@ -166,3 +169,5 @@ async def respond( model=model, ) ) + background_tasks.add(task) + task.add_done_callback(background_tasks.discard)