LangChain4j integration library for Hugging Face inference capabilities including chat, language, and embedding models
Low-level client interface and request/response types for direct Hugging Face API communication.
The client package provides low-level HTTP client functionality. These are used internally by model classes but can be accessed directly for advanced use cases.
Package: dev.langchain4j.model.huggingface.client
Use Case: Advanced customization, testing, debugging
Recommendation: Use model classes (EmbeddingModel, ChatModel) instead of direct client access for most use cases.
package dev.langchain4j.model.huggingface.client;
public interface HuggingFaceClient {
@Deprecated(forRemoval = true, since = "1.7.0-beta13")
TextGenerationResponse chat(TextGenerationRequest request);
@Deprecated(forRemoval = true, since = "1.7.0-beta13")
TextGenerationResponse generate(TextGenerationRequest request);
java.util.List<float[]> embed(EmbeddingRequest request);
}TextGenerationResponse chat(TextGenerationRequest request)Chat-style text generation (deprecated).
TextGenerationResponse generate(TextGenerationRequest request)Standard text generation (deprecated).
java.util.List<float[]> embed(EmbeddingRequest request)Generates embeddings for text inputs.
public class TextGenerationRequest {
public String getInputs();
public Parameters getParameters();
public Options getOptions();
public static Builder builder();
}Builder:
public static final class Builder {
public Builder inputs(String inputs);
public Builder parameters(Parameters parameters);
public Builder options(Options options);
public TextGenerationRequest build();
}public class TextGenerationResponse {
public TextGenerationResponse();
public TextGenerationResponse(String generatedText);
public String getGeneratedText();
public void setGeneratedText(String generatedText);
}public class Parameters {
public Integer getTopK();
public Double getTopP();
public Double getTemperature();
public Double getRepetitionPenalty();
public Integer getMaxNewTokens();
public Double getMaxTime();
public Boolean getReturnFullText();
public Integer getNumReturnSequences();
public Boolean getDoSample();
public static Builder builder();
}Builder:
public static final class Builder {
public Builder topK(Integer topK);
public Builder topP(Double topP);
public Builder temperature(Double temperature);
public Builder repetitionPenalty(Double repetitionPenalty);
public Builder maxNewTokens(Integer maxNewTokens);
public Builder maxTime(Double maxTime);
public Builder returnFullText(Boolean returnFullText);
public Builder numReturnSequences(Integer numReturnSequences);
public Builder doSample(Boolean doSample);
public Parameters build();
}Parameter Guidelines:
public class Options {
public Boolean getWaitForModel();
public Boolean getUseCache();
public static Builder builder();
}Builder:
public static final class Builder {
public Builder waitForModel(Boolean waitForModel);
public Builder useCache(Boolean useCache);
public Options build();
}public class EmbeddingRequest {
public EmbeddingRequest(java.util.List<String> inputs, boolean waitForModel);
public java.util.List<String> getInputs();
public Options getOptions();
}Example:
List<String> texts = List.of("Hello", "World");
EmbeddingRequest request = new EmbeddingRequest(texts, true);TextGenerationRequest request = TextGenerationRequest.builder()
.inputs("Write a poem:")
.parameters(Parameters.builder()
.temperature(0.7)
.maxNewTokens(100)
.build())
.options(Options.builder()
.waitForModel(true)
.build())
.build();
// HuggingFaceClient client = ...;
// TextGenerationResponse response = client.generate(request);
// String text = response.getGeneratedText();List<String> texts = List.of("Text 1", "Text 2");
EmbeddingRequest request = new EmbeddingRequest(texts, true);
// HuggingFaceClient client = ...;
// List<float[]> embeddings = client.embed(request);All types use Jackson annotations:
@JsonIgnoreProperties(ignoreUnknown = true) - Ignore unknown fields@JsonInclude(NON_NULL) - Only include non-null fields@JsonNaming(SnakeCaseStrategy.class) - Use snake_caseClient types are primarily used internally by:
Direct usage needed for:
The library provides DefaultHuggingFaceClient using:
Install with Tessl CLI
npx tessl i tessl/maven-dev-langchain4j--langchain4j-hugging-face@1.11.0