利用 Spring AI 和 Ollama 的强大功能,免费使用 45k 个 Hugging Face 模型

工程 | Christian Tzolov | 2024 年 10 月 22 日 | ...

这篇博文由我们伟大的贡献者 Thomas Vitale 共同撰写。

Ollama 现在支持来自 Hugging Face 的所有 GGUF 模型,允许通过 Spring AI 的 Ollama 集成访问超过 45,000 个社区创建的模型,可以在本地运行。

spring-ai-ollama-huggingface-gguf2

我们将探讨如何使用 Spring AI 的这一新功能。 Spring AI Ollama 集成可以自动提取聊天完成和嵌入模型不可用的模型。这在切换模型或部署到新环境时非常有用。

使用 Ollama 设置 Spring AI

在您的系统上安装 Ollama: https://ollama.ac.cn/download.

提示:Spring AI 还支持 通过 Testcontainers 运行 Ollama 或通过 Kubernetes 服务绑定 与外部 Ollama 服务集成。

按照 依赖管理 指南,将 Spring AI BOM 和 Spring AI Ollama boot starter 添加到项目的 Maven pom.xml 文件或 Gradle build.gradle 文件中。

Maven

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

Gradle

implementation 'org.springframework.ai:spring-ai-ollama-spring-boot-starter'

将以下属性添加到您的 application.properties 文件

spring.ai.ollama.chat.options.model=hf.co/bartowski/gemma-2-2b-it-GGUF
spring.ai.ollama.init.pull-model-strategy=always
  • spring.ai.ollama.chat.options.model:指定要使用的 Hugging Face GGUF 模型,使用格式:hf.co/{username}/{repository}
  • spring.ai.ollama.init.pull-model-strategy=always:启用启动时自动模型拉取。 对于生产环境,您应该预先下载模型以避免延迟:ollama pull hf.co/bartowski/gemma-2-2b-it-GGUF

注意自动拉取 在 Spring AI 1.0.0-SNAPSHOT 和即将发布的 M4 版本中可用。 对于 M3,预先下载模型 (ollama pull hf.co/{username}/{repository})。

如果不需要,您可以禁用嵌入自动配置:spring.ai.ollama.embedding.enabled=false。 否则,如果本地不可用,Spring AI 将拉取 mxbai-embed-large 嵌入模型。

使用示例

将配置的 Hugging Face 模型与 Spring AI 结合使用非常简单,并且与其他任何 Spring AI 模型提供程序的使用方式没有不同。 这是一个简单的例子

@Bean
public CommandLineRunner run(ChatClient.Builder builder) {
  var chatClient = builder.build();
  return args -> {
    var response = chatClient
        .prompt("Tell me a joke")
        .call()
        .content();
    logger.info("Answer: " + response);
  };
}

参考

结论

Ollama 对 Hugging Face GGUF 模型的支持与 Spring AI 的集成为开发人员开启了无限可能。

我们鼓励您探索 Hugging Face 上的大量模型集合,并在您的 Spring AI 项目中尝试不同的模型。 无论您是构建高级自然语言理解系统、创意写作工具还是复杂的分析应用程序,Spring AI 和 Ollama 都提供了灵活性,可以轻松地利用这些强大的模型。

请记住及时了解 Spring AI 和 Ollama 的最新进展,因为该领域正在迅速发展。 祝您编码愉快!

获取 Spring 新闻通讯

与 Spring 新闻通讯保持联系

订阅

抢占先机

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部