文本向量化 #
本文档介绍如何在 Easysearch 中集成和使用预先部署的 Ollama 服务来生成文本嵌入向量。
先决条件 #
需要预先部署好 Ollama 服务,现阶段集成的服务版本是 0.5.4。
可以用以下命令测试服务是否正常:
curl http://localhost:11434/api/embed -d '{
"model": "nomic-embed-text:latest",
"input": "Why is the sky blue?"
}'
配置 Ollama 服务 #
可以通过 ollama_url 配置项指定 Ollama 服务的地址。您可以通过以下 API 查看当前配置:
GET _cluster/settings?flat_settings=true&include_defaults=true&filter_path=*.ollama_url
如果没有修改,会输出默认值:
{
"defaults": {
"ollama_url": "http://localhost:11434"
}
}
REST API #
POST /_ai/embed
{
"model": "模型名称",
"input": "文本内容"
}
请求示例 #
POST /_ai/embed
{
"model": "nomic-embed-text:latest",
"input": "Llamas are members of the camelid family"
}
批量生成 Embeddings #
可以一次为多个文本生成嵌入向量。
请求格式:
POST /_ai/embed
{
"model": "模型名称",
"input": ["文本1", "文本2", ...]
}
示例响应 #
{
"embeddings": [
[
0.00971285,
0.04449268,
-0.14063065,
0.0013162489,
......
],
[
0.010429025,
0.014321253,
-0.12902334,
-0.03530379,
0.046050403,
0.04550423,
......
]
]
}
对于批量处理,建议一次发送多个文本而不是多次调用。
如果收到连接错误,请检查 ollama_url 配置是否正确。