This package supports access to a variety of Google's models, including the Gemini family of models and their Nano Banana image generation model. You can access these models through either Google's Google AI API (sometimes also called the Generative AI API or the AI Studio API) or through the Google Cloud Platform Vertex AI service. It does not rely on the "genai" library from Google, but rather uses direct REST calls.
This package will be replacing the ChatGoogleGenerativeAI and ChatVertex libraries.
pnpm install @langchain/core @langchain/google
This package, along with the main LangChain package, depends on @langchain/core.
If you are using this package with other LangChain packages, you should make sure that
all the packages depend on the same instance of @langchain/core.
This package contains the ChatGoogle class, which is the recommended way
to interface with Google's models.
For detailed configuration and use, including how to get credentials, see the LangChain.js documentation.
ChatGoogle supports standard LangChain tool calling as
well as Gemini-specific "Specialty Tools" (like Code Execution and Grounding).
See the LangChain.js documentation. for details.
Please report any problems encountered with the library in the LangChain.js github repository.
Please provide as many details as possible and make sure the title references the @langchain/google library. A code sample that can reproduce the issue is very welcome.
Contributions are welcome! You may wish to open an issue before you begin and tag @hntrl and @afirstenberg with your plans.
To develop the Google package, you'll need to follow these instructions:
pnpm install
pnpm build
Or from the repo root:
pnpm build --filter=@langchain/google
Test files should live within a tests/ file in the src/ folder. Unit tests should end in .test.ts and integration tests should
end in .int.test.ts:
pnpm test
pnpm test:int
Note that the integration tests run against currently supported models and platforms.
Run the linter & formatter to ensure your code is up to standard:
pnpm lint && pnpm format
If you add a new file to be exported, either import & re-export from src/index.ts, or add it to the exports field in the package.json file and run pnpm build to generate the new entrypoint.