feat(vector): 新增向量搜索与文本语义检索接口

- DemoController 增加 /testSearch、/tsetSearchText 端点
- QdrantVectorService 补充 searchPoint、searchText、indexText 方法
- 新增 SearchEmbedReq、TextSearchReq、QdrantSearchItem 等 DTO/VO
- 调整 LLM 模型为 qwen3-embedding-0.6b 并开放对应接口免鉴权
This commit is contained in:
2025-11-14 21:31:16 +08:00
parent f60ee2df3d
commit ef7dd5b370
8 changed files with 228 additions and 20 deletions

View File

@@ -1,14 +1,15 @@
package com.yolo.keyborad.controller;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.yolo.keyborad.common.BaseResponse;
import com.yolo.keyborad.common.ResultUtils;
import com.yolo.keyborad.model.dto.EmbedSaveReq;
import com.yolo.keyborad.model.dto.IosPayVerifyReq;
import com.yolo.keyborad.model.dto.SearchEmbedReq;
import com.yolo.keyborad.model.dto.TextSearchReq;
import com.yolo.keyborad.model.vo.QdrantSearchItem;
import com.yolo.keyborad.service.impl.QdrantVectorService;
import io.qdrant.client.QdrantClient;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -91,4 +92,20 @@ public class DemoController {
, JSONUtil.toJsonStr(embedSaveReq.getRecordItem()));
return ResultUtils.success(true);
}
@PostMapping("/testSearch")
@Operation(summary = "测试搜索向量接口", description = "测试搜索向量接口")
@Parameter(name = "userInput",required = true,description = "测试搜索向量接口")
public BaseResponse<List<QdrantSearchItem>> testSearch(@RequestBody SearchEmbedReq searchEmbedReq) {
return ResultUtils.success(qdrantVectorService.searchPoint(searchEmbedReq.getUserInputEmbed(), 3));
}
@PostMapping("/tsetSearchText")
@Operation(summary = "测试搜索语义接口", description = "测试搜索语义接口")
@Parameter(name = "userInput",required = true,description = "测试搜索语义接口")
public BaseResponse<List<QdrantSearchItem>> testSearchText(@RequestBody TextSearchReq textSearchReq) {
return ResultUtils.success(qdrantVectorService.searchText(textSearchReq.getUserInput()));
}
}