{"id":30208659,"url":"https://github.com/msabramo/langchaingang","last_synced_at":"2026-05-14T20:01:28.762Z","repository":{"id":308299027,"uuid":"1032308819","full_name":"msabramo/langchaingang","owner":"msabramo","description":"Simple Python library for getting LangChain chat models via a uniform interface","archived":false,"fork":false,"pushed_at":"2025-08-05T22:55:38.000Z","size":42,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-20T07:29:37.670Z","etag":null,"topics":["langchain","langchain-python","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/msabramo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-05T06:01:05.000Z","updated_at":"2025-08-05T19:43:16.000Z","dependencies_parsed_at":"2025-08-05T08:28:56.457Z","dependency_job_id":null,"html_url":"https://github.com/msabramo/langchaingang","commit_stats":null,"previous_names":["msabramo/langchaingang"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/msabramo/langchaingang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msabramo%2Flangchaingang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msabramo%2Flangchaingang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msabramo%2Flangchaingang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msabramo%2Flangchaingang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msabramo","download_url":"https://codeload.github.com/msabramo/langchaingang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msabramo%2Flangchaingang/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33041204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["langchain","langchain-python","python"],"created_at":"2025-08-13T18:01:48.402Z","updated_at":"2026-05-14T20:01:28.757Z","avatar_url":"https://github.com/msabramo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LangChainGang\n\n[![Tests](https://github.com/msabramo/langchaingang/workflows/Tests/badge.svg)](https://github.com/msabramo/langchaingang/actions?query=workflow%3ATests)\n\nA unified interface for LangChain chat model providers that simplifies working with multiple LLM providers.\n\n## Features\n\n- **Unified API**: Single interface for multiple LangChain chat model providers\n- **Lazy Loading**: Providers are only imported when needed\n- **Graceful Fallbacks**: Missing dependencies don't break the entire package\n- **Provider Discovery**: Easily list available providers\n- **Standardized Parameters**: Consistent parameter handling across providers\n\n## Supported Providers\n\n- **OpenAI** (`openai`) - `ChatOpenAI`\n- **Azure OpenAI** (`azure_openai`) - `AzureChatOpenAI`\n- **AWS Bedrock** (`bedrock`) - `ChatBedrock`\n- **Google Vertex AI** (`vertex`) - `ChatVertexAI`\n- **Google Gemini** (`gemini`) - `ChatGoogleGenerativeAI`\n- **Anthropic** (`anthropic`) - `ChatAnthropic`\n- **Ollama** (`ollama`) - `ChatOllama`\n\n## Installation\n\nInstall the base package:\n\n```bash\nuv add langchaingang\n```\n\nInstall with specific provider support:\n\n```bash\n# OpenAI (and Azure OpenAI) support\nuv add \"langchaingang[openai]\"\n\n# AWS Bedrock support\nuv add \"langchaingang[aws]\"\n\n# Google Gemini and Vertex AI support\nuv add \"langchaingang[google]\"\n\n# Anthropic support\nuv add \"langchaingang[anthropic]\"\n\n# Ollama support\nuv add \"langchaingang[ollama]\"\n\n# Multiple providers\nuv add \"langchaingang[openai,anthropic,aws]\"\n\n# All providers\nuv add \"langchaingang[all]\"\n```\n\n## Quick Start\n\n```python\nimport langchaingang\n\n# List available providers\nproviders = langchaingang.get_provider_list()\nprint(providers)  # ['openai', 'anthropic', 'ollama', ...]\n\n# Get a chat model\nmodel = langchaingang.get_chat_model(\n    provider_name=\"openai\", \n    model=\"gpt-4o-mini\",\n    api_key=\"your-api-key\"\n)\n\n# Use the model\nresponse = model.invoke(\"Hello, world!\")\nprint(response.content)\n```\n\n## Usage Examples\n\n### OpenAI\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"openai\",\n    model=\"gpt-4o-mini\",\n    api_key=\"your-openai-key\"\n)\n```\n\n### Azure OpenAI\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"azure_openai\",\n    model=\"gpt-4o-mini\",\n    azure_endpoint=\"https://your-resource.openai.azure.com/\",\n    api_key=\"your-azure-key\",\n    api_version=\"2024-02-01\"\n)\n```\n\n### AWS Bedrock\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"bedrock\",\n    model=\"meta.llama3-2-70b-instruct-v1:0\",  # Will be converted to model_id\n    region_name=\"us-east-1\"\n)\n```\n\n### Google Vertex AI\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"vertex\",\n    model=\"gemini-2.0-flash-001\",  # Will be converted to model_name\n    project=\"your-gcp-project\"\n)\n```\n\n### Anthropic\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"anthropic\",\n    model=\"claude-sonnet-4-0\",\n    api_key=\"your-anthropic-key\"\n)\n```\n\n### Ollama\n\n```python\nmodel = langchaingang.get_chat_model(\n    provider_name=\"ollama\",\n    model=\"llama3\",\n    base_url=\"http://localhost:11434\"  # Optional, defaults to localhost:11434\n)\n```\n\n## Parameter Handling\n\nLangChainGang automatically handles provider-specific parameter differences:\n\n- **Bedrock**: `model` parameter is converted to `model_id`\n- **Vertex AI**: `model` parameter is converted to `model_name`\n- **All others**: `model` parameter is passed through unchanged\n\n## Error Handling\n\nThe package gracefully handles missing dependencies:\n\n```python\n# This won't fail even if langchain-openai isn't installed\nproviders = langchaingang.get_provider_list()\n\n# This will raise ImportError if langchain-openai isn't installed\nmodel = langchaingang.get_chat_model(\"openai\", model=\"gpt-4o-mini\")\n```\n\n## Development\n\nInstall development dependencies:\n\n```bash\nuv add \"langchaingang[dev]\"\n```\n\nRun tests:\n\n```bash\npytest\n```\n\nFormat code:\n\n```bash\nblack langchaingang/\nisort langchaingang/\n```\n\nType checking:\n\n```bash\nmypy langchaingang/\n```\n\n## License\n\nMIT License - see LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsabramo%2Flangchaingang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsabramo%2Flangchaingang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsabramo%2Flangchaingang/lists"}