Spring AI 高级RAG功能实现:查询压缩

This commit is contained in:
huangge1199 2025-05-27 14:18:40 +08:00
parent 274608a471
commit 7b2dfa43e9
3 changed files with 26 additions and 0 deletions

View File

@ -26,4 +26,6 @@ public interface RagService {
String advancedAdvisor(String question);
String documentSelection();
String queryTransformer();
}

View File

@ -270,6 +270,23 @@ public class RagServiceImpl implements RagService {
.content();
}
@Override
public String queryTransformer() {
ChatClient.Builder builder = ChatClient.builder(ollamaChatModel);
Query query = Query.builder()
.text("编程导航有啥内容?")
.history(new UserMessage("谁是程序员鱼皮?"),
new AssistantMessage("编程导航的创始人 codefather.cn"))
.build();
QueryTransformer queryTransformer = CompressionQueryTransformer.builder()
.chatClientBuilder(builder)
.build();
return queryTransformer.transform(query).text();
}
private static FilterExpressionBuilder.Op getOp() {
var b = new FilterExpressionBuilder();
// 筛选2023年的案例

View File

@ -82,4 +82,11 @@ public class RagController {
String queryList = ragService.documentSelection();
return R.ok(queryList);
}
@PostMapping("/queryTransformer")
@Operation(summary = "查询压缩")
public R<String> queryTransformer() {
String queryList = ragService.queryTransformer();
return R.ok(queryList);
}
}