需完成向量获取、维度对齐、集合创建、数据写入与查询调用:一、配置DeepSeek API获取文本嵌入向量;二、启动Milvus并验证连接;三、创建匹配维度的集合;四、批量插入向量及元数据;五、执行相似性搜索。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您使用DeepSeek API生成文本向量,并希望将这些向量持久化存储至Milvus以支持高效相似性检索,则需完成向量获取、维度对齐、集合创建、数据写入与查询调用等关键环节。以下是实现该流程的具体操作路径:
一、配置DeepSeek API并获取文本嵌入向量
该步骤旨在通过DeepSeek提供的嵌入接口,将原始文本转换为固定维度的稠密向量。需确保API服务可用、认证凭证正确,且返回向量格式符合Milvus字段定义要求。
1、在终端中设置环境变量:export OPENAI_API_KEY='your_deepseek_api_key'
2、调用本地或远程DeepSeek嵌入服务(如Ollama托管的deepseek-r1模型):
3、向http://localhost:11434/api/embeddings发送POST请求,携带{"model":"deepseek-r1:1.5b","input":"待向量化的文本"}参数
4、解析响应体,提取embedding字段值,确认其为长度一致的浮点数列表(例如768维)
二、启动Milvus服务并验证连接可用性
此步骤确保Milvus实例处于运行状态,客户端可通过gRPC或HTTP协议与其通信。若使用Docker部署,需检查容器健康状态及端口映射是否生效。
1、执行docker ps | grep milvus,确认milvus-standalone容器正在运行
2、访问http://localhost:19530/healthz,返回{"status":"healthy"}表示服务就绪
3、在Python环境中安装Milvus SDK:pip install pymilvus==2.4.10
4、使用pymilvus connections.connect("default", host="localhost", port="19530")建立连接
三、创建匹配维度的Milvus集合
集合(Collection)是Milvus中向量数据的逻辑容器,其schema必须与DeepSeek输出向量维度严格一致;否则插入或查询将失败。
1、定义字段:包含主键id(int64)、向量字段vector(float_vector)、可选元数据字段如text(varchar)
2、设定向量维度参数:dim参数必须等于DeepSeek嵌入向量的实际长度(如768)
3、执行Collection.create()方法创建集合,例如命名为deepseek_docs
4、为向量字段构建索引,推荐初始配置:{"index_type": "IVF_FLAT", "metric_type": "COSINE", "params": {"nlist": 128}}
四、批量插入DeepSeek生成的向量及关联元数据
该步骤将文本内容、唯一标识符与对应向量三元组封装为结构化记录,导入Milvus集合。需注意批次大小控制以避免内存溢出或超时。
1、组织数据列表:entities = [ids, vectors, texts],其中vectors为二维列表,每行对应一个向量
2、调用collection.insert(entities)提交数据,返回插入结果对象
3、执行collection.flush()强制落盘,确保数据立即可查
4、验证插入数量:collection.num_entities应与预期条数一致
五、基于新查询文本执行向量相似性搜索
检索阶段复用相同DeepSeek嵌入流程,将用户输入转化为向量后,在Milvus中执行近似最近邻(ANN)查找,返回Top-K最相似记录。
1、对查询文本调用DeepSeek嵌入接口,获取单条向量query_vector
2、构造搜索参数:search_params = {"metric_type": "COSINE", "params": {"nprobe": 10}}
3、执行collection.search([query_vector], "vector", search_params, limit=5, output_fields=["text"])
4、遍历results[0],提取每个命中项的entity.text与distance字段











