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:
Projeto Implementation
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);
Este endpoint usa Langchain, reduzindo o código necessário para a interação JLAMA.
@PostMapping("/langchain")
public ResponseEntity
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:
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!
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