Vertex AI
注意: Vertex 已基本被 Google GenAI 取代,后者通过 google-genai 包支持与 Vertex 相同的功能。请访问 Google GenAI 页面获取最新示例和文档。
安装 Vertex AI
Section titled “Installing Vertex AI”要安装 Vertex AI,您需要按照以下步骤操作
- 安装 Vertex Cloud SDK (https://googleapis.dev/python/aiplatform/latest/index.html)
- 设置您的默认项目、凭据和区域
%pip install llama-index-llms-vertexfrom llama_index.llms.vertex import Vertexfrom google.oauth2 import service_account
filename = "vertex-407108-37495ce6c303.json"credentials: service_account.Credentials = ( service_account.Credentials.from_service_account_file(filename))Vertex( model="text-bison", project=credentials.project_id, credentials=credentials)对 text-bison 模型的基础调用
from llama_index.llms.vertex import Vertexfrom llama_index.core.llms import ChatMessage, MessageRole
llm = Vertex(model="text-bison", temperature=0, additional_kwargs={})llm.complete("Hello this is a sample text").text' ```\nHello this is a sample text\n```'(await llm.acomplete("hello")).text' Hello! How can I help you?'list(llm.stream_complete("hello"))[-1].text' Hello! How can I help you?'chat = Vertex(model="chat-bison")messages = [ ChatMessage(role=MessageRole.SYSTEM, content="Reply everything in french"), ChatMessage(role=MessageRole.USER, content="Hello"),]chat.chat(messages=messages).message.content' Bonjour! Comment vas-tu?'(await chat.achat(messages=messages)).message.content' Bonjour! Comment vas-tu?'list(chat.stream_chat(messages=messages))[-1].message.content' Bonjour! Comment vas-tu?'Gemini 模型
Section titled “Gemini Models”通过 Vertex AI 调用 Google Gemini 模型已获得完整支持。
Gemini Pro
Section titled “Gemini Pro”llm = Vertex( model="gemini-pro", project=credentials.project_id, credentials=credentials, context_window=100000,)llm.complete("Hello Gemini").textGemini 视觉模型
Section titled “Gemini Vision Models”Gemini视觉模型现在支持TextBlock和ImageBlock用于结构化多模态输入,取代了旧有的基于字典的content格式。使用blocks可通过文件路径或URL包含文本和图像。
图像路径示例:
from llama_index.llms.vertex import Vertexfrom llama_index.core.llms import ChatMessage, TextBlock, ImageBlock
history = [ ChatMessage( role="user", blocks=[ ImageBlock(path="sample.jpg"), TextBlock(text="What is in this image?"), ], ),]llm = Vertex( model="gemini-1.5-flash", project=credentials.project_id, credentials=credentials, context_window=100000,)print(llm.chat(history).message.content)The image shows a man in handcuffs being escorted by police officers. The man is wearing a black jacket and a black hooded sweatshirt. He is being escorted by two police officers who are wearing black balaclavas and bulletproof vests. The officers are from the Romanian Gendarmerie. The image is likely from a news report or a documentary about a crime.图像URL示例:
from llama_index.llms.vertex import Vertexfrom llama_index.core.llms import ChatMessage, TextBlock, ImageBlock
history = [ ChatMessage( role="user", blocks=[ ImageBlock( url="https://upload.wikimedia.org/wikipedia/commons/7/71/Sibirischer_tiger_de_edit02.jpg" ), TextBlock(text="What is in this image?"), ], ),]llm = Vertex( model="gemini-1.5-flash", project=credentials.project_id, credentials=credentials, context_window=100000,)print(llm.chat(history).message.content)A close-up of a tiger's face. The tiger is looking directly at the camera with a serious expression. The fur is a mix of orange, black, and white. The background is blurred, making the tiger the main focus of the image.