
シェア:
スタンダップ・コメディーの学位論文を持つ俳優の訓練を受け、ミートアップ・シーンを経てPHP開発に携わるようになった。技術について話したり書いたり、レコード・コレクションから変わったレコードを再生したり買ったりしています。
symfony AI: RCSメッセージを送信するプロンプトの数は?
私のことを「AIに慎重・用心深い」と呼んでください。ソフトウェア開発を「手動の方法」で行ってきた者として、またLaravelとSymfonyの両方でデザインパターンを学んできた者として、私はすでに以下のことを書いた。 について書いた。AIがPHP開発者の日常にどのような影響を及ぼしているかについては、驚くべき速さで進展していることをすでに書いた。そこで、RCSメッセージを送信するLaravelアプリをゼロから "コーディング "しようとしたらどうなるだろうと考えた。Symfonyアプリが私のVonage認証情報を取得し、私にテストRCSメッセージを送信するには、何回プロンプトが必要だろうか?調べてみましょう!
前提条件
PHP 8.4 以上
作曲家
クロードのようなAIエージェント
Vonage APIアカウント
あなたのVonageアカウント サンドボックスRCSメッセージの送信が可能
サインアップしたら、アプリケーションを作成し、自動的にダウンロードされた private.keyをプロジェクトのコードのルートに置く必要があります。
アプリケーションを作成するには アプリケーションの作成ページでアプリケーションの名前を定義します。
Webhooksを使用するAPIを使用する場合は、秘密鍵が必要です。Generate public and private key "をクリックすると、自動的にダウンロードが始まります。この鍵は紛失すると再ダウンロードできません。この鍵は紛失しても再ダウンロードできません。 private_<あなたのアプリID>.key.この鍵はAPIコールの認証に使用できます。 注意:アプリケーションを保存するまで、キーは機能しません。
必要な機能(Voice、Messages、RTCなど)を選択し、必要なWebhook(イベントURL、応答URL、受信メッセージURLなど)を提供します。これらはチュートリアルで説明します。
保存してデプロイするには、"Generate new application "をクリックして設定を確定します。これでアプリケーションはVonage APIで使用する準備が整いました。
インスタレーション
貴重なトークンを無駄にしたくないことの1つはsymfonyをインストールすることです。ドキュメントを丁寧に見るだけで十分です。Composerを使ってスケルトンアプリを作ります:
composer create-project symfony/skeleton:"8.0.*" blog-symfony-ai-rcs次に、Vonage PHP SDKを入手する必要があります。PSR-7と互換性のあるHTTPクライアントがないとPHP SDKをインストールできないので、Symfony HTTPクライアントのインストールも含めています。
composer require symfony/http-client
composer require vonage/client-sdkさあ、時計を見よう。条件はこうだ:
というコマンドは
SendRcsMessageCommandコマンドは-text引数実行され、メッセージが提供されると、アプリケーション ID と
private.keyを受け取り (Symfony で設定され)、 Vonage PHP SDK Client を起動し、あらかじめ設定されたデバイス番号に RCS メッセージを送信します。
コマンドの作成
プロンプト
create me a command called SendRcsMessageCommand that takes text as an argument さあ、出発だ!
Imports all look present and correctそして私たちに残されたものは何か?
A healthy looking Symfony Command私にはよさそうに見え、symfonyの規約に従っています。ステップ1: 問題なく完了しました。
アプリケーションIDとプライベートキー.envファイルを通して引き込まれます。
プロンプト
add VONAGE_APPLICATION_ID and a private.key path to the .env file and configure it in SymfonySymfonyの規約(設定の編集)を使い始めたので、かなり多くのトークンを消費することに気づきましたが、かなり簡単なはずです。
キーとシークレットの例を追加し、それを印刷するようにコマンドに指示したら、うまくいくかどうか見てみよう。まず、パラメーターを自動配線する必要がある:
public function __construct(
#[Autowire('%vonage.application_id%')] private readonly string $applicationId,
#[Autowire('%vonage.private_key_path%')] private readonly string $privateKeyPath,
) {
parent::__construct();
}次に、コンテナ変数を吐き出すコードを execute()メソッドに追加する:
// Check that the API Key and Secret have been configured corrects
$output->writeln('Checking autowired auth variables...');
$output->writeln('Application ID: ' . $this->applicationId);
$output->writeln('private key path: ' . $this->privateKeyPath);コマンドを実行し、.ファイル ファイルにテスト値を入れると、出力が表示される:
symfony console app:send-rcs-message "hello world"
Sending RCS message: hello world
Checking autowired auth variables...
Application ID: test-key
private key path: %kernel.project_dir%/private.key良かった。今のところ2つのプロンプトがある。
この services.ymlファイルでは、これら2つのパラメータが含まれるように編集されているのがわかる:
parameters:
vonage.application_id: '%env(VONAGE_APPLICATION_ID)%'
vonage.private_key_path: '%kernel.project_dir%/private.key' Vonage PHP SDKを設定し、ダミーの番号にRCSメッセージを送信する。
エージェントは何をするのだろう?なぜならエージェントは何をするのでしょうか? Vonage\Clientを追加するのでしょうか、それともsymfonyのサービスコンテナを使おうとするのでしょうか?特に指示しない限り、私は後者を疑っています。
プロンプト
add the vonage php sdk to the command and configure it with the api key and secret from the service configuration, then get it to send an RCS text message to a dummy number with the text parameter as the message理想を言えば、これを最終ステップにしたい。これで3つできた。コマンドの execute()メソッドを次のように変更した:
protected function execute(
InputInterface $input,
OutputInterface $output,
): int {
$vonage = new Client(new Keypair(file_get_contents($this->privateKeyPath), $this->applicationId));
$message = new RcsText(
to: '447738066610',
from: 'VonageRCSDemo-DevRel',
message: $input->getArgument('text'),
);
$response = $vonage->messages()->send($message);
$output->writeln(sprintf('RCS message sent. Message UUID: %s', $response['message_uuid']));
return Command::SUCCESS;
}まあ、コード的には完璧に見える。では、認証情報を .envファイルに入れてコマンドを実行したらどうなるだろうか?最終テストだ:
symfony console app:send-rcs-message "Hello from Symfony and Vonage!"そしてこれがターミナルの出力だ:
RCS message sent. Message UUID: 056c407b-b1db-4b9c-a4d4-322d2095b894チーン!携帯が鳴る。
An alive and well RCS on my deviceこれだ。CursorとClaudeを使ってLaravelアプリを書こうとした前回の試みから大きく変わり、最終的なカウントは次のようになった。 3つこれはちょっと信じられない。確かに、これはRCSメッセージを送信しているだけだが、開発者がプロトタイプを作成するスピードを考えると、Webhooksを消費したり、Eventを発射してプロンプトや位置情報など他のタイプのRCSメッセージを作成するなど、もっと複雑なアクションを行う余地は十分にある。
ここで黄金律を思い出してほしい:AIツールは 増幅そして 加速するこの黄金律を忘れないでください。このようなタスクをこなすのにこれほど少ないプロンプトで済むことに驚きますが、この新しい開発者ツールのセットはコード自体の理解を置き換えることはできないことを覚えておいてください。この理由から、私は symfony を始めるときに symfonyCastsで symfony の勉強を始めることを強くお勧めします。 Ryan Weaver.結局のところ、私たちは人間のためにソフトウェアを作っている人間であり、AIはその事実を置き換えることはできません。
ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。
登録する 開発者ニュースレター
フォローする X(旧ツイッター)最新情報
チュートリアルを見る YouTubeチャンネル
LinkedInの LinkedIn の Vonage デベロッパーページ
最新の開発者向けニュース、ヒント、イベント情報をお届けします。