Skip to main content

An integration package connecting Google's genai package and GigaChain

Project description

langchain-google-genai

This package contains the LangChain integrations for Gemini through their generative-ai SDK.

Installation

pip install -U langchain-google-genai

Image utilities

To use image utility methods, like loading images from GCS urls, install with extras group 'images':

pip install -e "langchain-google-genai[images]"

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.

export GOOGLE_API_KEY=your-api-key

Then initialize

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

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!")

Semantic Retrieval

Enables retrieval augmented generation (RAG) in your application.

# Create a new store for housing your documents.
corpus_store = GoogleVectorStore.create_corpus(display_name="My Corpus")

# Create a new document under the above corpus.
document_store = GoogleVectorStore.create_document(
    corpus_id=corpus_store.corpus_id, display_name="My Document"
)

# Upload some texts to the document.
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=0)
for file in DirectoryLoader(path="data/").load():
    documents = text_splitter.split_documents([file])
    document_store.add_documents(documents)

# Talk to your entire corpus with possibly many documents. 
aqa = corpus_store.as_aqa()
answer = aqa.invoke("What is the meaning of life?")

# Read the response along with the attributed passages and answerability.
print(response.answer)
print(response.attributed_passages)
print(response.answerable_probability)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gigachain_google_genai-2.0.0.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

gigachain_google_genai-2.0.0-py3-none-any.whl (39.5 kB view details)

Uploaded Python 3

File details

Details for the file gigachain_google_genai-2.0.0.tar.gz.

File metadata

  • Download URL: gigachain_google_genai-2.0.0.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Darwin/23.6.0

File hashes

Hashes for gigachain_google_genai-2.0.0.tar.gz
Algorithm Hash digest
SHA256 ac702e332883b1325ec296447cdd6ed904a7fdef3a2f6bbee2bb0373b0310755
MD5 0f82d7aa18186e4be33ae44685a372ab
BLAKE2b-256 e8fb1e26335f3f1d88093e9f34fc56cfa55fc687100c527107d162bcee463cb6

See more details on using hashes here.

File details

Details for the file gigachain_google_genai-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gigachain_google_genai-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da2638d062a60c4590baf92e08715c831a8e5e3e499f4f9bf3a9b0d244ab5127
MD5 3b25d67b9a9c41b8513ed3f98c8bebf7
BLAKE2b-256 baa75d377f5814e92f095c4a40cc193a01a462cf5b48f9df9df75a83b3669fa5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page