Skip to main content

Google AI Studio

Google AI Studio 的直通端点——调用特定于提供者的端点,采用原生格式(无需转换)。

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

示例用法

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

# 运行在 http://0.0.0.0:4000
  1. 测试一下!

让我们调用 Google AI Studio 的令牌计数端点

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=anything (如果代理上设置了虚拟密钥,则使用 key=LITELLM_VIRTUAL_KEY)

示例 1: 计数令牌

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

# 运行在 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": "敏捷的棕色狐狸跳过懒狗。"
}]
}]
}'