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中做相似度检索,找到语义最接近的文档片段
相关推荐
ZealSinger4 天前
SpringAI的MCP改STREAMABLE怎么配
协议·springai·mcp·streamable
鱼宵5 天前
Spring AI RAG 问答助手:回答带引用,AI 不再睁眼说瞎话
java·人工智能·spring·springai
云和数据.ChenGuang7 天前
用 Claude Code 重构遗留系统:从评估到落地的完整指南
java·人工智能·spring boot·后端·重构·springai
鱼宵10 天前
Spring AI 可观测与透明化:traceId 串起全链路,思考过程实时直播给用户
java·人工智能·spring·链路追踪·springai
Joy T10 天前
Spring AI 接入已有 Java 项目的三种架构设计
java·人工智能·springai·ai入门·chatclient·ai service·ai能力接入
鱼宵10 天前
Spring AI 流式输出:Flux + SSE 打字机,回答不再干等三秒
java·人工智能·spring·sse·springai·流式输出
鱼宵11 天前
Spring AI 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
人工智能·redis·spring·elasticsearch·springai
云和数据.ChenGuang11 天前
langchain4j InMemoryEmbeddingStore常用的方法
java·人工智能·windows·java-ee·fastapi·springai
做个文艺程序员11 天前
MinIO第07篇:基于MinIO + Spring AI + pgvector构建RAG知识库(Java全栈实战)
minio·向量数据库·ai大模型·rag·springai·pgvector
鱼宵11 天前
Spring AI 提示词模板:{变量} 参数化 + few-shot,一条提示词反复用
java·人工智能·spring·few-shot·提示词工程·springai