此版本仍在开发中,尚未被视为稳定版本。最新的快照版本请使用 Spring AI 1.0.0-SNAPSHOT!spring-doc.cn

拥抱脸聊天

Hugging Face Text Generation Inference (TGI) 是一种专门的部署解决方案,用于在云中为大型语言模型 (LLM) 提供服务,使其可通过 API 访问。TGI 通过连续批处理、令牌流式处理和高效内存管理等功能为文本生成任务提供优化的性能。spring-doc.cn

Text Generation Inference 要求模型与其特定于架构的优化兼容。虽然支持许多流行的 LLM,但并非 Hugging Face Hub 上的所有模型都可以使用 TGI 进行部署。如果您需要部署其他类型的模型,请考虑改用标准的 Hugging Face Inference 终端节点。
有关支持的模型和架构的完整和最新列表,请参阅文本生成推理支持的模型文档

先决条件

您需要在 Hugging Face 上创建一个推理终端节点,并创建一个 API 令牌来访问该终端节点。 更多详情可在此处找到。 Spring AI 项目定义了一个名为 configuration property 的配置属性,您应该将其设置为从 Hugging Face 获取的 API 令牌的值。 还有一个名为 的配置属性,您应该将其设置为在 Hugging Face 中预置模型时获取的推理终端节点 URL。 您可以在此处的推理终端节点的 UI 上找到它。 导出环境变量是设置这些配置属性的一种方法:spring.ai.huggingface.chat.api-keyspring.ai.huggingface.chat.urlspring-doc.cn

export SPRING_AI_HUGGINGFACE_CHAT_API_KEY=<INSERT KEY HERE>
export SPRING_AI_HUGGINGFACE_CHAT_URL=<INSERT INFERENCE ENDPOINT URL HERE>

添加存储库和 BOM

Spring AI 工件发布在 Spring Milestone 和 Snapshot 存储库中。 请参阅 Repositories 部分,将这些存储库添加到您的构建系统中。spring-doc.cn

为了帮助进行依赖项管理,Spring AI 提供了一个 BOM(物料清单),以确保在整个项目中使用一致的 Spring AI 版本。请参阅依赖项管理部分,将 Spring AI BOM 添加到您的构建系统中。spring-doc.cn

自动配置

Spring AI 为 Hugging Face Chat 客户端提供了 Spring Boot 自动配置。 要启用它,请将以下依赖项添加到项目的 Maven 文件中:pom.xmlspring-doc.cn

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface-spring-boot-starter</artifactId>
</dependency>

或您的 Gradle 构建文件。build.gradlespring-doc.cn

dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface-spring-boot-starter'
}
请参阅 Dependency Management 部分,将 Spring AI BOM 添加到您的构建文件中。

聊天属性

前缀是属性前缀,用于为 Hugging Face 配置聊天模型实施。spring.ai.huggingfacespring-doc.cn

财产spring-doc.cn

描述spring-doc.cn

违约spring-doc.cn

spring.ai.huggingface.chat.api-keyspring-doc.cn

用于向推理终端节点进行身份验证的 API 密钥。spring-doc.cn

-spring-doc.cn

spring.ai.huggingface.chat.urlspring-doc.cn

要连接到的推理终端节点的 URLspring-doc.cn

-spring-doc.cn

spring.ai.huggingface.chat.enabledspring-doc.cn

启用 Hugging Face 聊天模型。spring-doc.cn

spring-doc.cn

Samples控制器(自动配置)

创建一个新的 Spring Boot 项目,并将 添加到您的 pom(或 gradle)依赖项中。spring-ai-huggingface-spring-boot-starterspring-doc.cn

在目录下添加一个文件,以启用和配置 Hugging Face 聊天模型:application.propertiessrc/main/resourcesspring-doc.cn

spring.ai.huggingface.chat.api-key=YOUR_API_KEY
spring.ai.huggingface.chat.url=YOUR_INFERENCE_ENDPOINT_URL
将 和 替换为您的 Hugging Face 值。api-keyurl

这将创建一个可以注入到类中的实现。 下面是一个使用 chat 模型进行文本生成的简单类的示例。HuggingfaceChatModel@Controllerspring-doc.cn

@RestController
public class ChatController {

    private final HuggingfaceChatModel chatModel;

    @Autowired
    public ChatController(HuggingfaceChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/ai/generate")
    public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
        return Map.of("generation", this.chatModel.call(message));
    }
}

手动配置

HuggingfaceChatModel 实现该接口,并使用 [low-level-api] 连接到 Hugging Face 推理终端节点。ChatModelspring-doc.cn

将依赖项添加到项目的 Maven 文件中:spring-ai-huggingfacepom.xmlspring-doc.cn

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface</artifactId>
</dependency>

或您的 Gradle 构建文件。build.gradlespring-doc.cn

dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface'
}
请参阅 Dependency Management 部分,将 Spring AI BOM 添加到您的构建文件中。

接下来,创建一个并将其用于文本生成:HuggingfaceChatModelspring-doc.cn

HuggingfaceChatModel chatModel = new HuggingfaceChatModel(apiKey, url);

ChatResponse response = this.chatModel.call(
    new Prompt("Generate the names of 5 famous pirates."));

System.out.println(response.getGeneration().getResult().getOutput().getContent());