如何正确生成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
相关产品推荐
相关产品推荐

