跳到主要内容

Google AI Studio SDK

Google AI Studio 直通端点 - 以原生格式调用特定提供商的端点(无翻译)。

功能支持备注
成本跟踪支持 `/generateContent` 端点上的所有模型
日志记录适用于所有集成
终端用户跟踪如果您需要此功能,请告知我们
流式传输

只需将 https://generativelanguage.googleapis.com 替换为 LITELLM_PROXY_BASE_URL/gemini

示例用法

curl 'http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:countTokens?key=sk-anything' \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}]
}]
}'

支持所有 Google AI Studio 端点(包括流式传输)。

查看所有 Google AI Studio 端点

快速开始

调用 Gemini 的 /countTokens 端点

  1. 将 Gemini API 密钥添加到您的环境变量
export GEMINI_API_KEY=""
  1. 启动 LiteLLM 代理
litellm

# RUNNING on http://0.0.0.0:4000
  1. 测试一下!

调用 Google AI Studio token 计数端点

http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:countTokens?key=anything' \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}]
}]
}'

示例

http://0.0.0.0:4000/gemini 后面的任何内容都被视为特定提供商的路由,并相应地处理。

主要变更

原始端点替换为
https://generativelanguage.googleapis.comhttp://0.0.0.0:4000/gemini (LITELLM_PROXY_BASE_URL="http://0.0.0.0:4000")
key=$GOOGLE_API_KEYkey=任意内容(如果在代理上设置了虚拟密钥,则使用 key=LITELLM_VIRTUAL_KEY

示例 1:统计 token

LiteLLM 代理调用

curl http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:countTokens?key=anything \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}],
}],
}'

直接调用 Google AI Studio

curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:countTokens?key=$GOOGLE_API_KEY \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}],
}],
}'

示例 2:生成内容

LiteLLM 代理调用

curl "http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:generateContent?key=anything" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Write a story about a magic backpack."}]
}]
}' 2> /dev/null

直接调用 Google AI Studio

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Write a story about a magic backpack."}]
}]
}' 2> /dev/null

示例 3:缓存

curl -X POST "http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash-001:generateContent?key=anything" \
-H 'Content-Type: application/json' \
-d '{
"contents": [
{
"parts":[{
"text": "Please summarize this transcript"
}],
"role": "user"
},
],
"cachedContent": "'$CACHE_NAME'"
}'

直接调用 Google AI Studio

curl -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-001:generateContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"contents": [
{
"parts":[{
"text": "Please summarize this transcript"
}],
"role": "user"
},
],
"cachedContent": "'$CACHE_NAME'"
}'

高级

前提条件

使用此方法可避免向开发人员提供原始 Google AI Studio 密钥,同时仍允许他们使用 Google AI Studio 端点。

与虚拟密钥一起使用

  1. 设置环境
export DATABASE_URL=""
export LITELLM_MASTER_KEY=""
export GEMINI_API_KEY=""
litellm

# RUNNING on http://0.0.0.0:4000
  1. 生成虚拟密钥
curl -X POST 'http://0.0.0.0:4000/key/generate' \
-H 'Authorization: Bearer sk-1234' \
-H 'Content-Type: application/json' \
-d '{}'

预期响应

{
...
"key": "sk-1234ewknldferwedojwojw"
}
  1. 测试一下!
http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:countTokens?key=sk-1234ewknldferwedojwojw' \
-H 'Content-Type: application/json' \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}]
}]
}'

在请求头中发送 tags

如果您希望在 LiteLLM 数据库和日志记录回调中跟踪 tags,请使用此方法。

在请求头中将 tags 作为逗号分隔列表传递。在以下示例中,将跟踪以下 tags

tags: ["gemini-js-sdk", "pass-through-endpoint"]
curl 'http://0.0.0.0:4000/gemini/v1beta/models/gemini-1.5-flash:generateContent?key=sk-anything' \
-H 'Content-Type: application/json' \
-H 'tags: gemini-js-sdk,pass-through-endpoint' \
-d '{
"contents": [{
"parts":[{
"text": "The quick brown fox jumps over the lazy dog."
}]
}]
}'