2023-12-13 19:57:59 +00:00
|
|
|
# langchain-google-genai
|
|
|
|
|
|
|
|
This package contains the LangChain integrations for Gemini through their generative-ai SDK.
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
2023-12-14 21:20:10 +00:00
|
|
|
```bash
|
2023-12-13 19:57:59 +00:00
|
|
|
pip install -U langchain-google-genai
|
|
|
|
```
|
|
|
|
|
2023-12-14 21:20:10 +00:00
|
|
|
### Image utilities
|
|
|
|
To use image utility methods, like loading images from GCS urls, install with extras group 'images':
|
|
|
|
|
|
|
|
```bash
|
|
|
|
pip install -e "langchain-google-genai[images]"
|
|
|
|
```
|
|
|
|
|
2023-12-13 19:57:59 +00:00
|
|
|
## Chat Models
|
|
|
|
|
|
|
|
This package contains the `ChatGoogleGenerativeAI` class, which is the recommended way to interface with the Google Gemini series of models.
|
|
|
|
|
|
|
|
To use, install the requirements, and configure your environment.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
export GOOGLE_API_KEY=your-api-key
|
|
|
|
```
|
|
|
|
|
|
|
|
Then initialize
|
|
|
|
|
|
|
|
```python
|
|
|
|
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
|
|
|
|
|
|
llm = ChatGoogleGenerativeAI(model="gemini-pro")
|
|
|
|
llm.invoke("Sing a ballad of LangChain.")
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Multimodal inputs
|
|
|
|
|
|
|
|
Gemini vision model supports image inputs when providing a single chat message. Example:
|
|
|
|
|
|
|
|
```
|
|
|
|
from langchain_core.messages import HumanMessage
|
|
|
|
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
|
|
|
|
|
|
llm = ChatGoogleGenerativeAI(model="gemini-pro-vision")
|
|
|
|
# example
|
|
|
|
message = HumanMessage(
|
|
|
|
content=[
|
|
|
|
{
|
|
|
|
"type": "text",
|
|
|
|
"text": "What's in this image?",
|
|
|
|
}, # You can optionally provide text parts
|
|
|
|
{"type": "image_url", "image_url": "https://picsum.photos/seed/picsum/200/300"},
|
|
|
|
]
|
|
|
|
)
|
|
|
|
llm.invoke([message])
|
|
|
|
```
|
|
|
|
|
|
|
|
The value of `image_url` can be any of the following:
|
|
|
|
|
|
|
|
- A public image URL
|
|
|
|
- An accessible gcs file (e.g., "gcs://path/to/file.png")
|
|
|
|
- A local file path
|
|
|
|
- A base64 encoded image (e.g., `data:image/png;base64,abcd124`)
|
|
|
|
- A PIL image
|
2023-12-14 01:05:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Embeddings
|
|
|
|
|
|
|
|
This package also adds support for google's embeddings models.
|
|
|
|
|
|
|
|
```
|
|
|
|
from langchain_google_genai import GoogleGenerativeAIEmbeddings
|
|
|
|
|
|
|
|
embeddings = GoogleGenerativeAIEmbeddings(model="models/embedding-001")
|
|
|
|
embeddings.embed_query("hello, world!")
|
|
|
|
```
|