@anvia/gemini
v1.1.4
Published
Gemini provider adapter for Anvia.
Downloads
2,865
Readme
@anvia/gemini
Gemini and Vertex AI provider adapter for Anvia.
Use this package when you want Anvia agents, extractors, pipelines, embeddings, image generation, or transcription to run on Google's Gemini APIs.
Installation
pnpm add @anvia/gemini @anvia/coreIn this monorepo, the package is available through the workspace:
pnpm --filter @anvia/gemini buildUsage
import { Agent } from "@anvia/core";
import { GeminiClient } from "@anvia/gemini";
const client = new GeminiClient({
apiKey,
});
const model = client.completionModel({ modelId: "gemini-3.7-flash" });
const agent = new Agent({
id: "assistant",
model: model,
instructions: "Answer clearly and concisely.",
});
const result = await agent.generate({ prompt: "Summarize Anvia in one sentence." });
if (result.type === "response") console.log(result.output);Vertex AI
Use the exclusive Vertex AI configuration with a Google Cloud project and location:
import { GeminiClient } from "@anvia/gemini";
const client = new GeminiClient({
vertexAi: {
projectId: "my-gcp-project",
location: "us-central1",
},
});
const model = client.completionModel({ modelId: "gemini-3.7-flash" });The Google SDK uses Application Default Credentials. For a service-account JSON file, set
GOOGLE_APPLICATION_CREDENTIALS before starting the application:
export GOOGLE_APPLICATION_CREDENTIALS="/absolute/path/service-account.json"Trusted credential objects can also be passed explicitly:
const client = new GeminiClient({
vertexAi: {
projectId: "my-gcp-project",
location: "us-central1",
googleAuthOptions: {
credentials: serviceAccountJson,
},
},
});Validate externally supplied credential configurations before using them. Never commit credential JSON or service-account keys.
Embeddings
const embeddings = client.embeddingModel({ modelId: "gemini-embedding-2" });
const vectors = await embeddings.embedTexts(["Anvia is a TypeScript AI runtime."]);Image Generation
Choose the image API explicitly. Gemini native image models use generateContent; Imagen uses
generateImages.
import { GEMINI_2_5_FLASH_IMAGE, IMAGEN_4_GENERATE, GeminiClient } from "@anvia/gemini";
const client = new GeminiClient({ apiKey });
const nativeImageModel = client.imageGenerationModel({
api: "generateContent",
modelId: GEMINI_2_5_FLASH_IMAGE,
});
const imagenModel = client.imageGenerationModel({
api: "generateImages",
modelId: IMAGEN_4_GENERATE,
});Exports
GeminiClient- structural completion, embedding, image, and transcription handle types
- Gemini model-ID types
GEMINI_2_5_FLASH_IMAGEGEMINI_3_1_FLASH_IMAGEGEMINI_3_1_FLASH_LITE_IMAGEGEMINI_3_PRO_IMAGEIMAGEN_4_GENERATEgemini
Development
pnpm --filter @anvia/gemini typecheck
pnpm --filter @anvia/gemini test
pnpm --filter @anvia/gemini buildPackage-local typecheck and build scripts build @anvia/core first so core subpath types are available in a fresh worktree.
