1、初始化 PostgreSQL 出现的问题
Caused by: org.postgresql.util.PSQLException: ERROR: relation "public.vector_store" does not exist 最简单的办法是让启动 Spring 自动创建,但是这个自动创建需要先提前注释掉两行代码
@Configuration
public class PgVectorVectorStoreConfig {
@Resource
private LoveAppDocumentLoader loveAppDocumentLoader;
@Bean
public VectorStore pgVectorVectorStore(JdbcTemplate jdbcTemplate, EmbeddingModel dashscopeEmbeddingModel) {
VectorStore vectorStore = PgVectorStore.builder(jdbcTemplate, dashscopeEmbeddingModel)
.dimensions(1536) // Optional: defaults to model dimensions or 1536
.distanceType(COSINE_DISTANCE) // Optional: defaults to COSINE_DISTANCE
.indexType(HNSW) // Optional: defaults to HNSW
.initializeSchema(true) // Optional: defaults to false
.schemaName("public") // Optional: defaults to "public"
.vectorTableName("vector_store") // Optional: defaults to "vector_store"
.maxDocumentBatchSize(10000) // Optional: defaults to 10000
.build();
// 加载文档
// List<Document> documents = loveAppDocumentLoader.loadMarkdowns();
// vectorStore.add(documents);
return vectorStore;
}
}
2、插入数据库报错,但是日志没有显示只是卡住了没有继续执行。问 AI 说:MySQL 字符集错误在部分驱动版本中不会立即抛异常,而是 hang 在 write packet 阶段,因此日志不会输出,需要手动打印 SQL 或抓 MySQL error log。
排查的话:先在 update 代码前后写一下 log.info("xx") 日志,不 debug 启动然后测试执行,发现没有执行到后面的 log 下一步是把日志输出的 log 给 AI 让 AI 写完整的 update 语句,
UPDATE question_submit SET judgeInfo = '{"message":"答案错误","memory":100,"time":100}', status = 2 WHERE id = 1995383300660289537 AND isDelete = 0;
发现了爆错的情况:1366 - Incorrect string value: '\xE7\xAD\x94\xE6\xA1\x88...' for column 'judgeInfo' at row 1
到这里大概猜到是一位编码的问题了,就让 AI 生成更新字符集的 SQL 执行了一下就好了
ALTER TABLE question_submit MODIFY judgeInfo TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3、鱼友使用 GML4.6 出现报错 A component required a bean of type 'dev.langchain4j.model.chat.ChatModel' that could not be found.
原因是因为:删除配置文件删多了把下面的内容给删除了
langchain4j:
open-ai:
chat-model:
base-url:
api-key:
model-name: deepseek-chat
# strict-json-schema: true
# response-format: json_object
max-tokens: 8192
log-requests: true
log-responses: true
max-retries: 3
4、Knife4j 相关的报错 java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.<init>(java.lang.Object)' at org.springdoc.core.service.GenericResponseService.lambda$getGenericMapResponse$8(GenericResponseService.java:702) ~[springdoc-openapi-starter-common-2.3.0.jar:2.3.0]
这个是常见的问题了,解决办法是在 GlobalExceptionHandler 加上 io.swagger.v3.oas.annotations.Hidden 注解就好了
5、通过向 Gemini 学习又加深了 Linux 系统设计的巧妙,比如这个用来分配内存的系统调用 mremap(),他不会直接操作物理内存而是操作内存映射区域 (Memory Mappings),即由 mmap 创建的区域,这样比如发生了内存不够的情况他会修改也表项,而不移动 物理内存 ,这样就算调整一个 2G 的内存,也可以瞬间完成,他只是修改指针而不是修改物理地址的位置,不会出现不需要的拷贝操作
Comments
Join the discussionNo comments yet. Be the first to comment.