| # import sys, os | |
| # import traceback | |
| # from dotenv import load_dotenv | |
| # import copy | |
| # load_dotenv() | |
| # sys.path.insert( | |
| # 0, os.path.abspath("../..") | |
| # ) # Adds the parent directory to the system path | |
| # import asyncio | |
| # from litellm import Router, Timeout | |
| # async def call_acompletion(semaphore, router: Router, input_data): | |
| # async with semaphore: | |
| # try: | |
| # # Use asyncio.wait_for to set a timeout for the task | |
| # response = await router.acompletion(**input_data) | |
| # # Handle the response as needed | |
| # return response | |
| # except Timeout: | |
| # print(f"Task timed out: {input_data}") | |
| # return None # You may choose to return something else or raise an exception | |
| # async def main(): | |
| # # Initialize the Router | |
| # model_list= [{ | |
| # "model_name": "gpt-3.5-turbo", | |
| # "litellm_params": { | |
| # "model": "gpt-3.5-turbo", | |
| # "api_key": os.getenv("OPENAI_API_KEY"), | |
| # }, | |
| # }, { | |
| # "model_name": "gpt-3.5-turbo", | |
| # "litellm_params": { | |
| # "model": "azure/chatgpt-v-2", | |
| # "api_key": os.getenv("AZURE_API_KEY"), | |
| # "api_base": os.getenv("AZURE_API_BASE"), | |
| # "api_version": os.getenv("AZURE_API_VERSION") | |
| # }, | |
| # }, { | |
| # "model_name": "gpt-3.5-turbo", | |
| # "litellm_params": { | |
| # "model": "azure/chatgpt-functioncalling", | |
| # "api_key": os.getenv("AZURE_API_KEY"), | |
| # "api_base": os.getenv("AZURE_API_BASE"), | |
| # "api_version": os.getenv("AZURE_API_VERSION") | |
| # }, | |
| # }] | |
| # router = Router(model_list=model_list, num_retries=3, timeout=10) | |
| # # Create a semaphore with a capacity of 100 | |
| # semaphore = asyncio.Semaphore(100) | |
| # # List to hold all task references | |
| # tasks = [] | |
| # # Launch 1000 tasks | |
| # for _ in range(1000): | |
| # task = asyncio.create_task(call_acompletion(semaphore, router, {"model": "gpt-3.5-turbo", "messages": [{"role":"user", "content": "Hey, how's it going?"}]})) | |
| # tasks.append(task) | |
| # # Wait for all tasks to complete | |
| # responses = await asyncio.gather(*tasks) | |
| # # Process responses as needed | |
| # print(f"NUMBER OF COMPLETED TASKS: {len(responses)}") | |
| # # Run the main function | |
| # asyncio.run(main()) | |