Update Async Context Compression docs to v1.1.1 and improve plugin update logic to detect README changes

This commit is contained in:
fujie
2026-01-10 19:07:09 +08:00
parent a262a716a3
commit 1ece648006
3 changed files with 46 additions and 6 deletions

View File

@@ -1,6 +1,6 @@
# Async Context Compression Filter # Async Context Compression Filter
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.1.0 | **License:** MIT **Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.1.1 | **License:** MIT
This filter reduces token consumption in long conversations through intelligent summarization and message compression while keeping conversations coherent. This filter reduces token consumption in long conversations through intelligent summarization and message compression while keeping conversations coherent.
@@ -54,6 +54,7 @@ It is recommended to keep this filter early in the chain so it runs before filte
| `summary_temperature` | `0.3` | Randomness for summary generation. Lower is more deterministic. | | `summary_temperature` | `0.3` | Randomness for summary generation. Lower is more deterministic. |
| `model_thresholds` | `{}` | Per-model overrides for `compression_threshold_tokens` and `max_context_tokens` (useful for mixed models). | | `model_thresholds` | `{}` | Per-model overrides for `compression_threshold_tokens` and `max_context_tokens` (useful for mixed models). |
| `debug_mode` | `true` | Log verbose debug info. Set to `false` in production. | | `debug_mode` | `true` | Log verbose debug info. Set to `false` in production. |
| `show_debug_log` | `false` | Print debug logs to browser console (F12). Useful for frontend debugging. |
--- ---

View File

@@ -1,6 +1,6 @@
# 异步上下文压缩过滤器 # 异步上下文压缩过滤器
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.2.0 | **许可证:** MIT **作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.1.1 | **许可证:** MIT
> **重要提示**:为了确保所有过滤器的可维护性和易用性,每个过滤器都应附带清晰、完整的文档,以确保其功能、配置和使用方法得到充分说明。 > **重要提示**:为了确保所有过滤器的可维护性和易用性,每个过滤器都应附带清晰、完整的文档,以确保其功能、配置和使用方法得到充分说明。
@@ -94,6 +94,11 @@
- **默认值**: `true` - **默认值**: `true`
- **描述**: 是否在 Open WebUI 的控制台日志中打印详细的调试信息(如 Token 计数、压缩进度、数据库操作等)。生产环境建议设为 `false` - **描述**: 是否在 Open WebUI 的控制台日志中打印详细的调试信息(如 Token 计数、压缩进度、数据库操作等)。生产环境建议设为 `false`
#### `show_debug_log`
- **默认值**: `false`
- **描述**: 是否在浏览器控制台 (F12) 打印调试日志。便于前端调试。
--- ---
## 故障排除 ## 故障排除

View File

@@ -469,10 +469,42 @@ class OpenWebUICommunityClient:
return True, f"Created new post (ID: {new_post_id})" return True, f"Created new post (ID: {new_post_id})"
return False, "Failed to create new post" return False, "Failed to create new post"
# 获取远程帖子信息(只需获取一次)
remote_post = None
if post_id:
remote_post = self.get_post(post_id)
# 版本检查(仅对更新有效) # 版本检查(仅对更新有效)
if not force and local_version: if not force and local_version and remote_post:
if not self.version_needs_update(post_id, local_version): remote_version = (
return True, f"Skipped: version {local_version} matches remote" remote_post.get("data", {})
.get("function", {})
.get("meta", {})
.get("manifest", {})
.get("version")
)
version_changed = local_version != remote_version
# 检查 README 是否变化
readme_changed = False
remote_content = remote_post.get("content", "")
local_content = readme_content or metadata.get("description", "")
# 简单的内容比较 (去除首尾空白)
if (local_content or "").strip() != (remote_content or "").strip():
readme_changed = True
if not version_changed and not readme_changed:
return (
True,
f"Skipped: version {local_version} matches remote and no README changes",
)
if readme_changed and not version_changed:
print(
f" Version match ({local_version}) but README changed. Updating..."
)
# 更新 # 更新
success = self.update_plugin( success = self.update_plugin(
@@ -484,7 +516,9 @@ class OpenWebUICommunityClient:
) )
if success: if success:
return True, f"Updated to version {local_version}" if local_version:
return True, f"Updated to version {local_version}"
return True, "Updated plugin"
return False, "Update failed" return False, "Update failed"
def _parse_frontmatter(self, content: str) -> Dict[str, str]: def _parse_frontmatter(self, content: str) -> Dict[str, str]: