day14

#实习

遇到的问题:

/**
 * 处理用户对话请求
 * @param message 用户输入的消息
 * @return 对话结果,包含 AI 回复和相关记忆信息
 */
@PostMapping("/chat")
@Operation(
        summary = "对话交互",
        description = "用户输入消息,系统返回 AI 回复及相关记忆信息"
)
@ApiResponses(value = {
        @ApiResponse(
                responseCode = "200",
                description = "对话处理成功",
                content = @Content(mediaType = "application/json", schema = @Schema(implementation = ConversationResultVO.class))
        ),
        @ApiResponse(
                responseCode = "400",
                description = "请求参数错误"
        ),
        @ApiResponse(
                responseCode = "500",
                description = "服务器内部错误"
        )
})
public ResponseEntity<ConversationResultVO> chat(
        @Parameter(description = "用户输入的消息", required = true)
        @RequestParam("message") String message,
        @Parameter(description = "会话 ID,用于区分不同用户或会话", required = true)
        @RequestParam("sessionId") String sessionId) 

报错:[http-nio-8080-exec-6] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed

原因:

关于@RequestParam问题,在**Spring Boot 3.x + Java 17+**的环境中,Java编译器在编译代码时,默认为了节省空间,不会把参数名称(比如sessionId)保留在.class文件中,而是变成了arg0,1,这种无意义的名字。导致报错

解决方法:

  1. 在使用@RequestParam的使用显式的说明:@RequestParam("sessionId")
  2. 在maven-compiler-plugin这个pom配置中添加true的配置

Mem0整体已完成:

image-20260109183007098

TODO:

修改一下返回提示词接口,只返回相关记忆和全局上下文

← 返回首页