自从 Deepseek 发布以来,网上都在疯传其与 ChatGPT-o1 和 Claude 3.5 的对比,而以前热火朝天的 Google Gemini 却彻底淡出了人们的视线,不论国内国外。
关于 Deepseek 为什么如此轰动,可以查看这篇文章:为什么说 Deepseek 的实际意义远大于它的技术意义?
但既然如此,为什么还有讲 Gemini API 的开发能?原因如下:
- 完全免费!成本只是服务器和开发费用。*
- Google 毕竟是所有 AI 公司中最庞大的综合公司,可以保底。
- Gemini 1.5 及2.0 模型在处理超长文本和音视频的能力依然世界第一。
成品演示:【Google Gemini 中国版】
使用 Gemini API 搭建的国内镜像网站,免费!
以下正式进入开发教程,以 Curl 为例(配置最简单)
Gemini API 开发教程
2. 准备工作
2.1 获取 API 密钥
在开始使用 Gemini API 之前,您需要:
- 访问 Google AI Studio 创建 API 密钥
- 将密钥保存在环境变量中:
export GOOGLE_API_KEY="Your_API_Key"
当然,在实际开发中方式有很多:Cloudflare 提供环境变量配置;服务器开发可以使用 config.php,再用 Nginx 或 Apache 设置为之内本地访问...
3. 基础功能
3.1 纯文本生成
使用 generateContent
方法可以让模型根据输入文本生成内容:
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": "提示词"}]}]}'
3.2 多模态输入(文本 + 图片)
Gemini 1.5 以上就支持同时处理文本和图片输入:
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent" \
-H "Content-Type: application/json" \
-d '{
"contents":[{
"parts":[
{"text": "提示词"},
{
"inline_data": {
"mime_type":"image/jpeg",
"data": "BASE64_ENCODED_IMAGE"
}
}
]
}]
}'
3.3 多轮对话
支持构建多轮对话,保持上下文连贯:
(这是很多 AI 镜像都不具有的!包括 Gemini、ChatGPT)
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{"role":"user", "parts":[{"text": "提示词1"}]},
{"role":"model", "parts":[{"text": "回答1"}]},
{"role":"user", "parts":[{"text": "提示词2"}]}
]
}'
4. 高级功能
4.1 流式输出
使用 streamGenerateContent
实现实时输出:
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:streamGenerateContent?alt=sse" \
-H 'Content-Type: application/json' \
--no-buffer \
-d '{
"contents":[{
"parts":[{
"text": "提示词"
}]
}]
}'
这个其实不是特别建议用,除非你的前端水平很高,不然很容易 API 把内容返回来了,前端渲染不了。
4.2 配置生成参数
可以通过配置参数控制输出:
curl -X POST \
-d '{
"contents": [...],
"safetySettings": [{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_ONLY_HIGH"
}],
"generationConfig": {
"temperature": 1.0,
"maxOutputTokens": 800,
"topP": 0.8,
"topK": 10
}
}'
4.3 嵌入功能
使用 embedContent
获取文本的向量表示:
curl -X POST \
"https://generativelanguage.googleapis.com/v1beta/models/embedding-001:embedContent" \
-d '{
"model": "models/embedding-001",
"content": {
"parts":[{
"text": "your text"
}]
}
}'
5. 模型信息
5.1 查询单个模型信息
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-pro?key=$GOOGLE_API_KEY
5.2 获取所有可用模型
curl https://generativelanguage.googleapis.com/v1beta/models?key=$GOOGLE_API_KEY