Elasticsearch を実際に体験してみましょう。サンプルノートブックを詳しく調べたり、Elastic の無料クラウドトライアルを開始したり、今すぐローカルマシンで Elastic を試したりできます。
LangChain4j フレームワークは、次の目標を掲げて 2023 年に作成されました。
LangChain4j の目標は、LLM を Java アプリケーションに簡単に統合することです。
LangChain4j は次の標準的な方法を提供します:
- 与えられたコンテンツ(例えばテキスト)から埋め込み(ベクトル)を作成する
- 埋め込みを埋め込みストアに保存する
- 埋め込みストア内の類似ベクトルを検索する
- LLMと議論する
- チャットメモリを使用して、LLMとの議論の文脈を記憶する
このリストは網羅的なものではなく、LangChain4j コミュニティは常に新しい機能を実装しています。
この投稿では、フレームワークの最初の主要部分について説明します。
プロジェクトにLangChain4j OpenAIを追加する
すべての Java プロジェクトと同様に、これは依存関係の問題にすぎません。ここでは Maven を使用しますが、他の依存関係マネージャーでも同じことを実現できます。
ここで構築するプロジェクトの最初のステップとして、OpenAI を使用するので、 langchain4j-open-aiアーティファクトを追加するだけです。
残りのコードでは、 OpenAIにアカウントを登録することで取得できる独自の API キー、またはデモ目的でのみ LangChain4j プロジェクトによって提供される API キーを使用します。
これで ChatLanguageModel のインスタンスを作成できます。
そして最後に、簡単な質問をして答えを得ることができます。
与えられた答えは次のようになります:
このコードを実行する場合は、 Step1AiChatTest.javaクラスを確認してください。
langchain4jでより多くのコンテキストを提供する
langchain4jアーティファクトを追加しましょう:
これは、アシスタントを構築するために、より高度な LLM 統合を構築するのに役立つツールセットを提供します。ここでは、先ほど定義したChatLanguageModelを自動的に呼び出すchatメソッドを提供するAssistantインターフェイスを作成します。
LangChain4j AiServicesクラスにインスタンスを構築するよう依頼するだけです。
次に、 chat(String)メソッドを呼び出します。
これは以前と同じ動作になります。では、なぜコードを変更したのでしょうか?まず第一に、よりエレガントですが、それ以上に、シンプルな注釈を使用して LLM にいくつかの指示を与えることができるようになりました。
これにより、次のようになります:
このコードを実行する場合は、 Step2AssistantTest.javaクラスを確認してください。
別のLLMへの切り替え:langchain4j-ollama
素晴らしいOllamaプロジェクトを利用できます。LLM を自分のマシン上でローカルに実行するのに役立ちます。
langchain4j-ollamaアーティファクトを追加しましょう:
テストを使用してサンプル コードを実行しているので、プロジェクトにTestcontainers を追加しましょう。
Docker コンテナを起動/停止できるようになりました。
先ほど使用したOpenAiChatModelではなく、 modelオブジェクトをOllamaChatModelに変更するだけです。
モデルを含むイメージを取得するのに多少時間がかかる場合がありますが、しばらくすると答えが得られることに注意してください。
メモリがあればさらに良くなる
複数の質問をした場合、デフォルトではシステムは以前の質問と回答を記憶しません。最初の質問の後に「彼はいつ生まれたのですか?」と尋ねると、私たちのアプリケーションは次のように答えます:
それはナンセンスだ。代わりに、チャットメモリを使用する必要があります。
同じ質問を実行すると、意味のある答えが得られます。
まとめ
次の投稿では、Elasticsearch を埋め込みストアとして使用して、プライベート データセットに質問する方法を説明します。これにより、アプリケーション検索を次のレベルに引き上げる方法が得られます。
よくあるご質問
LangChain4jとは何ですか?
LangChain4j (LangChain for Java) は、プレーン Java で RAG アプリケーションを構築するための強力なツールセットです。




