new AllMiniLmL6V2EmbeddingModel(); 相关方法介绍

java 复制代码
private float[] langchain4jEmbedding(String text) {
        try {
            EmbeddingModel model = new AllMiniLmL6V2EmbeddingModel();
            Response response = model.embed(text);
            return response.content().vector();
        } catch (Exception e) {
            log.error("LangChain4j embedding 失败: {}", e.getMessage());
            return mockEmbedding(text);
        }
    }

整体一句话总结

输入一段文本 text,使用 LangChain4j 内置的 All‑MiniLM‑L6‑v2 本地ONNX模型 ,把文字转换成浮点型向量数组(float\[\]) ;

如果中间出现任何异常,打印错误日志,返回一段模拟的假向量作为降级兜底,不让程序崩溃。

逐行拆解

复制代码
private float[] langchain4jEmbedding(String text) {

私有方法,接收字符串文本,返回浮点向量数组,向量就是文本的数字语义表示(RAG知识库检索用)

复制代码
EmbeddingModel model = new AllMiniLmL6V2EmbeddingModel();
  1. AllMiniLmL6V2EmbeddingModel:LangChain4j自带的本地Embedding模型(all‑MiniLM‑L6‑v2)
  2. ✅不需要调用OpenAI/远程大模型接口,本地运行ONNX,不上传文本到外网>

⚠️注意:第一次new对象时,程序会自动从网络下载onnx模型缓存到本地,断网首次运行会报错。如果你已经手动下载模型文件,可以改成本地加载方式。

复制代码
Response<Embedding> response = model.embed(text);
  • model.embed(text):文本向量化

  • 模型读取文字,分析语义,生成Embedding(嵌入向量)

  • 返回的Response<Embedding>封装了向量+一些元信息

    return response.content().vector();

  • response.content()拿到Embedding对象

  • .vector()取出float[]浮点数组,也就是最终向量>

后续用途:存入Milvus向量库、做相似度比对,实现文档检索(RAG)

复制代码
catch (Exception e) {
    log.error("LangChain4j embedding 失败,降级使用 mock: {}", e.getMessage());
    return mockEmbedding(text);
}

容错降级逻辑

只要向量化抛出异常(常见场景:

首次启动无法下载onnx模型、模型文件损坏、内存不足、文件权限问题等)

  1. 打印error日志记录原因
  2. 调用mockEmbedding(text)返回假的占位向量,避免接口抛出异常中断业务流程

典型适用场景(RAG)

  1. 文档切片后,调用此方法生成向量存入Milvus
  2. 用户提问时,问题文本调用此方法得到向量
  3. 使用向量在Milvus中做相似度检索,找到语义最接近的文档片段
相关推荐
Joy T13 天前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
小坏讲微服务14 天前
Spring AI 高频面试题20道
java·spring·ai·agent·springai
Joy T14 天前
Spring AI 2.0 进阶入门:RAG、Structured Output 与 Agent 信息闭环
java·人工智能·spring·rag·springai·agent入门
递归尽头是星辰17 天前
Java 智能体工程化:从 Spring AI 出发读懂 AgentScope
react·智能体·springai·javaai·agentscope
2601_9620777118 天前
Spring AI企业级RAG落地实战:从基础架构到生产级高可用方案
知识库问答·rag·springai·企业级架构·高可用方案
武哥聊编程19 天前
【AI实战项目】AI Agent数据分析平台,基于SpringAI+Springboot+Vue+Agent的电商数据分析平台
人工智能·spring boot·数据分析·springai
武哥聊编程19 天前
【AI实战项目】基于SpringAI+Springboot+Vue的AI面试刷题训练平台
vue.js·人工智能·spring boot·springai
MinggeQingchun20 天前
AI - Java之SpringAI使用
ai·springai
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ25 天前
model.onnx、tokenizer.json 文件介绍
springai