You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确生成Ollama嵌入?API文档与参数不一致疑问解析

Ollama嵌入相关问题解答

1. ollama.embeddings()的文档位置

ollama-js的embeddings方法文档可在其GitHub仓库的README、API参考章节中找到,同时Ollama官方REST API文档也对应该方法的实现逻辑——因为js库是围绕Ollama REST API设计的。你看到的博客示例写法属于旧版本遗留内容,未同步更新到最新的js库文档中。

2. 生成Ollama嵌入的标准方式(含多输入处理)

当前生成嵌入的标准方式是使用input字段传递文本,支持单文本和多文本数组输入:

单文本输入示例

import ollama from 'ollama';

async function getSingleEmbedding() {
  const result = await ollama.embeddings({
    model: 'mxbai-embed-large',
    input: 'Llamas are members of the camelid family'
  });
  console.log(result.embedding);
}
getSingleEmbedding();

多文本输入示例

处理多个输入文本时,直接将input设为字符串数组即可,接口会返回对应数量的嵌入结果:

import ollama from 'ollama';

async function getMultipleEmbeddings() {
  const result = await ollama.embeddings({
    model: 'mxbai-embed-large',
    input: [
      'Llamas are members of the camelid family',
      'Camelids are native to South America and Asia',
      'Ollama runs large language models locally'
    ]
  });
  // result.embeddings 对应每个输入的嵌入数组
  console.log(result.embeddings);
}
getMultipleEmbeddings();

3. 字段不一致的原因

这种prompt和input的差异是版本迭代导致的:

  • Ollama早期嵌入API使用prompt字段传递文本;
  • 后续REST API更新时,为了和其他接口的参数命名逻辑保持一致,将嵌入接口的字段改为input;
  • 博客中的示例是旧版本写法,未及时更新,而ollama-js库紧跟最新REST API规范,所以使用input字段。目前部分旧版本Ollama服务器可能仍兼容prompt字段,但标准写法建议使用input。

内容的提问来源于stack exchange,提问作者punkish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:42:07