77import logging
88from abc import ABC , abstractmethod
99
10- import openai
10+ from openai import AsyncOpenAI
1111
1212
1313class BaseModelHandler (ABC ):
1414 @abstractmethod
15- def handle_request (
15+ async def handle_request (
1616 self , query : str , context : str
1717 ) -> tuple [str , dict [str , int ], dict [str , float ], float ]:
1818 pass
@@ -31,9 +31,9 @@ class GPT4OMiniHandler(BaseModelHandler):
3131 PRICING_DOLLARS_PER_MILLION_TOKENS = {"input" : 0.15 , "output" : 0.60 }
3232
3333 def __init__ (self ) -> None :
34- self .client = openai . OpenAI (api_key = os .environ .get ("OPENAI_API_KEY" ))
34+ self .client = AsyncOpenAI (api_key = os .environ .get ("OPENAI_API_KEY" ))
3535
36- def handle_request (
36+ async def handle_request (
3737 self , query : str , context : str
3838 ) -> tuple [str , dict [str , int ], dict [str , float ], float ]:
3939 """
@@ -46,7 +46,7 @@ def handle_request(
4646 """
4747 start_time = time .time ()
4848 # TODO: Add error handling for API requests and invalid responses
49- response = self .client .responses .create (
49+ response = await self .client .responses .create (
5050 model = self .MODEL , instructions = query , input = context , temperature = 0.0
5151 )
5252 duration = time .time () - start_time
@@ -123,9 +123,9 @@ class GPT41NanoHandler(BaseModelHandler):
123123 """
124124
125125 def __init__ (self ) -> None :
126- self .client = openai . OpenAI (api_key = os .environ .get ("OPENAI_API_KEY" ))
126+ self .client = AsyncOpenAI (api_key = os .environ .get ("OPENAI_API_KEY" ))
127127
128- def handle_request (
128+ async def handle_request (
129129 self , query : str , context : str
130130 ) -> tuple [str , dict [str , int ], dict [str , float ], float ]:
131131 """
@@ -144,7 +144,7 @@ def handle_request(
144144 start_time = time .time ()
145145 # TODO: Add error handling for API requests and invalid responses
146146
147- response = self .client .responses .create (
147+ response = await self .client .responses .create (
148148 model = self .MODEL , instructions = query , input = context , temperature = 0.0
149149 )
150150 duration = time .time () - start_time
0 commit comments