"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Explore a biblioteca JLAMA com bota de primavera e Langchain

Explore a biblioteca JLAMA com bota de primavera e Langchain

Postado em 2025-04-17
Navegar:737

Explorando a Biblioteca JLama com Spring Boot e LangChain

grandes modelos de idiomas (LLMS) estão transformando vários campos, incluindo o desenvolvimento de software. Sua capacidade de entender e gerar texto (e outros tipos de dados) permite sugestão de código, correção e até geração a partir de instruções textuais. Este artigo explora a biblioteca jlama , uma solução baseada em Java para integrar o LLMS no ecossistema java. O JLAMA oferece flexibilidade, utilizável como uma interface da linha de comando (CLI) ou como uma dependência em seus projetos (por exemplo, via pom.xml ). Demonstraremos sua funcionalidade integrando -a com uma inicialização Spring Application.

pré -requisitos e destaques

jlama requer java 20 ou superior devido ao uso da API do vetor java. Os usuários existentes Langchain podem integrá -lo com o JLAMA, alavancando as ferramentas de Langchain para a interação simplificada de LLM.

Este exemplo do projeto apresenta dois pontos de extremidade interagindo com o LLMS por meio de prompts:

  • um endpoint apenas JLama.
  • Um Langchain e Jlama Combined Endpoint.

Projeto Implementation

jlama endpoint

Este endpoint utiliza diretamente o JLAMA para gerar respostas com base em prompts do usuário.

@PostMapping("/jlama") // Endpoint for JLama chat functionality
public ResponseEntity 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));
}

O modelo desejado é definido. Se não estiver disponível localmente, é baixado automaticamente para o diretório especificado. O contexto imediato é criado e a JLAMA gera a resposta.

// 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 e Jlama endpoint

Este endpoint usa Langchain, reduzindo o código necessário para a interação JLAMA.

@PostMapping("/langchain")
public ResponseEntity 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);
}

Langchain simplifica a implementação definindo o modelo e os parâmetros diretamente dentro do construtor.

links e referências

Este projeto foi inspirado pela apresentação do professor Isidro em Soujava. [Link para a apresentação (substitua pelo link real, se disponível)]

documentação útil:

  • jlama no github [link para jlama github (substitua pelo link real)]
  • Langchain [link para documentação de Langchain (substitua pelo link real)]

Conclusão

JLAMA e LANGCHAIN ​​fornecem uma maneira poderosa de integrar o LLMS nos aplicativos Java. Este artigo demonstrou como configurar e usar essas ferramentas com a inicialização da primavera para criar pontos de extremidade de processamento de prompt de textual eficiente.

você já trabalhou com LLMS em projetos java? Compartilhe suas experiências e insights nos comentários!

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3