model.onnx、tokenizer.json 文件介绍

yaml 复制代码
spring:
  ai:
    openai:
      base-url: https://api.deepseek.com
      api-key: ......
      chat:
        options:
          model: deepseek-chat
          temperature: 0.7
    embedding:
      transformer:
        onnx:
          model-uri: classpath:onnx/all-MiniLM-L6-v2/model.onnx
        tokenizer:
          uri: classpath:onnx/all-MiniLM-L6-v2/tokenizer.json

1、tokenizer.json(分词器配置文件,文字转数字的翻译字典)

神经网络不能直接读懂自然语言,只能接收数字数组。

  • 作用:
    1. 把输入中文/英文句子拆成最小词语单元(token)
    2. 根据内置词表,把每个词语转换成模型能识别的整数ID
    3. 补齐长度、生成attention掩码等预处理信息
  • 如果缺失:
    程序不知道怎么切割文本、怎么把文字转为数字,直接启动报错,无法向量化

这个文件很小(几十KB),需要从huggingface同仓库单独下载,SpringAI不会自动拉取它!

2、model.onnx(ONNX神经网络模型文件,≈核心大脑)

  • 本质:已经训练好的神经网络,以ONNX格式保存
  • 作用:接收数字token编码,输出语义向量embedding(float\[\])
  • 工作流程:
    分词器把文字→数字编码 → 送入onnx模型运算 → 产出文本语义向量

如果缺失:没有神经网络,无法生成向量。

不配置model‑uri时,SpringAI会自动联网下载这个onnx模型缓存,离线环境直接报错。
model.onnx(≈80MB)

二、执行顺序

复制代码
原始文本字符串
        ↓
tokenizer.json【分词+转数字ID】
        ↓
数字数组
        ↓
model.onnx【神经网络计算】
        ↓
float[] 语义向量(Embedding)→存入Milvus做相似度检索
  1. 接收原始文本字符串
  2. 加载 tokenizer.json,依据里面的词表和规则:文本分词 → 转为数字 ID 数组(预处理)
  3. 将数字 ID 数组送入加载好的 model.onnx 神经网络
  4. ONNX 模型进行前向推理计算
  5. 输出 float[] 语义向量(Embedding),用于 Milvus 向量库检索、相似度匹配

三、区别

  1. Spring‑AI transformer starter

    需要两个文件:model.onnx + tokenizer.json,由SpringAI内置ONNX运行时执行向量化。

    Spring‑AI 在未配置本地model‑uri时会自动联网下载model.onnx(需要梯子)但是不会自动下载 tokenizer.json,必须手动获取;

  2. LangChain4j AllMiniLmL6V2EmbeddingModel

    自带内置分词器,不需要tokenizer.json ;仅内置onnx模型,首次运行自动下载模型,不识别这套yml配置

相关推荐
Joy T8 天前
Spring AI 2.0 进阶入门:Workflow、Routing、Task State 与可控 Agent
开发语言·人工智能·workflow·routing·springai·orchestrator·evaluator
小坏讲微服务8 天前
Spring AI 高频面试题20道
java·spring·ai·agent·springai
Joy T9 天前
Spring AI 2.0 进阶入门:RAG、Structured Output 与 Agent 信息闭环
java·人工智能·spring·rag·springai·agent入门
递归尽头是星辰12 天前
Java 智能体工程化:从 Spring AI 出发读懂 AgentScope
react·智能体·springai·javaai·agentscope
2601_9620777113 天前
Spring AI企业级RAG落地实战:从基础架构到生产级高可用方案
知识库问答·rag·springai·企业级架构·高可用方案
武哥聊编程13 天前
【AI实战项目】AI Agent数据分析平台,基于SpringAI+Springboot+Vue+Agent的电商数据分析平台
人工智能·spring boot·数据分析·springai
武哥聊编程14 天前
【AI实战项目】基于SpringAI+Springboot+Vue的AI面试刷题训练平台
vue.js·人工智能·spring boot·springai
MinggeQingchun15 天前
AI - Java之SpringAI使用
ai·springai
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ15 天前
new AllMiniLmL6V2EmbeddingModel(); 相关方法介绍
springai