Google Gemini API開發指南:如何將Google Gemini整合到你的網站和專案中?
上個月,Google發布了Gemini。緊隨其後,我基於Google Gemini開發了AI SEO——自動和批量化生成搜尋引擎友好的文章的Wordpress 插件,一個SEO神器。
詳情可以看這裡:
這個月,我又基於Google Gemini 開發了一個chatbot。
這裡分享一下基於Google Gemini API的開發經驗。
一、概述
1、開發語言
如果是js、python、go、swift、android的開發,可以直接參考Google Gemini API官方文件的範例:
https://ai.google.dev/docs?hl=zh-cn
本文的範例是基於PHP開發的。
2、Rest API
除了以上幾種開發語言,其它開發語言都將使用Rest API和Google Gemini進行互動。
所以,本文使用的PHP,也是基於Rest API和Google Gemini互動的。
二、三種請求模式
1.文本生成文本
這是最基本的。
模型:
Gemini Pro。
請求的URL:
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=’${API_KEY}
請求方式:
POST
請求的資料結構:
{ "contents": [ { "parts": [ { "text": "xxxxxx" } ] } ] }
2、多模式(文字+圖片產生文字)
用圖片,或文字加圖片做提示詞產生文字。
模型:
Gemini Pro Version。
請求的URL:
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro-vision:generateContent?key='${API_KEY}
請求方式:
POST
請求的資料結構:
{ "contents": [ { "parts": [ { "text": "hello\n Hello! How may I assist you today?\na cat" }, { "inlineData": { "mimeType": "image/jpeg ", "data": "'$(base64 -w0 image0.jpeg)'" } }, { "text": "xxxxxxx" } ] } ], }
3、多輪對話(聊天)
只能用Gemini Pro模型,也就是說只能文字產生文字。
模型:
Gemini Pro。
請求的URL:
https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=’${API_KEY}
請求方式:
POST
請求的資料結構:
{ "contents": [ {"role":"user", "parts":[{ "text": "xxxxxx"}]}, {"role": "model", "parts":[{ "text" : "xxxxxx"}]}, {"role": "user", "parts":[{ "text": "xxxxxx"}]}, ] }
三、實例
使用PHP和Google Gemini的Rest API進行呼叫。
1、取得Google Gemini API Key
參考這篇文章:
2、PHP請求代碼(文字產生文字)
function gemini_post(){ //gemini 的API key $apikey="xxxxxx"; //url $url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateent?key=" . $apikey; / /請求資料$data = [ "contents" => [ "parts" => [ "text" => $text ] ] ]; //post請求$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); // 設定請求頭curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_se頂data)) { //判斷是否為POST請求curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data)); curl); $res = json_decode($response); curl_close($curl); return $res; }
3.多模式
多模式的請求方式和文字產生文字是一樣的,只是請求的資料中會有圖片。
4.聊天
聊天的請求方式和文字產生文字是一樣的,只是請求的資料中是多個數據,並且,必須要有「role」欄位。
四、最佳實踐
服務端請求還是客戶端請求?
我的經驗,如果產品涉及大量的提示詞,那麼,最好還是透過服務端請求,因為便於提示詞的管理。
另外,考慮到一些地區無法要求Google Gemini,服務端請求可以讓這些地區的使用者可以使用基於Google Gemini的產品。
如果不需要考慮這兩點,還是客戶端請求更方便一些。
五、總結
Google Gemini的能力不輸於GPT,而且,可以免費使用,基於Google Gemini可以更方便地開發各種AI應用。看好Google Gemini未來的發展。
六、附錄
Google Gemini官網:
Google Gemini API 文件:
https://ai.google.dev/docs?hl=zh-cn