feat(core): 新增向量数据库与Apple支付支持

This commit is contained in:
2025-11-13 22:02:47 +08:00
parent 38ce370cb0
commit 9170f93d67
14 changed files with 346 additions and 13 deletions

View File

@@ -1,23 +1,26 @@
package com.yolo.keyborad.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yolo.keyborad.common.BaseResponse;
import com.yolo.keyborad.common.ErrorCode;
import com.yolo.keyborad.common.ResultUtils;
import com.yolo.keyborad.exception.BusinessException;
import com.yolo.keyborad.model.dto.IosPayVerifyReq;
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;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.embedding.Embedding;
import org.springframework.ai.embedding.EmbeddingResponse;
import org.springframework.ai.openai.OpenAiEmbeddingModel;
import org.springframework.boot.context.properties.bind.DefaultValue;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import java.util.List;
/*
* @author: ziin
* @date: 2025/10/28 20:42
@@ -32,6 +35,14 @@ public class DemoController {
@Resource
private ChatClient client;
@Resource
private OpenAiEmbeddingModel embeddingModel;
@Resource
private QdrantVectorService qdrantVectorService;
@GetMapping("/test")
@Operation(summary = "测试接口", description = "测试接口")
public BaseResponse<String> testDemo(){
@@ -53,9 +64,26 @@ public class DemoController {
.content();
}
@PostMapping("/embed")
@Operation(summary = "测试向量接口", description = "测试向量接口")
@Parameter(name = "userInput",required = true,description = "测试向量接口",example = "you are so cute!")
public BaseResponse<Embedding> testEmbed(@DefaultValue("you are so cute!") @RequestBody List<String> userInput){
EmbeddingResponse response = embeddingModel.embedForResponse(userInput);
return ResultUtils.success(response.getResult());
}
@Operation(summary = "IOS内购凭证校验", description = "IOS内购凭证校验")
public BaseResponse<String> iosPay(@RequestBody IosPayVerifyReq req) {
return null;
}
@PostMapping("/testSaveEmbed")
@Operation(summary = "测试存储向量接口", description = "测试存储向量接口")
@Parameter(name = "userInput",required = true,description = "测试存储向量接口")
public BaseResponse<Boolean> testSaveEmbed( @RequestBody List<Float> userInput) throws Exception {
qdrantVectorService.upsertPoint(1L, userInput, null);
return ResultUtils.success(true);
}
}

View File

@@ -1,22 +1,17 @@
package com.yolo.keyborad.controller;
import com.alibaba.fastjson.JSON;
import com.yolo.keyborad.common.BaseResponse;
import com.yolo.keyborad.common.ResultUtils;
import com.yolo.keyborad.model.dto.AppleLoginReq;
import com.yolo.keyborad.service.impl.IAppleService;
import com.yolo.keyborad.service.IAppleService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* 用户前端控制器
*