向量模型

介绍

这里我们以通用文本向量为例进行说明,它是通义实验室开发的基于LLM的多语言统一文本向量模型,支持多个主流语种,为文本类数据提供高效的向量化转换服务,适用于RAG、文本分类、情感分析等自然语言处理任务。

点击 这里,了解更多介绍。

这里我们使用通用文本向量 text-embedding-v3,维度1024进行介绍,请注意,维度越多,对事务的描述越精准,信息检索的精度就越高。点击 这里,查看langchain4j所支持的向量模型。

模型配置

阿里云百炼

第一步,在项目的pom文件中引入对DashScope embedding的依赖:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!-- 接入阿里云百炼平台 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
</dependency>

<dependencyManagement>
<dependencies>
<!--引入阿里云百炼平台管理清单-->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-bom</artifactId>
<version>${langchain4j.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

第二步,在项目的application.properties配置文件中新增如下配置项:

1
2
3
# 配置阿里通义千问向量模型
langchain4j.community.dashscope.embedding-model.api-key=你的key
langchain4j.community.dashscope.embedding-model.model-name=text-embedding-v3

第三步,修改EmbeddingController中的代码为如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Slf4j
@RestController
@RequestMapping("/embedding")
public class EmbeddingController {

@Autowired
private EmbeddingModel embeddingModel;

/**
* 测试向量模型
*/
@GetMapping("/testEmbeddingModel")
public String testEmbeddingModel(){
String text = "你好";
Response<Embedding> response = embeddingModel.embed(text);
log.info("向量:{}",response.content().vector().length);
log.info("向量维度:{}",response.content().dimension());
log.info("token用量:{}",response.tokenUsage());
log.info("finishReason:{}",response.finishReason());
log.info("向量输出:{}" ,response);
return response.toString();
}
}

第四步,访问如下链接,即可出现对应信息:

1
http://localhost:8080/embedding/testEmbeddingModel

Ollama

第一步,在ollama官网搜索支持embedding的模型,然后下载该模型:

我选择了0.6b,对应的命令为:

1
ollama pull qwen3-embedding:0.6b

第二步,在项目的pom文件中引入对Ollama embedding的依赖:

1
2
3
4
5
6
<!-- 集成ollama -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-ollama</artifactId>
<version>1.0.0-beta3</version>
</dependency>

第三步,在项目的application.properties配置文件中新增如下配置项:

1
2
3
4
5
6
# ollama embeddingModel
langchain4j.ollama.embedding-model.base-url=http://localhost:11434
langchain4j.ollama.embedding-model.model-name=qwen3-embedding:0.6b
langchain4j.ollama.embedding-model.timeout=PT60S
langchain4j.ollama.embedding-model.log-requests=true
langchain4j.ollama.embedding-model.log-responses=true

第四步,修改EmbeddingController中的代码为如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@Slf4j
@RestController
@RequestMapping("/embedding")
public class EmbeddingController {

@Autowired
private OllamaEmbeddingModel ollamaEmbeddingModel;

/**
* 测试向量模型
*/
@GetMapping("/testEmbeddingModel")
public String testEmbeddingModel(){
String text = "你好";
Response<Embedding> response = ollamaEmbeddingModel.embed(text);
log.info("向量:{}",response.content().vector().length);
log.info("向量维度:{}",response.content().dimension());
log.info("token用量:{}",response.tokenUsage());
log.info("finishReason:{}",response.finishReason());
log.info("向量输出:{}" ,response);
return response.toString();
}
}

第五步,访问如下链接:

1
http://localhost:8080/embedding/testEmbeddingModel

打开控制台,输出如下信息:

查看一下页面,显示如下信息: