利用 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.com/download

提示:Spring AI 還支援透過 Testcontainers 執行 Ollama 或透過 Kubernetes Service Bindings 與外部 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

注意:自動拉取模型 (Auto-pulling) 在 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 模型支援的整合,為開發人員開啟了無限的可能性。

我們鼓勵您探索 Hugging Face 上海量的模型集合,並在您的 Spring AI 專案中嘗試不同的模型。無論您是構建高階自然語言理解系統、創意寫作工具還是複雜的分析應用程式,Spring AI 和 Ollama 都提供了易於利用這些強大模型的靈活性。

請記住,關注 Spring AI 和 Ollama 的最新發展,因為該領域正在迅速發展。祝您編碼愉快!

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有