from crewai import LLM import os from dotenv import load_dotenv from pathlib import Path from langchain_openai import ChatOpenAI from langchain_openrouter import ChatOpenRouter env_path = Path(__file__).resolve().parents[1] / ".env" # Load variables from .env file load_dotenv(dotenv_path=env_path) # Now you can access them gemini_key = os.getenv("GEMINI_API_KEY") tavily_key = os.getenv("TAVILY_API_KEY") openrouter_key = os.getenv("OPENROUTER_API_KEY") os.environ["ANTHROPIC_API_KEY"] = openrouter_key # llm = LLM(model="gemini/gemini-2.5-flash", temperature=0, api_key=gemini_key) # llm = LLM( # model="openrouter/openai/gpt-oss-20b:free", # api_key=openrouter_key, # base_url="https://openrouter.ai/api/v1", # ) def llm(): return LLM( model="openrouter/openai/gpt-oss-20b:free", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_oss(): return LLM( model="openrouter/openai/gpt-oss-20b:free", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_oss_120b(): return LLM( model="openai/gpt-oss-120b:nitro", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_g(): return LLM( model="openrouter/google/gemini-2.5-flash", temperature=0, api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_5m(): return LLM( model="openrouter/openai/gpt-5-mini", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_4m(): return LLM( model="openrouter/openai/gpt-4.1-mini", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) # def llm_5m(): # return LLM( # model="gpt-5-mini-2025-08-07", # ) # def llm_4m(): # return LLM( # model="gpt-4.1-mini-2025-04-14", # ) # def llm_5n(): # return LLM( # model="gpt-5-nano-2025-08-07", # ) def llm_open_4m(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/openai/gpt-4.1-mini", ) def llm_5n(): return LLM( model="openrouter/openai/gpt-5-nano", api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_open_c3(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/anthropic/claude-3-haiku", # streaming=False, ) def llm_open_c35(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/anthropic/claude-3.5-haiku", # streaming=False, ) def llm_open_nova(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/amazon/nova-2-lite-v1", # streaming=False, # tools=[], ) def llm_open_hermes(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/nousresearch/hermes-3-llama-3.1-405b:free", # streaming=False, ) def llm_open_grok(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/x-ai/grok-4.3", max_tokens=15000, # streaming=False, ) def llm_open_g25pro(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/google/gemini-2.5-pro", # streaming=False, max_output_tokens=40000, ) # Initialize Gemini model def model(): return ChatOpenAI( model="google/gemini-2.5-flash", temperature=0, api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", ) def llm_qwen(): return LLM( api_key=openrouter_key, base_url="https://openrouter.ai/api/v1", model="openrouter/qwen/qwen3.6-plus:free", # streaming=False, ) def model_open_router(): return ChatOpenRouter( model="x-ai/grok-4.1-fast", api_key=openrouter_key, temperature=0.2, max_retries=2, ) # # check llm # response=llm_g.call("Hello, how are you?") # print(response)