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配置

相关推荐
zhuodedao4 小时前
Spring AI + MCP 文件工具未调用问题复盘:为什么初始化成功却没有写入文件?
java·debug·agent·springai·mcp
莫逸风17 天前
【AgentScope 2.0】10-总结回顾详解
java·ai·agent·springai·agentscope
番茄炒鸡蛋加糖19 天前
主流 AI 框架 + RAG 落地实战
人工智能·rag·springai
Joy T21 天前
Agent 开源项目全景解析(下):LlamaIndex、Dify、FastGPT 与真实工程选型
langchain·开源·框架·agent·springai·langgraph·mcp
MinggeQingchun24 天前
AI - Java之Spring AI Alibaba
ai·springai·springaialibaba
莫逸风1 个月前
【AgentScope 2.0】05-文件系统(Filesystem)详解
java·ai·agent·springai·agentscope
周航宇JoeZhou1 个月前
JP3-2-3-MyItem智能业务
java·多智能体·rag·智能体·springai·mcp·skills
佛祖让我来巡山1 个月前
SpringAI保姆级实战教程
spring ai·springai·springai教程·springai入门
周航宇JoeZhou1 个月前
JP3-2-1-MyItem项目简介
java·ai·springboot·环境搭建·项目·管理·springai