(裏テーマは『AIの回答をプログラムで処理する方法』です)
AIブームに乗っかってみました。
(PHP + GeminiAPI)
ECサイトを運営しているのですが、出店者様から「商品のPR文、考えるのが意外と大変なんだよね~」との声をいただいたものの、そんなこと言われても俺も畑違いだし。。。と口から出かけたその時、「ハタト」ひらめく
AIに考えてもらうってありじゃない?
そうと決まればAPI!
探しましょう!(自作は無理よw)
Geminiの事はGeminiに聞くのさ!
へい!geminiをphpに組み込む方法を教えて?
GeminiをPHPに組み込むには、主に以下の2つの方法があります。
1. Google Cloud Vertex AI SDK for PHPを使用する
2. Gemini API を直接呼び出す
2番が簡単そうだな、、、
へい!Gemini!2番の方法を詳しく教えて!
Gemini APIを直接呼び出す方法について、詳しく説明します。
1. APIキーの取得
- Google AI StudioまたはGoogle Cloud PlatformからGemini APIのAPIキーを取得します。
- Google AI Studio: 開発者向けのツールで、APIキーを簡単に取得し、Gemini APIを試すことができます。
- Google Cloud Platform: より高度な設定や、他のGoogle Cloudサービスとの連携が必要な場合に利用します。
2. HTTPリクエストの実装
- PHPの
cURLライブラリを使用して、Gemini APIのエンドポイントにPOSTリクエストを送信します。- リクエストヘッダーにAPIキーを含めます。
- リクエストボディに、Geminiに送信するテキストや画像などのデータをJSON形式で指定します。
3. レスポンスの処理
- APIからのレスポンス(JSON形式)を解析し、必要な情報を抽出します。
サンプルコードはコチラ!
<?php $apiKey = 'YOUR_API_KEY'; // 取得したAPIキーを設定 $url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=' . $apiKey; $data = [ 'contents' => [ [ 'parts' => [ /*['text' => 'こんにちは、Gemini!'] ここでGeminiに問いかけ*/ ['text' => '私が売ってる『りんごのパウンドケーキ』 X.comでバズるハッシュタグと投稿例3を3つ教えて。 商品の特徴は〇〇。。。。'] ] ] ] ]; $options = [ 'http' => [ 'method' => 'POST', 'header' => [ 'Content-Type: application/json', ], 'content' => json_encode($data), ], ]; $context = stream_context_create($options); $response = file_get_contents($url, false, $context); if ($response === false) { echo 'API呼び出しに失敗しました。'; } else { $result = json_decode($response, true); if (isset($result['candidates'][0]['content']['parts'][0]['text'])) { //Geminiからの回答 echo $result['candidates'][0]['content']['parts'][0]['text']; } else { echo '応答からテキストを抽出できませんでした。'; } } ?>
ふむ、とりあえず必要なのは「Google AI Studio」で取得できる、APIキー
同じことを書いてもしょうがないものねってことで、APIキーの取得方法は他のサイトにお任せ!
で、実行結果はコチラ!
## Xでバズるハッシュタグと投稿例3選(りんごのパウンドケーキ)
**投稿例1:**
「🐶🍎ワン!こだわりのリンゴがゴロゴロ!贅沢なりんごのパウンドケーキ、完成しました!一口食べたら止まらない美味しさ…🤤 #りんごのパウンドケーキ #手作りおやつ #秋のスイーツ #アップルケーキ #おうちカフェ #犬も食べたい #ワンコおやつ #激ウマスイーツ #手作りお菓子 #bakedgoods 」
**投稿例2:**
「🍎🐾りんごがぎっしり!まるでリンゴ畑にいるみたいなりんごのパウンドケーキ🍎✨ しっとりふわふわで、紅茶にもコーヒーにもピッタリ☕️ ぜひ、おうちカフェタイムにいかがですか?😋 #りんごスイーツ #パウンドケーキ #手作りケーキ #秋の恵み #おうち時間 #スイーツ好きな人と繋がりたい #犬と一緒 #dogstagram #instasweets #homemade #アップルパイ風 」
**投稿例3:**
「🐶💖今日の焼き菓子は、とびきり美味しいりんごのパウンドケーキ🍎! 厳選されたリンゴの甘酸っぱさと、しっとりとした生地が相性抜群なんです! ワンコは見てるだけだけどね…😂(いつかワンコ用も作ろうかな…) #りんご #パウンドケーキレシピ #簡単レシピ #お菓子作り好きな人と繋がりたい #おやつタイム #秋スイーツ #犬との暮らし #doglife #happybaking #homemadecake #贅沢スイーツ 」
**ポイント:**
* 絵文字を効果的に使用して、投稿を楽しく、魅力的に見せる。
* 「犬」に関連するハッシュタグ(例:#犬も食べたい、#犬と一緒、#犬との暮らしなど)を入れることで、犬好きユーザーにもリーチできる可能性を広げる。
* 具体的な言葉(例:ゴロゴロ、しっとり、ふわふわ、甘酸っぱいなど)を使って、ケーキの美味しさを伝える。
* 複数のハッシュタグを使用する(関連性の高いものを10個程度が目安)。
* 投稿文全体で、親しみやすさと美味しさを表現する。
これらの投稿例を参考に、写真や動画と組み合わせることで、さらに効果的な投稿を作成できます! 頑張ってください! 🐾🍎ふむ、なるほど。とりあえず、回答は返ってきたね!
あとは”どう”問いかけるかで、回答の質を上げていくかってとこですが、そこはまた別の話として
プログラム的には、こんな長文で帰ってきても、じゃあ後はユーザーの方でコピペして、SNSのアプリを開いて自由にやってね!
では不親切。
返ってきた回答の中から、気に入った回答を選んで、編集して、投稿!!
みたいにしたいよね~~
ってことで、GeminiにJSONで返してもらえばエエヤン!
これが裏テーマの解!
最終的に行き着いたGeminiへの問いかけ方の形がこれです。
$discription = "商品名、商品の説明、販売用URLなど、事細かに書く";
['text'=>GOOGLE検索で上位になりやすい魅力的な紹介文(80文字程度)を3つ、
PHPで処理するのでJSON形式{introductions:[{rei:紹介文},{rei:紹介文},{rei:紹介文}]}
で提案してください。'.$discription
]と、いう感じに「JSONで返せ」と指示。
JSONサンプルも一緒に提示することで、キー名称も固定できます。
そうすると、こんな感じの文字列で帰ってくる
echo $result['candidates'][0]['content']['parts'][0]['text'];
の結果
```json
{
"introductions": [
{
"rei": "想像を超えるりんごの贅沢!ゴロゴロりんごがたっぷり入った、しっとりパウンドケーキ。上品な甘さと爽やかな酸味が絶妙。ティータイムに最高のひとときを。"
},
{
"rei": "無農薬りんごを贅沢に使用した、しっとりふわふわのパウンドケーキ。甘酸っぱいりんごの風味と、米粉の優しい味わいが口いっぱいに広がります。"
},
{
"rei": "ティータイムを贅沢に彩る、りんごのパウンドケーキ。ゴロゴロ入ったりんごの食感と、しっとりとした生地のハーモニーが絶妙。特別な贈り物にも最適です。"
}
]
}
```初めにある「“`json」と終りの「 “`」はマークダウン記法というやつで、
このマークで囲まれてる中身はJSONですよ!
というのを表しているらしいです。(常識?初めて知りました)
phpのjson_decodeで処理するには不要なので表示してほしくないんですが、どうやっても出てきてしまうので、あきらめて後はReplaceで処理します。
//リザルトを回答だけに入れ替え
$result = $result['candidates'][0]['content']['parts'][0]['text'];
//マークダウンと改行CDを削除
$result = str_replace('```json','',$result);
$result = str_replace('```','',$result);
$result = str_replace('\n','',$result);
$result = str_replace('\r','',$result);
$result = str_replace('\r\n','',$result);
$result = substr($result,1);
//JSONに変換!
$result = json_decode($result, true);
これでメデタク、Geminiの回答をプログラムで処理しやすくなりました!
と、いうことで
PHPでGeminiにアクセスし、JSONで回答を受け取る物語はここまで!

コメントを残す