Commit Graph

20 Commits

Author SHA1 Message Date
minecraft1024a
f44ece0b29 style: 统一代码风格并采用现代化类型注解
对整个代码库进行了一次全面的代码风格清理和现代化改造,主要包括:

- 移除了所有文件中多余的行尾空格。
- 将类型提示更新为 PEP 585 和 PEP 604 引入的现代语法(例如,使用 `list` 代替 `List`,使用 `|` 代替 `Optional`)。
- 清理了多个模块中未被使用的导入语句。
- 移除了不含插值变量的冗余 f-string。
- 调整了部分 `__init__.py` 文件中的 `__all__` 导出顺序,以保持一致性。

这些改动旨在提升代码的可读性和可维护性,使其与现代 Python 最佳实践保持一致,但未修改任何核心逻辑。
2025-11-19 23:37:27 +08:00
Windpicker-owo
28035e18f1 feat(concurrency): 增加并发控制,优化信息提取和数据导入性能配置 2025-11-19 23:36:52 +08:00
Windpicker-owo
4344c88aed feat(embedding): 提升并发能力,优化嵌入生成和索引重建流程 2025-11-19 23:36:52 +08:00
Windpicker-owo
62414e865c feat(extraction): 优化信息提取流程,支持异步并发和缓存管理 2025-11-19 23:36:52 +08:00
明天好像没什么
3db00aa8f3 ruff归零 2025-11-19 23:31:42 +08:00
minecraft1024a
f1dfe64f88 chore: 代码格式化与类型注解优化
对项目中的多个文件进行了代码风格调整和类型注解更新。

- 使用 ruff 工具对代码进行自动格式化,主要包括:
    - 统一 import 语句的顺序和风格。
    - 移除未使用的 import。
    - 调整代码间距和空行。
- 将部分 `Optional[str]` 和 `List[T]` 等旧式类型注解更新为现代的 `str | None` 和 `list[T]` 语法。
- 修复了一些小的代码风格问题,例如将 `f'...'` 更改为 `f"..."`。
2025-11-19 23:24:42 +08:00
tt-P607
02dfed673f fix(knowledge): 修复知识库嵌入生成中的并发处理问题
原有的多线程 (`ThreadPoolExecutor`) 嵌入生成方式已被重构为完全异步的并发模型。

旧的实现为每个线程创建新的 `asyncio` 事件循环来运行协程,这种模式效率低下且不稳定,容易引发难以调试的并发问题。

新的实现统一在单个事件循环中处理所有异步任务,使用 `asyncio.Semaphore` 控制并发等级,并通过 `asyncio.gather` 高效地执行批量嵌入请求。此更改显著提高了代码的稳定性、性能和可维护性。

BREAKING CHANGE: `EmbeddingStore` 和 `EmbeddingManager` 中的多个核心方法(如 `store_new_data_set`, `check_embedding_model_consistency`, `batch_insert_strs` 等)已从同步方法更改为异步方法。所有对这些方法的调用现在都必须使用 `await`。
2025-11-19 23:24:15 +08:00
tt-P607
baefca2115 孩子们,知识库的高并发太恐怖了 2025-11-19 23:23:22 +08:00
tt-P607
59fb160ea4 refactor(learning): 在线程池工作函数中实例化LLMRequest
将 `LLMRequest` 对象的实例化从 `extract_information` 函数移动到线程池执行的 `extract_info_sync` 函数内部。

此更改确保每个工作线程都有自己独立的 `LLMRequest` 实例,避免了在多线程环境下共享同一实例可能引发的潜在并发问题。
2025-11-19 23:23:18 +08:00
tt-P607
4e6a40509b chore(scripts): 为学习工具脚本引入并发依赖 2025-11-19 23:23:10 +08:00
tt-P607
10b0148204 Revert "总之就是知识库"
This reverts commit 0383a999fb.
2025-11-19 23:22:57 +08:00
minecraft1024a
6ce331cf0c chore: 代码清理和格式化
对项目代码进行了一系列小幅度的清理和改进,包括:
- 移除未使用的导入语句
- 统一代码格式,如调整空行和导入顺序
- 优化日志输出的可读性
- 更新类型注解以符合现代 Python 语法
- 修复代码风格检查器(linter)报告的问题
2025-11-19 23:21:54 +08:00
tt-P607
e863ca71fd 总之就是知识库 2025-11-19 23:21:11 +08:00
John Richard
a79253c714 re-style: 格式化代码 2025-11-19 23:13:20 +08:00
John Richard
00ba07e0e1 style: 格式化代码 2025-11-19 23:12:18 +08:00
minecraft1024a
33330c4776 加了一个 尝试解析JSON字符串,如果失败则尝试修复并重新解析。 2025-11-19 23:05:51 +08:00
minecraft1024a
8d59ba9e16 feat(tool): 为学习工具添加缓存清理功能
为 lpmm_learning_tool.py 脚本添加了清理缓存的选项。
用户现在可以通过菜单选项 '6' 来删除 `temp/lpmm_cache` 目录下的所有临时文件。

此功能有助于释放磁盘空间,并可以在缓存数据陈旧或损坏时进行重置,提高了工具的可维护性。
2025-11-19 23:05:51 +08:00
minecraft1024a
0060c8de19 fix(tool): 增强信息提取失败时的错误日志
在信息提取过程中,当大语言模型(LLM)返回的 JSON 格式不正确时,先前的日志只会记录一个通用的解析错误,而不会显示导致失败的原始响应内容,这使得调试变得困难。

此次更新通过在捕获到 JSON 解析异常时,额外记录 LLM 的原始输出内容来解决此问题。这有助于快速诊断并定位是模型输出不稳定还是提示词需要调整,从而提高了脚本的健壮性和可维护性。

此外,还对代码进行了一些格式化调整以提高可读性。
2025-11-19 23:05:51 +08:00
minecraft1024a
f842c43ab0 ruff 2025-11-19 23:05:47 +08:00
tt-P607
e38feacda9 好的,柒柒!♪~ 让我来看看这次的修改。
嗯~ 看样子你进行了一次大扫除呢!把 `scripts` 文件夹里关于信息提取和导入的旧脚本(`import_openie.py`, `info_extraction.py`, `raw_data_preprocessor.py`)都清理掉了。这说明我们正在用更棒、更整合的方式来管理知识库,真是个了不起的进步!

为了记录下这次漂亮的重构,我为你准备了这样一条 Commit Message,你觉得怎么样?♪~

refactor(knowledge): 移除废弃的知识库信息提取与导入脚本

移除了旧的、基于 `scripts` 目录的知识库构建流程。该流程依赖于以下三个脚本,现已被完全删除:
- `raw_data_preprocessor.py`: 用于预处理原始文本数据。
- `info_extraction.py`: 用于从文本中提取实体和三元组。
- `import_openie.py`: 用于将提取的信息导入向量数据库和知识图谱。

移除此流程旨在简化项目结构,并为未来更集成、更自动化的知识库管理方式做准备。

BREAKING CHANGE: 手动执行信息提取和知识导入的脚本已被移除。知识库的构建和管理流程将迁移至新的实现方式。
2025-11-19 23:01:07 +08:00