Logo
Modules/Large Language Models (LLMs)/Available_llms

Gemini

Installation

npm install llamaindex @llamaindex/google

Usage

import { Gemini, GEMINI_MODEL } from "@llamaindex/google";
import { Settings } from "llamaindex";
 
Settings.llm = new Gemini({
  model: GEMINI_MODEL.GEMINI_PRO,
});

Usage with Vertex AI

To use Gemini via Vertex AI you can use GeminiVertexSession.

GeminiVertexSession accepts the env variables: GOOGLE_VERTEX_LOCATION and GOOGLE_VERTEX_PROJECT

import { Gemini, GEMINI_MODEL, GeminiVertexSession } from "@llamaindex/google";
 
const gemini = new Gemini({
  model: GEMINI_MODEL.GEMINI_PRO,
  session: new GeminiVertexSession({
    location: "us-central1",      // optional if provided by GOOGLE_VERTEX_LOCATION env variable
    project: "project1",          // optional if provided by GOOGLE_VERTEX_PROJECT env variable
    googleAuthOptions: {...},     // optional, but useful for production. It accepts all values from `GoogleAuthOptions`
  }),
});

GoogleAuthOptions

To authenticate for local development:

npm install @google-cloud/vertexai
gcloud auth application-default login

To authenticate for production you'll have to use a service account. googleAuthOptions has credentials which might be useful for you.

Load and index documents

For this example, we will use a single document. In a real-world scenario, you would have multiple documents to index.

import { Document, VectorStoreIndex } from "llamaindex";
 
const document = new Document({ text: essay, id_: "essay" });
 
const index = await VectorStoreIndex.fromDocuments([document]);

Query

const queryEngine = index.asQueryEngine();
 
const query = "What is the meaning of life?";
 
const results = await queryEngine.query({
  query,
});

Full Example

import { Gemini, GEMINI_MODEL } from "@llamaindex/google";
import { Document, VectorStoreIndex, Settings } from "llamaindex";
 
Settings.llm = new Gemini({
  model: GEMINI_MODEL.GEMINI_PRO,
});
 
async function main() {
  const document = new Document({ text: essay, id_: "essay" });
 
  // Load and index documents
  const index = await VectorStoreIndex.fromDocuments([document]);
 
  // Create a query engine
  const queryEngine = index.asQueryEngine({
    retriever,
  });
 
  const query = "What is the meaning of life?";
 
  // Query
  const response = await queryEngine.query({
    query,
  });
 
  // Log the response
  console.log(response.response);
}

API Reference

Edit on GitHub

Last updated on

On this page