ホームページ > Java > &#&チュートリアル > Spring BootとLangchainでJlama Libraryを探索します

Spring BootとLangchainでJlama Libraryを探索します

Linda Hamilton
リリース: 2025-01-28 04:16:13
オリジナル
400 人が閲覧しました

Explorando a Biblioteca JLama com Spring Boot e LangChain

大規模な言語モデル(LLM)は、ソフトウェア開発を含むさまざまな分野を変換しています。 テキスト(およびその他のデータ型)を理解して生成する能力により、テキストプロンプトからのコード提案、修正、さらには生成さえ可能になります。この記事では、LLMSをJavaエコシステムに統合するためのJavaベースのソリューションであるJlamaライブラリについて説明します。 JLAMAは、コマンドラインインターフェイス(CLI)として、またはプロジェクトの依存関係として使用可能な柔軟性を提供します(例:pom.xml経由)。その機能は、 spring bootアプリケーションと統合することにより、その機能を実証します。

前提条件とハイライト

Jlamaは、Java Vector APIの使用により、

Java 20以降を必要とします。 既存のlangchainユーザーは、Jlamaと統合でき、LangchainのツールをレバレッジしてLLM相互作用を簡素化します。 この例プロジェクトには、プロンプトを介してLLMSと対話する2つのエンドポイントがあります。

a jlamaのみのエンドポイント。

    ラングチェーンとJlamaの組み合わせエンドポイント。
  • プロジェクトの実装

jlama endpoint

このエンドポイントは、JLAMAを直接利用して、ユーザープロンプトに基づいて応答を生成します。

目的のモデルが定義されています。ローカルで利用できない場合は、指定されたディレクトリに自動的にダウンロードされます。 プロンプトコンテキストが作成され、Jlamaが応答を生成します。

langchainとjlamaのエンドポイント
@PostMapping("/jlama") // Endpoint for JLama chat functionality
public ResponseEntity<ChatPromptResponse> chatJlama(@RequestBody ChatPromptRequest request) {
    PromptContext context;
    if (abstractModel.promptSupport().isPresent()) {
        context = abstractModel.promptSupport()
                .get()
                .builder()
                .addSystemMessage("You are a helpful chatbot providing concise answers.")
                .addUserMessage(request.prompt())
                .build();
    } else {
        context = PromptContext.of(request.prompt());
    }

    System.out.println("Prompt: " + context.getPrompt() + "\n");
    Generator.Response response = abstractModel
            .generate(UUID.randomUUID(), context, 0.0f, 256, (s, f) -> {});
    System.out.println(response.responseText);

    return ResponseEntity.ok(new ChatPromptResponse(response.responseText));
}
ログイン後にコピー

このエンドポイントはLangchainを使用して、Jlamaインタラクションに必要なコードを削減します。

// Defining the model and directory for downloading (if needed) from Hugging Face
String model = "tjake/Llama-3.2-1B-Instruct-JQ4";
String workingDirectory = "./models";

// Downloading (if necessary) or retrieving the model locally
File localModelPath = new Downloader(workingDirectory, model).huggingFaceModel();

// Loading the model
ModelSupport.loadModel(localModelPath, DType.F32, DType.I8);
ログイン後にコピー
Langchainは、ビルダー内でモデルとパラメーターを直接定義することにより、実装を簡素化します。

リンクと参考文献

@PostMapping("/langchain")
public ResponseEntity<Object> chatLangChain(@RequestBody ChatPromptRequest request) {
    var model = JlamaChatModel.builder()
            .modelName("meta-llama/Llama-3.2-1B")
            .temperature(0.7f)
            .build();

    var promptResponse = model.generate(
                    SystemMessage.from("You are a helpful chatbot providing the shortest possible response."),
                    UserMessage.from(request.prompt()))
            .content()
            .text();

    System.out.println("\n" + promptResponse + "\n");

    return ResponseEntity.ok(promptResponse);
}
ログイン後にコピー
このプロジェクトは、スジャヴァでのイシドロ教授のプレゼンテーションに触発されました。 [プレゼンテーションへのリンク(利用可能な場合は実際のリンクに置き換えます)]

有用なドキュメント:

jlama on github [Jlamagithubへのリンク(実際のリンクに置き換え)]

langchain [Langchainドキュメントへのリンク(実際のリンクに置き換え)]

    結論
  • JlamaとLangchainは、LLMをJavaアプリケーションに統合する強力な方法を提供します。この記事では、Spring Bootでこれらのツールを構成して使用して、効率的なテキストプロンプト処理エンドポイントを作成する方法を示しました。
JavaプロジェクトでLLMSを使用したことがありますか?コメントであなたの経験と洞察を共有してください!

以上がSpring BootとLangchainでJlama Libraryを探索しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート