1 line
7.7 KiB
JSON
1 line
7.7 KiB
JSON
{"repo": "adityamittal1207/legislation-summarization-agent", "files": {"models.py": {"4923d91fdd658c3eb621153cd55243c6b3e65de3": {"t": 1785674519.6459906, "n": 7126, "h": "c57238964728e8b7", "c": "from langchain_openai import ChatOpenAI\nfrom langchain_anthropic import ChatAnthropic\nfrom langchain_google_genai import ChatGoogleGenerativeAI\nfrom langchain_mistralai import ChatMistralAI\nimport os\n\ndef get_gpt4o(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-4o model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-4o\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt4o_mini(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-4o-mini model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-4o-mini\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt4(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-4 model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-4\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt4_turbo(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-4 Turbo model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-4-turbo\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt4_vision(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-4 Vision model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-4-vision-preview\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt35_turbo(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-3.5 Turbo model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-3.5-turbo\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_gpt35_turbo_16k(temperature=0, api_keys=None):\n \"\"\"Initialize GPT-3.5 Turbo 16k context model\"\"\"\n key = api_keys.get(\"openai\") if api_keys else None\n return ChatOpenAI(\n model=\"gpt-3.5-turbo-16k\",\n temperature=temperature,\n openai_api_key=key,\n )\n\ndef get_claude_opus(temperature=0, api_keys=None):\n \"\"\"Initialize Claude 3 Opus model\"\"\"\n key = api_keys.get(\"anthropic\") if api_keys else None\n return ChatAnthropic(\n model=\"claude-3-opus-20240229\",\n temperature=temperature,\n anthropic_api_key=key,\n )\n\ndef get_claude_sonnet(temperature=0, api_keys=None):\n \"\"\"Initialize Claude 3 Sonnet model\"\"\"\n key = api_keys.get(\"anthropic\") if api_keys else None\n return ChatAnthropic(\n model=\"claude-3-sonnet-20240229\",\n temperature=temperature,\n anthropic_api_key=key,\n )\n\ndef get_claude_haiku(temperature=0, api_keys=None):\n \"\"\"Initialize Claude 3 Haiku model\"\"\"\n key = api_keys.get(\"anthropic\") if api_keys else None\n return ChatAnthropic(\n model=\"claude-3-haiku-20240307\",\n temperature=temperature,\n anthropic_api_key=key,\n )\n\ndef get_gemini_1_5_pro(temperature=0, api_keys=None):\n \"\"\"Initialize Gemini 1.5 Pro model\"\"\"\n key = api_keys.get(\"google\") if api_keys else None\n return ChatGoogleGenerativeAI(\n model=\"gemini-1.5-pro\",\n temperature=temperature,\n google_api_key=key,\n )\n\ndef get_gemini_1_5_flash(temperature=0, api_keys=None):\n \"\"\"Initialize Gemini 1.5 flash model\"\"\"\n key = api_keys.get(\"google\") if api_keys else None\n return ChatGoogleGenerativeAI(\n model=\"gemini-1.5-flash\",\n temperature=temperature,\n google_api_key=key,\n )\n\ndef get_gemini_2_0_pro(temperature=0, api_keys=None):\n \"\"\"Initialize Gemini 2.0 pro model\"\"\"\n key = api_keys.get(\"google\") if api_keys else None\n return ChatGoogleGenerativeAI(\n model=\"gemini-2.0-pro\",\n temperature=temperature,\n google_api_key=key,\n )\n\ndef get_gemini_2_0_flash(temperature=0, api_keys=None):\n \"\"\"Initialize Gemini 2.0 flash model\"\"\"\n key = api_keys.get(\"google\") if api_keys else None\n return ChatGoogleGenerativeAI(\n model=\"gemini-2.0-flash\",\n temperature=temperature,\n google_api_key=key,\n )\n\ndef get_mistral_large(temperature=0, api_keys=None):\n \"\"\"Initialize Mistral Large model\"\"\"\n key = api_keys.get(\"mistral\") if api_keys else None\n return ChatMistralAI(\n model=\"mistral-large-latest\",\n temperature=temperature,\n mistral_api_key=key,\n )\n\ndef get_mistral_medium(temperature=0, api_keys=None):\n \"\"\"Initialize Mistral Medium model\"\"\"\n key = api_keys.get(\"mistral\") if api_keys else None\n return ChatMistralAI(\n model=\"mistral-medium-latest\",\n temperature=temperature,\n mistral_api_key=key,\n )\n\ndef get_mistral_small(temperature=0, api_keys=None):\n \"\"\"Initialize Mistral Small model\"\"\"\n key = api_keys.get(\"mistral\") if api_keys else None\n return ChatMistralAI(\n model=\"mistral-small-latest\",\n temperature=temperature,\n mistral_api_key=key,\n )\n\n# Map of model providers\nMODEL_PROVIDERS = {\n \"gpt-4o\": \"openai\",\n \"gpt-4o-mini\": \"openai\",\n \"gpt-4\": \"openai\",\n \"gpt-4-turbo\": \"openai\",\n \"gpt-4-vision-preview\": \"openai\",\n \"gpt-3.5-turbo\": \"openai\",\n \"gpt-3.5-turbo-16k\": \"openai\",\n \"claude-opus\": \"anthropic\",\n \"claude-sonnet\": \"anthropic\",\n \"claude-haiku\": \"anthropic\",\n \"gemini-1.5-pro\": \"google\",\n \"gemini-1.5-flash\": \"google\",\n \"gemini-2.0-pro\": \"google\",\n \"gemini-2.0-flash\": \"google\",\n \"mistral-large\": \"mistral\",\n \"mistral-medium\": \"mistral\",\n \"mistral-small\": \"mistral\",\n}\n\n# Function to get model by name (convenience function)\ndef get_model(model_name, temperature=0, api_keys=None):\n \"\"\"\n Get a model by name\n \n Args:\n model_name: Name of the model to initialize\n temperature: Temperature setting (0-1)\n api_keys: Dictionary of API keys by provider name\n Example: {\"openai\": \"sk-...\", \"anthropic\": \"sk-ant-...\", \n \"google\": \"...\", \"mistral\": \"...\"}\n \n Returns:\n Initialized model instance\n \"\"\"\n model_map = {\n # OpenAI models\n \"gpt-4o\": get_gpt4o,\n \"gpt-4o-mini\": get_gpt4o_mini,\n \"gpt-4\": get_gpt4,\n \"gpt-4-turbo\": get_gpt4_turbo,\n \"gpt-4-vision-preview\": get_gpt4_vision,\n \"gpt-3.5-turbo\": get_gpt35_turbo,\n \"gpt-3.5-turbo-16k\": get_gpt35_turbo_16k,\n \n # Claude models\n \"claude-opus\": get_claude_opus,\n \"claude-sonnet\": get_claude_sonnet,\n \"claude-haiku\": get_claude_haiku,\n \n # Gemini models\n \"gemini-1.5-pro\": get_gemini_1_5_pro,\n \"gemini-1.5-flash\": get_gemini_1_5_flash,\n \"gemini-2.0-pro\": get_gemini_2_0_pro,\n \"gemini-2.0-flash\": get_gemini_2_0_flash,\n \n # Mistral models\n \"mistral-large\": get_mistral_large,\n \"mistral-medium\": get_mistral_medium,\n \"mistral-small\": get_mistral_small,\n }\n \n if model_name not in model_map:\n raise ValueError(f\"Model {model_name} not found. Available models: {list(model_map.keys())}\")\n \n return model_map[model_name](temperature=temperature, api_keys=api_keys)"}}}} |