利用Spring AI和Ollama,充分发挥4.5万个免费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集成可以自动提取聊天完成和嵌入模型都不可用的模型。这在切换模型或部署到新环境时非常有用。

设置Spring AI与Ollama

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

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

按照依赖管理指南将Spring AI BOM和Spring AI Ollama启动器添加到项目的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:使用格式hf.co/{username}/{repository}指定要使用的Hugging Face GGUF模型。
  • 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嵌入模型。

使用示例

使用Spring AI配置的Hugging Face模型非常简单,与使用任何其他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社区中所有即将举行的活动。

查看全部