OllamaEmbeddingModel 实现利用了 Ollama Embeddings API 端点。
先决条件
您首先需要访问 Ollama 实例。有几种选择,包括:- 在本地计算机上下载并安装 Ollama。
- 通过 Testcontainers 配置并运行 Ollama。
- 通过 Kubernetes 服务绑定绑定到 Ollama 实例。
自动配置
Spring AI 自动配置、启动器模块的工件名称已发生重大更改。
有关更多信息,请参阅升级说明。
pom.xml 或 Gradle build.gradle 构建文件中:
基本属性
前缀spring.ai.ollama 是用于配置与 Ollama 连接的属性前缀。
以下是初始化 Ollama 集成和自动拉取模型的属性。
Embedding 属性
Embedding 自动配置的启用和禁用现在通过前缀为
spring.ai.model.embedding 的顶级属性进行配置。要启用,请设置 spring.ai.model.embedding=ollama (默认启用)要禁用,请设置 spring.ai.model.embedding=none (或任何与 ollama 不匹配的值)此更改是为了允许配置多个模型。spring.ai.ollama.embedding.options 是配置 Ollama 嵌入模型的属性前缀。
它包括 Ollama 请求(高级)参数,例如 model、keep-alive 和 truncate,以及 Ollama 模型 options 属性。
以下是 Ollama 嵌入模型的高级请求参数:
其余
options 属性基于 Ollama 有效参数和值 和 Ollama 类型。默认值基于:Ollama 类型默认值。
运行时选项
OllamaOptions.java 提供了 Ollama 配置,例如要使用的模型、低级 GPU 和 CPU 调整等。 默认选项也可以使用spring.ai.ollama.embedding.options 属性进行配置。
在启动时,使用 OllamaEmbeddingModel(OllamaApi ollamaApi, OllamaOptions defaultOptions) 配置用于所有嵌入请求的默认选项。
在运行时,您可以通过在 EmbeddingRequest 中使用 OllamaOptions 实例来覆盖默认选项。
例如,要覆盖特定请求的默认模型名称:
自动拉取模型
当 Ollama 实例中没有可用模型时,Spring AI Ollama 可以自动拉取模型。 此功能对于开发和测试以及将应用程序部署到新环境特别有用。 有三种拉取模型的策略:always(在PullModelStrategy.ALWAYS中定义): 始终拉取模型,即使它已经可用。有助于确保您使用的是最新版本的模型。when_missing(在PullModelStrategy.WHEN_MISSING中定义): 仅当模型尚不可用时才拉取模型。这可能会导致使用较旧版本的模型。never(在PullModelStrategy.NEVER中定义): 从不自动拉取模型。
HuggingFace 模型
Ollama 可以开箱即用地访问所有 GGUF Hugging Face 嵌入模型。 您可以按名称拉取这些模型中的任何一个:ollama pull hf.co/<用户名>/<模型存储库> 或配置自动拉取策略:自动拉取模型:
spring.ai.ollama.embedding.options.model: 指定要使用的 Hugging Face GGUF 模型。spring.ai.ollama.init.pull-model-strategy=always: (可选) 启用启动时自动拉取模型。 对于生产环境,您应该预先下载模型以避免延迟:ollama pull hf.co/mixedbread-ai/mxbai-embed-large-v1。
示例控制器
这将创建一个EmbeddingModel 实现,您可以将其注入到您的类中。
这是一个简单的 @Controller 类示例,它使用 EmbeddingModel 实现。
手动配置
如果您不使用 Spring Boot,则可以手动配置OllamaEmbeddingModel。
为此,请将 spring-ai-ollama 依赖项添加到项目的 Maven pom.xml 文件中:
build.gradle 构建文件中。
spring-ai-ollama 依赖项还提供对 OllamaChatModel 的访问。
有关 OllamaChatModel 的更多信息,请参阅 Ollama 聊天客户端部分。OllamaEmbeddingModel 实例,并使用它通过专用的 chroma/all-minilm-l6-v2-f32 嵌入模型计算两个输入文本的嵌入:
OllamaOptions 为所有嵌入请求提供配置信息。
文档有误?请协助编辑
发现文档问题?点击此处直接在 GitHub 上编辑并提交 PR,帮助我们改进文档!