「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フロントエンドが作成されます。
- 「ChatGPTがGPT-4V(Vision)とともに視覚を獲得することで、マルチモーダルAIが進化します」
- セールスフォース・アインシュタイン:あなたは顧客との関係を築きます、AIがそれらを自動的に維持する手助けをします
- 「改善された推論のためのアナロジー提示による言語モデルの拡張」
生成されたプロジェクトを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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 私たちは本当に人工知能AIウォーターマーキングを信頼できるのでしょうか? このAI論文は、現在のディープフェイクの防御方法の脆弱性を暴きます
- 大型言語モデルへの優しい導入
- Google DeepMindは、直接報酬微調整(DRaFT)を導入しました:微分可能な報酬関数を最大化するための効果的な人工知能手法における拡散モデルの微調整
- テキスト生成の評価におけるベクトル化されたBERTScoreのビジュアルガイド
- 3Dインスタンスセグメンテーションにおける境界の打破:改善された疑似ラベリングと現実的なシナリオを備えたオープンワールドアプローチ
- このAI論文は、概念関連伝播(CRP)を用いて、「どこ」や「何」を解き明かすための深層学習モデルの理解に新たなアプローチを提案しています
- 「Amazon SageMaker Feature Storeを使用して、あなたの生成型AIアプリケーションをパーソナライズしましょう」