Skip to content

主要增加中文注释,方便小白阅读,统一存储用户名密码,解决启动检查报错问题 - #38

Open
Feike1993 wants to merge 12 commits into
Snailclimb:masterfrom
Feike1993:master
Open

主要增加中文注释,方便小白阅读,统一存储用户名密码,解决启动检查报错问题#38
Feike1993 wants to merge 12 commits into
Snailclimb:masterfrom
Feike1993:master

Conversation

@Feike1993

Copy link
Copy Markdown

config(storage): 统一RustFS和MinIO的用户名密码,本地构建不报错,生产环境肯定都会改掉的。
refactor(ai): 重构ApiPathResolver中的超时配置参数类型,增加可读性
Merge branch 'master_upstream'
chore(config): 更新数据库密码配置示例
docs(evaluation): 更新面试评估模块文档注释
docs(config): 更新 LlmEmbeddingConfig 类的 JavaDoc 注释
docs(async): 为 AbstractStreamConsumer 补充完整的设计决策 JavaDoc
refactor(aspect): 提取重复的 Lua 脚本执行逻辑并清理异常声明
docs(ai): 完善 StructuredOutputInvoker 类注释与常量分组
docs(ai): 补充 ApiPathResolver 和 LlmProviderRegistry 类注释
refactor(ai): 使用 JdkClientHttpRequestFactory 替代 SimpleClientHttpRequestFactory
docs(ai): 为 AgentUtilsConfiguration 添加方法注释

丰佳 added 12 commits June 9, 2026 17:27
- 为 interviewSkillsToolCallback 方法添加 JavaDoc 注释
- 为 normalizeSkillsRoot 路径处理步骤添加内联注释
- 为技能目录不存在时的校验逻辑补充说明
…stFactory

- 将超时配置从 int 毫秒值迁移为 Duration 类型,提升可读性
- 补充 ApiPathResolver 类文档,说明 baseUrl 版本段识别逻辑
- 调整 import 顺序以符合规范
- ApiPathResolver: 将 URL 示例用 {@code} 包裹,改进 Javadoc 格式
- LlmProviderRegistry: 用中文详细描述注册中心职责,包括三层缓存策略和三种客户端场景
- 扩充类注释,说明 LLM JSON 输出的常见问题及处理策略
- 添加常量区域分隔注释,提升代码可读性
- 简化常量注释,聚焦于\"为什么\"而非\"是什么\"
- 将两处 `rScript.evalSha()` 调用抽取为 `executeRateLimitScript()` 方法
- 添加 `@Nullable` 注解标记新方法可空返回值
- 移除 `handleRateLimitExceeded` 方法多余的 `throws Throwable`
- 类级别注释说明选择 Redis Stream + 模板方法模式的三条理由
- 为 init/shutdown 方法说明线程安全设计(AtomicBoolean 与关闭顺序)
- 为 processMessage 注释重试策略选择与 ACK 时机考量
- 为 truncateError 说明 500 字符截断的原因
- 为 ackMessage 解释吞异常而非传播的设计取舍
- 为 redisService() 访问器保留未来横切扩展的可能性
- 添加详细的类级别注释说明 LlmProviderRegistry 包装为 EmbeddingModel Bean 的设计原理
- 解释使用委托层而非直接注入具体 Provider 的两个核心原因
- 说明运行时 Provider 切换与启动时 Bean 固化的架构考量
- 添加方法级别的注释解释 embed(Document) 方法重写的必要性
- 描述 Spring AI 中不同方法调用路径的性能优化差异
- 为 EvaluationReport 添加详细类注释说明其用途和字段含义
- 为 QaRecord 添加完整文档注释包括参数说明和使用场景
- 为 UnifiedEvaluationService 添加架构设计说明和分批评估流程解释
- 为各个内部 record 类添加字段级别的详细注释
- 为核心方法添加处理流程和设计考虑的说明文档
- 将 POSTGRES_PASSWORD 从默认值 'password' 更改为 '123456'
- 保持其他数据库连接参数不变
# Conflicts:
#	app/src/main/java/interview/guide/common/ai/ApiPathResolver.java
#	app/src/main/java/interview/guide/common/ai/LlmProviderRegistry.java
#	app/src/main/java/interview/guide/common/ai/StructuredOutputInvoker.java
#	app/src/main/java/interview/guide/common/async/AbstractStreamConsumer.java
#	app/src/test/java/interview/guide/common/ai/ApiPathResolverTest.java
- 移除未使用的导入包包括OpenAiApi、JdkClientHttpRequestFactory、RestClient、HttpClient
- 将buildOpenAiClient方法的超时参数从int类型改为Duration类型
- 直接使用传入的Duration参数构建Timeout对象,移除毫秒转换逻辑
@Snailclimb

Copy link
Copy Markdown
Owner

感谢补充注释和配置整理。我把该分支合入当前 master 后执行了 ./gradlew :app:test --no-daemon,测试可以通过;但目前仍有配置错误和多处与实现相反的注释,暂不建议合并。

请至少处理以下问题:

  1. docker-compose.dev.ymlRUSTFS_SECRET_KEY 错误地读取了 APP_STORAGE_ACCESS_KEY。当 access key 与 secret key 不同时会导致鉴权失败,应改为 APP_STORAGE_SECRET_KEY,并统一 compose、.env.example、README 和底部登录说明的变量名与默认值。
  2. QaRecordEvaluationReport 把题号写成从 1 开始,但调用方实际从 0 开始,展示时才 + 1
  3. UnifiedEvaluationService 注释称总分只计算已回答题,实际 questionDetails.stream().average() 仍把未回答题的 0 分计入分母;请确认产品语义后修实现或注释,并补测试。
  4. AbstractStreamConsumer 把无界 new LinkedBlockingQueue<>() 写成“容量为 0”,还称 shutdown() 会中断任务、未使用 AutoClaim,均与实际代码不符。
  5. .env.example 的数据库密码说明仍写 password,值却改成了 123456,示例不一致。
  6. ApiPathResolverTest 的“自定义超时参数生效”只断言 client 非空,没有验证超时确已装配。

这个 PR 的目标是方便初学者阅读,因此错误注释比缺少注释更容易造成误导。另外,当前分支已落后 master 29 个提交,请先 rebase,再基于最新代码缩小净改动并复核上述内容。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants