Przewodnik rozwoju API Google Gemini: Jak zintegrować Google Gemini ze swoimi stronami internetowymi i projektami?
上个月,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:generateContent?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_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($data)) { //判断是否为POST请求
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
$res = json_decode($response);
curl_close($curl);
return $res;
}
3、多模式
多模式的请求方式和文本生成文本是一样的,只是请求的数据中会有图片。
4、聊天
聊天的请求方式和文本生成文本是一样的,只是请求的数据中是多条数据,并且,必须要有“role”字段。
四、最佳实践
服务端请求还是客户端请求?
我的经验,如果产品涉及到大量的提示词,那么,最好还是通过服务端请求,因为便于提示词的管理。
另外,考虑到一些地区无法请求Google Gemini,服务端请求可以让这些地区的用户可以使用基于Google Gemini的产品。
如果不需要考虑这两点,还是客户端请求更方便一些。
5. Podsumowanie
Google Gemini的能力不输于GPT,而且,可以免费使用,基于Google Gemini可以更加方便地开发各种AI应用。看好Google Gemini未来的发展。
六、附录
Google Gemini官网:
Google Gemini API 文档:
https://ai.google.dev/docs?hl=zh-cn