自從 Deepseek 發(fā)布以來春叫,網(wǎng)上都在瘋傳其與 ChatGPT-o1 和 Claude 3.5 的對(duì)比酱塔,而以前熱火朝天的 Google Gemini 卻徹底淡出了人們的視線,不論國內(nèi)國外改鲫。
關(guān)于 Deepseek 為什么如此轟動(dòng),可以查看這篇文章:為什么說 Deepseek 的實(shí)際意義遠(yuǎn)大于它的技術(shù)意義?
但既然如此铭拧,為什么還有講 Gemini API 的開發(fā)能?原因如下:
- 完全免費(fèi)恃锉!成本只是服務(wù)器和開發(fā)費(fèi)用搀菩。*
- Google 畢竟是所有 AI 公司中最龐大的綜合公司,可以保底破托。
- Gemini 1.5 及2.0 模型在處理超長文本和音視頻的能力依然世界第一肪跋。
成品演示:【Google Gemini 中國版】
使用 Gemini API 搭建的國內(nèi)鏡像網(wǎng)站,免費(fèi)土砂!
以下正式進(jìn)入開發(fā)教程州既,以 Curl 為例(配置最簡單)
Gemini API 開發(fā)教程
2. 準(zhǔn)備工作
2.1 獲取 API 密鑰
在開始使用 Gemini API 之前,您需要:
- 訪問 Google AI Studio 創(chuàng)建 API 密鑰
- 將密鑰保存在環(huán)境變量中:
export GOOGLE_API_KEY="Your_API_Key"
當(dāng)然萝映,在實(shí)際開發(fā)中方式有很多:Cloudflare 提供環(huán)境變量配置吴叶;服務(wù)器開發(fā)可以使用 config.php,再用 Nginx 或 Apache 設(shè)置為之內(nèi)本地訪問...
3. 基礎(chǔ)功能
3.1 純文本生成
使用 generateContent
方法可以讓模型根據(jù)輸入文本生成內(nèi)容:
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 多模態(tài)輸入(文本 + 圖片)
Gemini 1.5 以上就支持同時(shí)處理文本和圖片輸入:
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 多輪對(duì)話
支持構(gòu)建多輪對(duì)話序臂,保持上下文連貫:
(這是很多 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. 高級(jí)功能
4.1 流式輸出
使用 streamGenerateContent
實(shí)現(xiàn)實(shí)時(shí)輸出:
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": "提示詞"
}]
}]
}'
這個(gè)其實(shí)不是特別建議用贸宏,除非你的前端水平很高造寝,不然很容易 API 把內(nèi)容返回來了,前端渲染不了吭练。
4.2 配置生成參數(shù)
可以通過配置參數(shù)控制輸出:
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 查詢單個(gè)模型信息
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