# #### What this tests #### # # This tests the LiteLLM Class # import sys, os # import traceback # import pytest # sys.path.insert( # 0, os.path.abspath("../..") # ) # Adds the parent directory to the system path # import litellm # import asyncio # litellm.set_verbose = True # from litellm import Router # import instructor # from pydantic import BaseModel # # This enables response_model keyword # # # from client.chat.completions.create # # client = instructor.patch(Router(model_list=[{ # # "model_name": "gpt-3.5-turbo", # openai model name # # "litellm_params": { # params for litellm completion/embedding call # # "model": "azure/chatgpt-v-2", # # "api_key": os.getenv("AZURE_API_KEY"), # # "api_version": os.getenv("AZURE_API_VERSION"), # # "api_base": os.getenv("AZURE_API_BASE") # # } # # }])) # # class UserDetail(BaseModel): # # name: str # # age: int # # user = client.chat.completions.create( # # model="gpt-3.5-turbo", # # response_model=UserDetail, # # messages=[ # # {"role": "user", "content": "Extract Jason is 25 years old"}, # # ] # # ) # # assert isinstance(model, UserExtract) # # assert isinstance(user, UserDetail) # # assert user.name == "Jason" # # assert user.age == 25 # # print(f"user: {user}") # import instructor # from openai import AsyncOpenAI # aclient = instructor.apatch(Router(model_list=[{ # "model_name": "gpt-3.5-turbo", # openai model name # "litellm_params": { # params for litellm completion/embedding call # "model": "azure/chatgpt-v-2", # "api_key": os.getenv("AZURE_API_KEY"), # "api_version": os.getenv("AZURE_API_VERSION"), # "api_base": os.getenv("AZURE_API_BASE") # } # }], default_litellm_params={"acompletion": True})) # class UserExtract(BaseModel): # name: str # age: int # async def main(): # model = await aclient.chat.completions.create( # model="gpt-3.5-turbo", # response_model=UserExtract, # messages=[ # {"role": "user", "content": "Extract jason is 25 years old"}, # ], # ) # print(f"model: {model}") # asyncio.run(main())