| 此版本仍在开发中,尚未被视为稳定版本。最新的快照版本请使用 Spring AI 1.0.0-SNAPSHOT! | 
HuggingFace聊天
Hugging Face Text Generation Inference (TGI) 是一种专门的部署解决方案,用于在云中为大型语言模型 (LLM) 提供服务,使其可通过 API 访问。TGI 通过连续批处理、令牌流式处理和高效内存管理等功能为文本生成任务提供优化的性能。
| Text Generation Inference 要求模型与其特定于架构的优化兼容。虽然支持许多流行的 LLM,但并非 Hugging Face Hub 上的所有模型都可以使用 TGI 进行部署。如果您需要部署其他类型的模型,请考虑改用标准的 Hugging Face Inference 终端节点。 | 
| 有关支持的模型和架构的完整和最新列表,请参阅文本生成推理支持的模型文档。 | 
先决条件
您需要在 Hugging Face 上创建一个推理终端节点,并创建一个 API 令牌来访问该终端节点。
更多详情可在此处找到。
Spring AI 项目定义了一个名为spring.ai.huggingface.chat.api-key应设置为从 Hugging Face 获取的 API 令牌的值。
还有一个名为spring.ai.huggingface.chat.url,您应该将其设置为在 Hugging Face 中预置模型时获取的推理终端节点 URL。
您可以在此处的推理终端节点的 UI 上找到它。
导出环境变量是设置这些配置属性的一种方法:
export SPRING_AI_HUGGINGFACE_CHAT_API_KEY=<INSERT KEY HERE>
export SPRING_AI_HUGGINGFACE_CHAT_URL=<INSERT INFERENCE ENDPOINT URL HERE>添加存储库和 BOM
Spring AI 工件发布在 Maven Central 和 Spring Snapshot 存储库中。 请参阅 Repositories 部分,将这些存储库添加到您的构建系统中。
为了帮助进行依赖项管理,Spring AI 提供了一个 BOM(物料清单),以确保在整个项目中使用一致的 Spring AI 版本。请参阅依赖项管理部分,将 Spring AI BOM 添加到您的构建系统中。
自动配置
Spring AI 为 Hugging Face Chat 客户端提供了 Spring Boot 自动配置。
要启用它,请将以下依赖项添加到项目的 Maven 中pom.xml文件:
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface-spring-boot-starter</artifactId>
</dependency>或发送到您的 Gradlebuild.gradlebuild 文件。
dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface-spring-boot-starter'
}| 请参阅 Dependency Management 部分,将 Spring AI BOM 添加到您的构建文件中。 | 
Samples控制器(自动配置)
创建一个新的 Spring Boot 项目并添加spring-ai-huggingface-spring-boot-starter添加到您的 POM(或 Gradle)依赖项中。
添加application.properties文件中的src/main/resources目录中,以启用和配置 Hugging Face 聊天模型:
spring.ai.huggingface.chat.api-key=YOUR_API_KEY
spring.ai.huggingface.chat.url=YOUR_INFERENCE_ENDPOINT_URL| 将 api-key和url替换为您的 Hugging Face 值。 | 
这将创建一个HuggingfaceChatModel实现,您可以将其注入到您的类中。
下面是一个简单的示例@Controller使用 Chat 模型生成文本的类。
@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 实现了ChatModel接口,并使用 [low-level-api] 连接到 Hugging Face 推理终端节点。
添加spring-ai-huggingface依赖项添加到项目的 Mavenpom.xml文件:
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-huggingface</artifactId>
</dependency>或发送到您的 Gradlebuild.gradlebuild 文件。
dependencies {
    implementation 'org.springframework.ai:spring-ai-huggingface'
}| 请参阅 Dependency Management 部分,将 Spring AI BOM 添加到您的构建文件中。 | 
接下来,创建一个HuggingfaceChatModel并将其用于文本生成:
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());