「Java での AI:Spring Boot と LangChain を使用して ChatGPT のクローンを構築する」

「美とファッションの世界:華やかで活気に満ちた情報をご紹介!」

AIアプリ開発のための多くのライブラリは主にPythonまたはJavaScriptで記述されています。幸いなことに、これらのライブラリのいくつかにはJavaのAPIもあります。このチュートリアルでは、Spring Boot、LangChain、およびHillaを使用してChatGPTクローンを作成する方法を紹介します。

このチュートリアルでは、シンプルな同期チャット補完と、より高度なストリーミング補完について説明します。これにより、ユーザーエクスペリエンスが向上します。

完成したソースコード

この例のソースコードは、私のGitHubリポジトリで見つけることができます。

必要なもの

  • Java 17+
  • Node 18+
  • OPENAI_API_KEYの環境変数にOpenAIのAPIキーが設定されていること

Spring BootとReactプロジェクトの作成、LangChainの追加

まず、Hilla CLIを使用して新しいHillaプロジェクトを作成します。これにより、Spring BootプロジェクトとReactフロントエンドが作成されます。

生成されたプロジェクトをIDEで開きます。次に、pom.xmlファイルにLangChain4jの依存関係を追加します:

LangChainを使用したシンプルなOpenAIチャット補完(メモリ使用)

まず、LangChain4jを簡単な同期チャット補完で探ってみましょう。この場合、OpenAIのチャット補完APIを呼び出し、単一の応答を取得したいです。また、チャット履歴の最大1,000トークンを追跡したいです。

com.example.application.serviceパッケージに、次の内容のChatService.javaクラスを作成します:

  • @BrowserCallableは、このクラスをフロントエンドで利用できるようにします。
  • @AnonymousAllowedは、匿名ユーザーがメソッドを呼び出すことを許可します。
  • @Valueは、OPENAI_API_KEY環境変数からOpenAIのAPIキーを注入します。
  • Assistantは、チャットAPIを呼び出すために使用するインターフェースです。
  • init()は、1,000トークンのメモリとgpt-3.5-turboモデルでアシスタントを初期化します。
  • chat()は、フロントエンドから呼び出されるメソッドです。

IDEでApplication.javaを実行するか、デフォルトのMavenゴールでアプリケーションを起動します:<!–

  • Assistantは、Stringの代わりにTokenStreamを返すようになりました。
  • init()は、chatLanguageModel()の代わりにstreamingChatLanguageModel()を使用します。
  • chatStream()は、Stringの代わりにFlux<String>を返します。
  • 以下の内容でApp.tsxをアップデートしてください:

    テンプレートは以前と同じですが、レスポンスの処理方法が異なります。レスポンスの受信を待つのではなく、レスポンスのチャンクのリスニングを開始します。最初のチャンクが受信されたら、新しいメッセージとして追加します。後続のチャンクが受信されたら、前回のメッセージに追記します。

    アプリケーションを再実行すると、レスポンスが受信されると表示されることが確認できます。

    結論

    LangChainを使用すると、JavaとSpring BootでLLMパワードAIアプリケーションを簡単に構築できます。

    基本的なセットアップが完了すると、LangChain4jのGitHubページにある例に従って操作を連鎖させたり、外部ツールを追加したりすることで、機能を拡張することができます。Hillaの詳細については、Hillaのドキュメントをご覧ください。

    We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

    Share:

    Was this article helpful?

    93 out of 132 found this helpful

    Discover more

    データサイエンス

    Btech卒業後に何をすべきですか?

    Btechの後に何をすべきですか?このよくある質問は、最終学年や最近卒業した学生にとって悩みの種です。多くの人々が従来のキ...

    AIテクノロジー

    「最も価値のあるコードは、書くべきでないコードです」

    伝統的なプログラミング言語のコーディングスキルは、AIが進化するにつれてますます重要ではなくなります私はコーディングな...

    データサイエンス

    「JAXとHaikuを使用してゼロからTransformerエンコーダを実装する🤖」

    2017年に「アテンションはすべて」という画期的な論文で紹介されたトランスフォーマーアーキテクチャは、最近の深層学習の歴...

    機械学習

    ビジュアルキャプション:大規模言語モデルを使用して、動的なビジュアルを備えたビデオ会議を補完する

    Google Augmented Realityのリサーチサイエンティスト、Ruofei DuとシニアスタッフリサーチサイエンティストのAlex Olwalが投...

    人工知能

    ウェブ開発者のためのAI:プロジェクトの紹介とセットアップ

    この投稿では、Qwikを使用してウェブ開発プロジェクトをブートストラップし、OpenAIのAIツールを組み込む準備を整えます

    データサイエンス

    「迅速エンジニアリングのための普遍的な道筋:コンテクストの足場フレームワーク(CSF)」

    「最近の記事では、私はChatGPT4の新しいプロンプトエンジニアリングアプローチを探求しましたそれはプログラムシミュレーシ...