利用 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 整合可以自動提取聊天完成和嵌入模型所無法使用的模型。這在切換模型或部署到新環境時非常有用。

設定 Spring AI 與 Ollama

在您的系統上安裝 Ollama:https://ollama.dev.org.tw/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。否則,如果本地沒有可用的 mxbai-embed-large 嵌入模型,Spring AI 將會提取它。

用法範例

將設定的 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 社群中所有即將舉行的活動。

查看全部