首頁 >Java >java教程 >使用Spring Boot和Langchain探索JLAMA圖書館

使用Spring Boot和Langchain探索JLAMA圖書館

Linda Hamilton
Linda Hamilton原創
2025-01-28 04:16:13431瀏覽

Explorando a Biblioteca JLama com Spring Boot e LangChain

大型語言模型(LLMS)正在改變包括軟件開發在內的各個領域。 他們理解和生成文本(和其他數據類型)的能力可以從文本提示中實現代碼建議,更正甚至生成。本文探討了基於Java的解決方案jlama 庫,用於將LLM集成到Java生態系統中。 Jlama提供靈活性,可作為命令行接口(CLI)或項目的依賴性(例如,通過pom.xml)。我們將通過將其集成到spring boot應用程序來演示其功能。

>先決條件和突出顯示 由於使用Java Vector API,Jlama需要Jlama 20或更高的Java 20或更高。 現有的

langchain

用戶可以將其與Jlama集成,利用Langchain的工具進行簡化的LLM交互。 這個示例項目具有兩個通過提示與LLMS交互的兩個端點:>

langchain和jlama結合了端點。

    項目實施
  • jlama端點
此端點直接利用Jlama根據用戶提示生成響應。

定義了所需的模型。如果不是本地可用的,它將自動下載到指定的目錄。 創建了提示上下文,Jlama生成了響應。 >

蘭鍊和jlama端點

這個端點使用蘭鏈,減少了Jlama交互所需的代碼。

Langchain通過直接在構建器中定義模型和參數來簡化實現。
<code class="language-java">@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));
}</code>

鏈接和引用

<code class="language-java">// 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);</code>

這個項目的靈感來自Isidro教授在Soujava的演講。 [鏈接到演示文稿(如果有的話,請替換為實際鏈接)]

>

有用的文檔:

<code class="language-java">@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);
}</code>
GitHub上的Jlama [鏈接到Jlama GitHub(替換為實際鏈接)]

>

> langchain [鏈接到Langchain文檔(替換為實際鏈接)]

>

結論

Jlama和Langchain提供了將LLM集成到Java應用程序中的有力方法。本文演示瞭如何與Spring Boot配置和使用這些工具來創建有效的文本提示處理端點。

    您是否在Java項目中與LLMS合作?在評論中分享您的經驗和見解!

以上是使用Spring Boot和Langchain探索JLAMA圖書館的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Maven Notes(1)下一篇:Maven Notes(1)