借助 Chat Completions API,您可以通过 OpenAI 的 Python 库和 REST API 高效调用 Vertex AI 模型,甚至在现有代码中快速切换到 Vertex AI 托管模型进行比较,无需修改代码。如果您尚未使用 OpenAI 库,我们建议直接调用 Gemini API。
Chat Completions API 支持两类模型:
Gemini 模型:适用于各种多模式 AI 应用场景。
来自 Model Garden 的自行部署模型:可根据需求实现自定义功能。
如需通过 OpenAI 的 Python 库或 Chat Completions API 调用模型,请按照以下步骤操作:
安装 OpenAI SDK:
bash
pip install openai
使用 google-auth SDK 获取 Google 凭据:
python
import google.auth
creds, _ = google.auth.default()
默认访问令牌持续 1 小时,可以通过刷新令牌来延长有效期。将 openai.api_key 变量更新为新的令牌即可。
设置模型变量并初始化客户端:
python
client = openai.OpenAI()
为 Gemini 模型设置 MODEL_ID 和相关端点模式,确保正确完成模型调用。
您可通过 Chat Completions API 实现以下功能:
以下示例展示了如何向 Gemini 模型发送流式传输请求:
python
response = client.chat.completions.create(
model="google/gemini-1.5-flash-002",
messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(response.choices[0].message.content)
您还可以通过 cURL 命令来发送非流式或流式请求:
bash
curl -X POST
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: application/json"
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT}/chat/completions
-d '{
"stream": true,
"messages": [{
"role": "user",
"content": "Write a short story about a magic backpack."
}]
}'
Chat Completions API 支持以下常用参数:
messages:包括 System message、User message、Assistant message 等类型。
model:选择调用的特定模型。
max_tokens:设定生成的最大字符限制。
temperature:控制生成的随机性。
top_p:用于调节概率分布。
stream:是否启用流式输出。
其他参数详见官方文档。
对于第三方模型,参数支持可能会有所不同,建议参考相关模型的具体文档。
以下为 Python 自动刷新凭据的范例:
python
from typing import Any
import google.auth
import google.auth.transport.requests
import openai
class OpenAICredentialsRefresher:
def init(self, **kwargs: Any) -> None:
self.client = openai.OpenAI(**kwargs, api_key="DUMMY")
self.creds, self.project = google.auth.default(
scopes=["https://www.googleapis.com/auth/cloud-platform"]
)
def __getattr__(self, name: str) -> Any:
if not self.creds.valid:
auth_req = google.auth.transport.requests.Request()
self.creds.refresh(auth_req)
if not self.creds.valid:
raise RuntimeError("Unable to refresh auth")
self.client.api_key = self.creds.token
return getattr(self.client, name)
通过上面的代码,您可以确保凭据的有效性,避免因过期而导致的验证失败。
查看 Inference API 示例 和 Function Calling API 示例。
深入了解 Gemini API。
学习从 Azure OpenAI 迁移到 Gemini API 的方法。