「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

    AI研究

    ストリートビューが救いの手を差し伸べる:ディープラーニングが安全な建物への道を開拓

    Googleストリートビューなどで使用される画像は、フロリダ大学の人工知能助教授Chaofeng Wang氏の手によって新たな目的を持つ...

    機械学習

    大規模言語モデル(LLM)と潜在ディリクレ配分(LDA)アルゴリズムを用いたドキュメントのトピック抽出

    「私は、1000ページ以上の大きなドキュメントを処理することができるPDFファイルとのチャット用のウェブアプリケーションを開...

    機械学習

    バーゼル大学病院が、「TotalSegmentator」を発表:体のCT画像の主要な解剖構造を自動的にセグメント化するための深層学習セグメンテーションモデル

    過去数年間、実施されるCTスキャンの数と利用可能なデータ処理能力は増加してきました。ディープラーニングの進展により、画...

    機械学習

    「React開発者にとってのAI言語モデルの力包括的なガイド」

    このブログでは、AI言語モデルとReactのシナジーについて探求し、このコラボレーションが開発者の能力を向上させる方法を探り...

    AIニュース

    ChatGPTによって発明された10の感情(驚くほど共感できる)

    ChatGPTは、私たち人間が感じる複雑な感情の配列を捉え、それに対して新しい言葉を作り出すことにおいて、巧みな能力を持って...

    データサイエンス

    「木々の中の森を見る:データ保存は鋭い目から始まる」

    「成功したデータ保存戦略の開始は、細心の観察と詳細への確固たる焦点にかかっています」