..

AI Embedding Models - Google VertexAI

setup
python3 -m venv my-env-vertexai
source my-env-vertexai/bin/activate

pip3 install vertexai==1.49.0
pip3 show vertexai
hands-on
import vertexai
from typing import List, Optional
from vertexai.language_models import TextEmbeddingInput, TextEmbeddingModel

project_id = "PROJECT_ID"
vertexai.init(project=project_id, location="us-west1")

# https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/textembedding-gecko
# https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings
# https://cloud.google.com/vertex-ai/generative-ai/docs/embeddings/get-text-embeddings
def embed_text(
  texts: List[str] = ["banana muffins? ", "banana bread? banana muffins?"],
  task: str = "RETRIEVAL_DOCUMENT",
  model_name: str = "text-embedding-004",
  dimensionality: Optional[int] = 256,
) -> List[List[float]]:
  """Embeds texts with a pre-trained, foundational model."""
  model = TextEmbeddingModel.from_pretrained(model_name)
  inputs = [TextEmbeddingInput(text, task) for text in texts]
  kwargs = dict(output_dimensionality=dimensionality) if dimensionality else {}
  embeddings = model.get_embeddings(inputs, **kwargs)
  return [embedding.values for embedding in embeddings]

print(embed_text(
  texts=["banana muffins? ", "banana bread? banana muffins?"],
))

print('---')
GOOGLE_APPLICATION_CREDENTIALS=~/Downloads/tmp/application_default_credentials.json \
  python3 vertex-ai.py

other embedding models

other resources