在 Docker 上安装向量模型教程

尝试了很多次,发现现在的大厂的模型体验中向量模型的体验权限,均不支持纯文本的请求,都需要图文形式传输。无奈之下只能在自己电脑上安装一个向量模型,满足简单的ai应用开发。

一、环境准备

在开始之前,确保你已经安装了 Docker。如果还未安装,可以参考 Docker 官方文档进行安装:Docker 安装指南

二、拉取 Docker 镜像

我们将使用 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/huggingface/text-embeddings-inference:cpu-1.6 镜像。在终端中执行以下命令拉取镜像:

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/huggingface/text-embeddings-inference:cpu-1.6

三、克隆模型

我们要使用 BAAI/bge-small-zh-v1.5 模型,通过以下命令克隆模型:

git clone https://www.modelscope.cn/BAAI/bge-small-zh-v1.5.git

四、运行 Docker 容器

拉取完镜像并克隆好模型后,我们可以运行 Docker 容器。假设模型克隆到了当前目录下的 bge-small-zh-v1.5 文件夹,执行以下命令启动容器:

docker run -p 8080:80 -v $(pwd)/bge-small-zh-v1.5:/data swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/huggingface/text-embeddings-inference:cpu-1.6 --model-id /data

解释:

  • -p 8080:80:将容器的 80 端口映射到主机的 8080 端口。
  • -v $(pwd)/bge-small-zh-v1.5:/data:将本地的 bge-small-zh-v1.5 文件夹挂载到容器的 /data 目录。
  • --model-id /data:指定模型的路径为容器内的 /data 目录。

五、LangChain4j 配置文件

1. 添加依赖

如果你使用的是 Maven 项目,在 pom.xml 中添加以下依赖:

<dependencies>
<!-- LangChain4j -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>0.23.0</version>
</dependency>
<!-- HttpClient for making requests -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
</dependencies>

2. Java 代码示例

import dev.langchain4j.embeddings.EmbeddingModel;
import dev.langchain4j.embeddings.InProcessEmbeddingModel;
import dev.langchain4j.model.huggingface.HuggingFaceEmbeddingModel;
import dev.langchain4j.model.huggingface.HuggingFaceEmbeddingModelOptions;

import java.util.List;

public class LangChain4jExample {
public static void main(String[] args) {
// 配置 Hugging Face 嵌入模型
HuggingFaceEmbeddingModelOptions options = HuggingFaceEmbeddingModelOptions.builder()
.baseUrl("http://localhost:8080")
.build();

EmbeddingModel embeddingModel = HuggingFaceEmbeddingModel.withOptions(options);

// 示例文本
String text = "这是一个示例文本。";
List<Double> embedding = embeddingModel.embed(text);
System.out.println("Embedding: " + embedding);
}
}

六、Spring AI 配置文件

1. 添加依赖

如果你使用的是 Spring Boot 项目,在 pom.xml 中添加以下依赖:

<dependencies>
<!-- Spring AI -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-core</artifactId>
<version>0.7.0</version>
</dependency>
<!-- HttpClient for making requests -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
</dependencies>

2. Java 配置类

import org.springframework.ai.client.AiClient;
import org.springframework.ai.client.embedding.EmbeddingClient;
import org.springframework.ai.huggingface.HuggingFaceAiClient;
import org.springframework.ai.huggingface.HuggingFaceEmbeddingClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringAIConfig {
@Bean
public EmbeddingClient embeddingClient() {
return new HuggingFaceEmbeddingClient("http://localhost:8080");
}
}

3. 使用示例

import org.springframework.ai.client.embedding.EmbeddingClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class SpringAIExample {

@Autowired
private EmbeddingClient embeddingClient;

public void generateEmbedding() {
String text = "这是一个示例文本。";
List<Double> embedding = embeddingClient.embed(text);
System.out.println("Embedding: " + embedding);
}
}

以上就是在 Docker 上安装向量模型,并配置 LangChain4j 和 Spring AI 的详细教程。