katsu-coach1215

Laravel

【Laravel】構造化出力(Structured Output)でJSON形式の応答を得る

こんにちは、かつコーチです。AIチャットは文章で返してくれれば十分ですが、業務システムに組み込むとなると話は別です。「感情分析の結果をDBに保存したい」「フォームの項目を自動入力したい」となると、決まった形式のデータが必要になります。この記...
Laravel

【Laravel】会話履歴を管理するチャットUIを実装する

こんにちは、かつコーチです。前回はストリーミングでAIの応答を表示する方法を紹介しました。ただ、それだけでは「一問一答」しかできず、文脈を踏まえた会話にはなりません。この記事では、会話履歴をDBに保存し、マルチターン(複数往復)の会話をLL...
Laravel

【Laravel】ストリーミングレスポンスを実装する(SSEでリアルタイム表示)

こんにちは、かつコーチです。ChatGPTを使っていると、文字が一気に表示されるのではなく、じわじわと出てくるのに気づいた方も多いと思います。あれを自分のLaravelアプリで再現したいという相談を、最近よく受けます。この記事では、ストリー...
Laravel

【Laravel】Prism PHPでテキスト生成を実装する基本

こんにちは、かつコーチです。前回はLaravel AI SDKでテキスト生成を実装しました。今回は、その内部でも使われているPrism PHPを直接使って、同じ処理を書いてみます。「結局どっちが自分に合っているのか」を実感するために、コード...
Laravel

【Laravel】Laravel AI SDKでテキスト生成を実装する基本

こんにちは、かつコーチです。前回はAPIキーの準備が終わりました。いよいよここから、Laravel AI SDKを使って実際にテキスト生成を実装していきます。この記事では、Ai::make()->prompt()の基本的な使い方から、プロバ...
Laravel

【Laravel】APIキーの設定と環境構築(OpenAI・Anthropic対応)

こんにちは、かつコーチです。LaravelでLLMを使い始める前に、必ず必要になるのがAPIキーの発行と環境設定です。ここを雑にやると、あとで「動かない」「キーが漏れた」といったトラブルにつながります。この記事では、OpenAIとAnthr...
Laravel

【Laravel】比較 : Laravel AI SDK・Prism PHP・LLPhant、どれを選ぶべきか

こんにちは、かつコーチです。Laravel×LLMを調べ始めると、「Laravel AI SDK」「Prism PHP」「LLPhant」「Neuron AI」など、似たような名前のライブラリが次々と出てきて混乱しませんか。私も最初に調べた...
Laravel

【Laravel】なぜLaravelアプリにLLMを導入するのか?活用パターンの全体像

こんにちは、かつコーチです。「LaravelにAIを組み込みたいけど、何から手をつければいいか分からない」。そんな相談を最近よく受けます。この記事では、LaravelアプリにLLM(大規模言語モデル。文章を理解し、文章で応答するAI)を導入...
Java

【Java】比較検証 : JavaとPython、プログラミング初心者に向いているのはどちらか

こんにちは、かつコーチです。これでJava基礎編は80本目、最終回です。「プログラミングを初めて学ぶなら、JavaとPythonどちらがいいですか」これは、学習相談を受けるたびに聞かれる質問トップ3に入る内容です。どちらも求人数が多く「学ぶ...
Java

【Java】比較検証 : JavaとKotlin、現場で使うならどちらを選ぶべきか

こんにちは、かつコーチです。「JVM(Java仮想マシン。Javaのコードを様々な環境で動かすための実行基盤)で動く言語なら、KotlinとJavaはどう違うのか」Java学習が一段落した中級者の方から、よく聞かれる質問です。Kotlinは...
Java

【Java】JavaでシンプルなCLIツールを作る:設計から実装まで

こんにちは、かつコーチです。今回はここまで学んだSOLID原則・デザインパターン・不変オブジェクトの知識を活かして、実際にCLIツール(コマンドラインで動作するツール)を作ります。コマンドライン引数の受け取り方、Stream API、例外処...
Java

【Java】Javaの不変オブジェクト設計:recordとfinalで安全なクラスを作る

こんにちは、かつコーチです。今回は不変オブジェクト(イミュータブルオブジェクト)の設計を扱います。final・record・equals/hashCodeの実装は理解している前提で進めます。不変オブジェクトとは何か、なぜ必要か不変オブジェク...
Java

【Java】Javaの代表的デザインパターン:Singleton・Factory・Strategyを実装で理解する

こんにちは、かつコーチです。今回は実務でよく使われる3つのデザインパターン(Singleton・Factory・Strategy)をJavaコードで扱います。SOLID原則の続編にあたる内容なので、interfaceと依存性逆転の原則を前提...
Java

【Java】Java SOLID原則入門:5つの設計原則をコード例で理解する

こんにちは、かつコーチです。今回はオブジェクト指向設計の基本原則であるSOLID原則を扱います。「名前は聞いたことがあるが、実際のコードにどう反映すればいいか分からない」という方向けの内容です。前提として、クラス・interface・継承・...
Java

【Java】ログ出力の基本(java.util.logging・SLF4J)を中級者向けに解説

こんにちは、かつコーチです。「本番環境で不具合が起きたのに、System.out.println()をどこにも仕込んでいなくて原因が追えない」という経験はありませんか。今回は、Javaの標準ログ機能java.util.loggingと、実務...
Java

【Java】IDEのブレークポイントを使ったJavaデバッグの基本

こんにちは、かつコーチです。バグの原因を探すときに、System.out.println()を大量に埋め込んでは消す、を繰り返していませんか。今回は、IntelliJ IDEAを例に、デバッガ(プログラムを一時停止させながら内部状態を確認で...
Java

【Java】StackOverflowErrorとOutOfMemoryErrorの原因と対処法

こんにちは、かつコーチです。「例外(Exception)は分かるけど、Errorが出るとどう対処していいか分からない」という声をよく聞きます。今回は代表的な2つのError、StackOverflowErrorとOutOfMemoryErr...
Java

【Java】ClassCastExceptionの原因と対処法を中級者向けに解説

こんにちは、かつコーチです。「コンパイルは通ったのに、実行するといきなりClassCastExceptionで落ちた」という経験はありませんか。今回は、キャスト(型変換)にまつわる実行時エラーの原因と、安全に防ぐ方法を整理します。Class...
NativePHP

【NativePHP】NativePHPとは?LaravelスキルだけでデスクトップアプリもモバイルアプリもPHPだけで書ける仕組み

こんにちは、かつコーチです。先日、Laravel Japan ConferenceでNativePHPの開発に携わる方とお話しする機会がありました。「PHPエンジニアがLaravelの知識のまま、デスクトップアプリやモバイルアプリを作れる」...
Laravel

【Laravel】LaravelのRoute設計で迷わないための整理術 〜Resource・Controller Group・命名規則の考え方〜

こんにちは、かつコーチです。Laravelも長く使っていて相棒のような存在担ってきました。Laravelを使っていると、Routeの書き方で迷うことがあります。Laravelは自由度が高く、同じことを実現する方法がいくつもあります。そのため...