docs(workflow): optimize release format to English-only changelog

This commit is contained in:
fujie
2026-02-10 16:20:47 +08:00
parent e5e0f4cbcc
commit 3504313f15
12 changed files with 237 additions and 17 deletions

View File

@@ -46,10 +46,10 @@ When adding or updating a plugin, you **MUST** update the following documentatio
### Plugin Directory
- `README.md`: Update version, description, and usage.
- **Key Capabilities**: **MUST** include ALL core functionalities and features. Do not only list new features in "What's New".
- **Key Capabilities**: **MUST** include ALL core functionalities and features. This is a cumulative section. Every release **MUST** verify that basic core descriptions are NOT lost or overwritten by new feature lists.
- **What's New**: Explicitly describe only the latest changes/updates in a prominent position at the beginning. This section is dynamic and changes with versions.
- `README_CN.md`: Update version, description, and usage.
- **核心功能 (Key Capabilities)**: **必须**包含所有核心功能和特性,不能只在 "What's New" 中列出
- **核心功能 (Key Capabilities)**: **必须**包含所有核心功能和特性。这是一个累积性的部分,每次版本更新**必须**确认基础核心功能的描述没有丢失或被新功能列表覆盖
- **最新更新 (What's New)**: 在开头显眼位置明确描述最新的更改/更新。此部分是动态的,随版本变化。
### Global Documentation (`docs/`)
@@ -119,7 +119,7 @@ When the user confirms a release, the agent **MUST** follow these content standa
2. **Release Summary (for user review)**:
- Before committing, present a "Release Draft" containing:
- **Title**: e.g., `Release v0.1.1: [Plugin Name] - [Brief Summary]`
- **Changes**: Bilingual bullet points (English/Chinese) describing the impact.
- **Changelog**: English-only list of commits since the last release, including hashes (e.g., `896de02 docs(config): reorder antigravity model alias example`).
- **Verification Status**: Confirm all 8+ files have been updated and synced.
3. **Internal Documentation**: Ensure "What's New" sections in READMEs and `docs/` match exactly the changes being released.
@@ -137,6 +137,7 @@ Before committing:
- [ ] Code is bilingual and functional?
- [ ] Docstrings have updated version?
- [ ] READMEs are updated and bilingual?
- [ ] **Key Capabilities** in READMEs still cover all legacy core features + new features?
- [ ] `docs/` index and detail pages are updated?
- [ ] Root `README.md` is updated?
- [ ] All version numbers match exactly?

View File

@@ -0,0 +1,102 @@
# GitHub Copilot SDK Advanced Tutorial
**Author:** [Fu-Jie](https://github.com/Fu-Jie) | **Version:** 1.0.0 | **Project:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
This tutorial guides you through unleashing the full potential of the GitHub Copilot SDK plugin, specifically focusing on advanced file generation, BYOK customization, and complex task orchestration.
---
## 1. The 3-Step File Delivery Protocol
This is one of the most powerful features of this plugin. Agents can generate real physical files (e.g., `.xlsx`, `.pdf`, `.csv`) in their isolated workspace and publish them for you to download.
### Automated Execution Logic:
1. **Write (Local)**: The Agent creates a file using code within its isolated directory (the current directory `.` during Python execution).
2. **Publish**: The Agent automatically calls `publish_file_from_workspace(filename='report.xlsx')`.
3. **Link**: The plugin handles S3 or local storage mapping, bypasses RAG interference, and returns a secure link like `/api/v1/files/.../content`.
> [!TIP]
> **User Command Tip**: You can simply tell the Agent: "Analyze the previous data and export an Excel sheet for me." It will automatically trigger this entire sequence.
---
## 2. Advanced BYOK (Bring Your Own Key) Mode
If you don't have a GitHub Copilot subscription or want to use high-end models from OpenAI/Anthropic directly, you can use the BYOK mode.
### How to Configure:
1. **Set Base URL**: e.g., `https://api.openai.com/v1`.
2. **Set API Key**: Enter your key in your personal settings (Valves).
3. **Real-time Model Refresh**: The plugin features a **Config-Aware Refresh** mechanism. When you modify the API Key or Base URL, simply refresh the model selector in the UI—the plugin will automatically fetch the latest available models from the backend.
---
## 3. Workspace Isolation & Debugging
Every chat session has a physically isolated folder, ensuring that files from different tasks do not interfere with each other.
### Physical Path Rules:
- **In-Container Path**: `/app/backend/data/copilot_workspace/{user_id}/{chat_id}/`
- **Agent's Perspective**: It sees the `.` directory as the path mentioned above.
### Debugging Pro Tips:
1. **Enable DEBUG Valve**: Set `DEBUG` to `True` in the configuration.
2. **Check the Console**: Open browser developer tools (F12) -> Console.
3. **Capture Paths**: You will see logs like `📂 Workspace Resolved: /.../`, which helps you confirm exactly where the Agent is writing its files.
---
## 4. Deep Analysis Bypassing RAG
Traditional file uploads in OpenWebUI trigger vectorization (RAG), which might not be precise enough for large-scale data analysis.
**Advantages of this Plugin**:
- When used with the [Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6) plugin, the Agent can **directly read every byte** of the raw file.
- It can analyze every row of a CSV as if it were running a script locally, preventing information loss caused by retrieval-based slicing.
---
## 5. Common Interaction Examples
- **Data Conversion**: "Convert this JSON content into a beautifully formatted Word document and provide a download link."
- **Code Review**: "Read all `.py` files in the workspace, find potential bugs, and publish the suggestions as a Markdown report."
- **Chart Generation**: "Generate an Excel report based on the financial data and use Python to draw a trend chart for me."
---
## 🚀 Real-world Example: Automated Financial Analysis
### Scenario
A user uploads a raw sales log named `sales_data.csv` and asks the AI to generate a summarized Excel report.
### 1. User Command
> "Analyze `sales_data.csv` in the current directory, calculate total revenue per product category, and export an Excel file named `category_summary.xlsx` for me."
### 2. Agent Execution Flow
The Agent performs the following steps autonomously:
* **Step 1: Write and Run Python Code**
```python
import pandas as pd
# Direct file access in the isolated workspace (Bypassing RAG for 100% accuracy)
df = pd.read_csv('sales_data.csv')
summary = df.groupby('Category')['Revenue'].sum().reset_index()
# Save the result locally
summary.to_excel('category_summary.xlsx', index=False)
```
* **Step 2: Call the Publishing Tool**
The Agent calls: `publish_file_from_workspace(filename="category_summary.xlsx")`
* **Step 3: Deliver the Link**
The tool returns a `download_url`, which the Agent presents to the user.
### 3. Final Result
The Agent responds:
> "Analysis complete! I have summarized the revenue by category. You can download your report here:
>
> [📊 Download: Category_Summary.xlsx](/api/v1/files/uuid-hash/content)"
---
## ⭐ Continuous Improvement
If you encounter any issues or have suggestions for new features, feel free to submit an Issue or participate in discussions on [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui).

View File

@@ -0,0 +1,102 @@
# GitHub Copilot SDK 插件进阶实战教程
**作者:** [Fu-Jie](https://github.com/Fu-Jie) | **版本:** 1.0.0 | **项目:** [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui)
本教程旨在指导您如何深度发挥 GitHub Copilot SDK 插件的全部潜力特别是在自动化文件生成、BYOK 模式自定义以及复杂任务调度方面的进阶用法。
---
## 1. 核心协议:文件交付三步法 (File Delivery Protocol)
这是本插件最强大的功能之一。Agent 不再只是“说话”,它可以在其隔离的工作区内生成真正的物理文件(如 `.xlsx`, `.pdf`, `.csv`),并将其发布给您下载。
### 自动化执行逻辑:
1. **本地写入 (Write)**Agent 在其隔离目录(即 Python 执行的当前目录 `.`)下通过代码生成文件。
2. **显式发布 (Publish)**Agent 自动调用 `publish_file_from_workspace(filename='report.xlsx')`
3. **获取链接 (Link)**:插件会自动处理 S3 或本地存储映射,绕过 RAG 干扰,并返回一个类似 `/api/v1/files/.../content` 的安全链接。
> [!TIP]
> **用户指令技巧**:您可以直接对 Agent 说:“分析刚才的表格并导出一份 Excel 给我”。它会自动触发这一连串动作。
---
## 2. BYOK (自带 Key) 模式进阶
如果您没有 GitHub Copilot 订阅,或者希望使用自己购买的 OpenAI/Anthropic 高阶模型,可以使用 BYOK 模式。
### 如何配置:
1. **设置 Base URL**:如 `https://api.openai.com/v1`
2. **设置 API Key**:在个人设置中填入您的密钥。
3. **模型实时刷新**:插件具备**配置感知刷新**机制。当您在 Valve 中修改了 API Key 或 Base URL 后,无需重启,只需刷新模型选择器,插件会自动向后端拉取最新的可用模型列表。
---
## 3. 工作区隔离与调试 (Workspace & Debugging)
每个聊天会话都有一个物理上隔离的文件夹,确保不同任务的文件互不干扰。
### 物理路径规则:
- **容器内路径**`/app/backend/data/copilot_workspace/{user_id}/{chat_id}/`
- **Agent 的视角**:它看到的 `.` 目录即是上述路径。
### 调试秘籍:
1. **开启 DEBUG Valve**:在配置中将 `DEBUG` 设为 `True`
2. **查看控制台**:打开浏览器开发者工具 (F12) -> Console。
3. **捕获路径**:您会看到类似 `📂 Workspace Resolved: /.../` 的日志,这能帮您确认 Agent 到底把文件写到了哪里。
---
## 4. 绕过 RAG 的深度分析
传统的 OpenWebUI 文件上传会触发向量化RAG这对于大批量数据分析往往不够精确。
**本插件的优势**
- 配合 [Files Filter](https://openwebui.com/posts/403a62ee-a596-45e7-be65-fab9cc249dd6) 插件使用时Agent 可以**直接读取**原始文件的每一个字节。
- 它能像在本地运行脚本一样分析 CSV 的每一行而不会因为切片检索Retrieval导致信息丢失。
---
## 5. 常见交互指令示例
- **数据转换**:“把这个 JSON 内容转换成格式精美的 Word 文档并提供下载链接。”
- **代码审查**:“读取工作区内的所有 `.py` 文件,找出潜在的 Bug并把修改建议发布为 Markdown 报告。”
- **图表生成**:“根据刚才的财务数据生成一份 Excel 报表,并用 Python 画一个趋势图给我。”
---
## 🚀 实战示例:全自动财务分析报告
### 场景描述
用户上传了一个名为 `sales_data.csv` 的原始销售清单,要求 AI 进行汇总统计,并生成一份带样式的 Excel 报表。
### 1. 用户的指令
> “请分析当前目录下的 `sales_data.csv`,按产品类别统计总销售额,并导出一份名为 `category_summary.xlsx` 的 Excel 给我就好。”
### 2. Agent 的自动化执行过程
Agent 会在后台连续执行以下动作:
* **步骤 1: 编写并运行 Python 脚本**
```python
import pandas as pd
# 直接在隔离工作区读取原始文件(绕过 RAG保证数据 100% 准确)
df = pd.read_csv('sales_data.csv')
summary = df.groupby('Category')['Revenue'].sum().reset_index()
# 保存结果到当前目录
summary.to_excel('category_summary.xlsx', index=False)
```
* **步骤 2: 调用发布工具**
Agent 自动执行工具调用:`publish_file_from_workspace(filename="category_summary.xlsx")`
* **步骤 3: 交付链接**
工具返回 `download_url`Agent 最终回复用户。
### 3. 最终交付效果
Agent 会向用户展示:
> “分析完成!我已经为您统计了产品类别的销售额。您可以点击下方链接下载报表:
>
> [📊 点击下载:分类销售统计报表.xlsx](/api/v1/files/uuid-hash/content)”
---
## ⭐ 持续改进
如果您在使用过程中发现任何问题,或有新的功能建议,欢迎到 [Awesome OpenWebUI](https://github.com/Fu-Jie/awesome-openwebui) 提交 Issue 或参与讨论。

View File

@@ -32,7 +32,8 @@ This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/
- **🧠 Deep Database Integration**: Real-time persistence of TOD·O lists for long-running workflows.
- **🌊 Advanced Streaming**: Full support for thinking process/Chain of Thought visualization.
- **🖼️ Intelligent Multimodal**: Vision capabilities and raw file analysis support.
- **⚡ Full-Lifecycle File Agent**: Supports receiving uploaded files for raw bypass analysis and publishing generated results (e.g., analyzed Excel/reports) as downloadable links—a complete closed-loop agentic workflow.
- **⚡ Full-Lifecycle File Agent**: Supports receiving uploaded files for raw bypass analysis and publishing results (Excel/reports) as downloadable links.
- **🖼️ Interactive Artifacts**: Automatically renders HTML/JS apps generated by the agent directly in the chat interface.
---

View File

@@ -32,7 +32,8 @@
- **🧠 深度数据库集成**: 实时持久化 TOD·O 列表到 UI 进度条。
- **🌊 深度推理展示**: 完整支持模型思考过程 (Thinking Process) 的流式渲染。
- **🖼️ 智能多模态**: 完整支持图像识别与附件上传分析。
- **⚡ 全生命周期文件 Agent**: 支持接收上传文件进行绕过 RAG 的深度分析,并将处理结果(如分析后的 Excel/报告)发布为下载链接实现完整的闭环 Agent 工作流
- **⚡ 全生命周期文件 Agent**: 支持接收上传文件进行绕过 RAG 的深度分析,并将处理结果(如 Excel/报告)发布为下载链接实现闭环
- **🖼️ 交互式伪影 (Artifacts)**: 自动渲染 Agent 生成的 HTML/JS 应用程序,直接在聊天界面交互。
---

View File

@@ -15,7 +15,7 @@ Pipes allow you to:
## Available Pipe Plugins
- [GitHub Copilot SDK](github-copilot-sdk.md) (v0.6.2) - Official GitHub Copilot SDK integration. Features **Workspace Isolation**, **Database Persistence**, **Zero-config OpenWebUI Tool Bridge**, **BYOK** support, and **dynamic MCP discovery**. Supports streaming, multimodal, and infinite sessions.
- [GitHub Copilot SDK](github-copilot-sdk.md) (v0.6.2) - Official GitHub Copilot SDK integration. Features **Workspace Isolation**, **Database Persistence**, **Zero-config OpenWebUI Tool Bridge**, **BYOK** support, and **dynamic MCP discovery**. Supports streaming, multimodal, and infinite sessions. [View Deep Dive](github-copilot-sdk-deep-dive.md) | [**View Advanced Tutorial**](github-copilot-sdk-tutorial.md).
---

View File

@@ -15,7 +15,7 @@ Pipes 可以用于:
## 可用的 Pipe 插件
- [GitHub Copilot SDK](github-copilot-sdk.zh.md) (v0.6.2) - GitHub Copilot SDK 官方集成。具备**工作区安全隔离**、**数据库持久化**、**零配置工具桥接**与**BYOK (自带 Key) 支持**。支持流式输出、打字机思考过程及无限会话。[查看深度架构解析](github-copilot-sdk-deep-dive.zh.md)。
- [GitHub Copilot SDK](github-copilot-sdk.zh.md) (v0.6.2) - GitHub Copilot SDK 官方集成。具备**工作区安全隔离**、**数据库持久化**、**零配置工具桥接**与**BYOK (自带 Key) 支持**。支持流式输出、打字机思考过程及无限会话。[查看深度架构解析](github-copilot-sdk-deep-dive.zh.md) | [**查看进阶实战教程**](github-copilot-sdk-tutorial.zh.md)
---

View File

@@ -32,7 +32,8 @@ This is an advanced Pipe function for [OpenWebUI](https://github.com/open-webui/
- **🧠 Deep Database Integration**: Real-time persistence of TOD·O lists for long-running workflows.
- **🌊 Advanced Streaming**: Full support for thinking process/Chain of Thought visualization.
- **🖼️ Intelligent Multimodal**: Vision capabilities and raw file analysis support.
- **⚡ Full-Lifecycle File Agent**: Supports receiving uploaded files for raw bypass analysis and publishing generated results (e.g., analyzed Excel/reports) as downloadable links—a complete closed-loop agentic workflow.
- **⚡ Full-Lifecycle File Agent**: Supports receiving uploaded files for raw bypass analysis and publishing results (Excel/reports) as downloadable links.
- **🖼️ Interactive Artifacts**: Automatically renders HTML/JS apps generated by the agent directly in the chat interface.
---

View File

@@ -32,7 +32,8 @@
- **🧠 深度数据库集成**: 实时持久化 TOD·O 列表到 UI 进度条。
- **🌊 深度推理展示**: 完整支持模型思考过程 (Thinking Process) 的流式渲染。
- **🖼️ 智能多模态**: 完整支持图像识别与附件上传分析。
- **⚡ 全生命周期文件 Agent**: 支持接收上传文件进行绕过 RAG 的深度分析,并将处理结果(如分析后的 Excel/报告)发布为下载链接,实现完整的闭环 Agent 工作流
- **⚡ 全生命周期文件 Agent**: 支持接收上传文件进行绕过 RAG 的深度分析,并将处理结果(如 Excel/报告)发布为下载链接。
- **🖼️ 交互式伪影 (Artifacts)**: 自动渲染 Agent 生成的 HTML/JS 应用程序,直接在聊天界面交互。
---

View File

@@ -134,10 +134,10 @@ BASE_GUIDELINES = (
" - 2. **Render**: Immediately output the SAME code in a ` ```html ` block so the user can interact with it.\n"
" - **Result**: The user gets both a saved file AND a live app. Never force the user to choose one over the other.\n"
"4. **Images & Files**: ALWAYS embed generated images/files directly using `![caption](url)`. Never provide plain text links.\n"
"5. **File Delivery & Publishing (CRITICAL)**:\n"
" - **Implicit Requests**: If the user says 'publish this', 'export your response', or 'give me a link to this content', you MUST: 1. Write the relevant content to a `.md` (or other appropriate) file in the current directory (`.`). 2. Call `publish_file_from_workspace(filename='name.md')` to get a link.\n"
" - **Manual Sequence**: 1. **Write Local**: Create the file in `.` (your only workspace). 2. **Publish**: Call `publish_file_from_workspace(filename='your_file.ext')`. **WARNING**: You MUST provide the filename argument; never call this tool with empty parentheses.\n"
" - *Rule*: Only files in the current directory (`.`) can be published. The tool bypasses RAG and handles S3/Local storage automatically.\n"
"5. **File Delivery & Publishing (Complementary Goal)**:\n"
" - **Philosophy**: Publishing files is essential when the user needs to *possess* the data (download, edit offline, archive). However, this should **NOT** replace chat-page visualizations (HTML artifacts, Mermaid, Markdown tables). Aim for 'Visual First + File for Persistence'.\n"
" - **Implicit Requests**: If the user wants to 'get' or 'export' something, you MUST: 1. Visualize/summarize in the chat. 2. Write to a local file. 3. Call `publish_file_from_workspace`. 4. Provide the link.\n"
" - **Standard Sequence**: 1. **Write Local**: Create file in `.` (only workspace). 2. **Publish**: Call `publish_file_from_workspace(filename='your_file.ext')`. 3. **Link**: Present the `download_url` as a Markdown link.\n"
"6. **TODO Visibility**: Every time you call the `update_todo` tool, you **MUST** immediately follow up with a beautifully formatted **Markdown summary** of the current TODO list. Use task checkboxes (`- [ ]`), progress indicators, and clear headings so the user can see the status directly in the chat.\n"
"7. **Python Execution Standard**: For ANY task requiring Python logic (not just data analysis), you **MUST NOT** embed multi-line code directly in a shell command (e.g., using `python -c` or `<< 'EOF'`).\n"
' - **Exception**: Trivial one-liners (e.g., `python -c "print(1+1)"`) are permitted.\n'

View File

@@ -63,10 +63,10 @@ FORMATTING_GUIDELINES = (
"1. **Markdown & 多媒体**:自由使用粗体、斜体、表格和列表。\n"
"2. **Mermaid 图表**:请务必使用标准的 ```mermaid 代码块。\n"
"3. **交互式 HTML/JS**:你可以输出完整的 ```html 代码块(含 CSS/JS将在 iframe 中渲染。\n"
"4. **文件交付与发布 (关键规范)**\n"
" - **隐式请求**用户要求“发布这个”、“导出刚才的内容”或“给我一个链接”你必须1. 将内容写入当前目录 (`.`) 下的 `.md` (或其他合适) 文件。2. 调用 `publish_file_from_workspace(filename='name.md')` 获取链接\n"
" - **标准流程**1. **本地写入**:使用 Python 在**当前目录 (`.`)** 创建文件。这是你的唯一工作区。**严禁**使用 `/tmp` 等绝对路径。2. **显式发布**:调用 `publish_file_from_workspace(filename='your_file.ext')`。该工具会自动同步至 S3 并绕过 RAG。3. **呈现链接**:从工具返回的 JSON 中提取 `download_url`,并以 Markdown 链接 `[点击下载描述](url)` 展示\n"
" - **规则**:只有当前目录 (`.`) 下的文件可以发布。调用时必须传入 `filename` 参数,严禁空调用\n"
"4. **文件交付与发布 (互补目标)**\n"
" - **设计理念**用户需要“拥有”数据(下载、离线编辑、归档)时,发布文件是必不可少的。但这**不应**取代聊天页面的视觉化展示(如 HTML 应用、Mermaid 图表、Markdown 表格)。应追求“直观预览 + 持久产物”的双重体验\n"
" - **隐式请求**若用户要求“获取内容”或“导出数据”你应当1. 在聊天中进行视觉化汇总/预览。2. 将完整内容写入本地文件。3. 调用 `publish_file_from_workspace`。4. 展示下载链接\n"
" - **标准流程**1. **本地写入**:在当前目录 (`.`) 创建文件。2. **发布文件**:调用 `publish_file_from_workspace(filename='your_file.ext')`。3. **呈现链接**:从返回结果中提取 `download_url` 并在回复末尾展示\n"
"7. **主动与自主**: 你是专家工程师。对于显而易见的步骤,**不要**请求许可。**不要**停下来问“我通过吗?”或“是否继续?”。\n"
" - **行为模式**: 分析用户请求 -> 制定计划 -> **立即执行**计划。\n"
" - **澄清**: 仅当请求模棱两可或具有高风险(例如破坏性操作)时才提出问题。\n"

11
sample_sales_data.csv Normal file
View File

@@ -0,0 +1,11 @@
Date,Product,Category,Price,Quantity,Revenue
2024-01-01,Laptop,Electronics,1200,2,2400
2024-01-02,Mouse,Electronics,25,10,250
2024-01-03,Chair,Furniture,150,5,750
2024-01-04,Desk,Furniture,300,3,900
2024-01-05,Headphones,Electronics,100,8,800
2024-01-06,Lamp,Decor,45,12,540
2024-01-07,Monitor,Electronics,350,4,1400
2024-01-08,Bookcase,Furniture,200,2,400
2024-01-09,Keyboard,Electronics,80,15,1200
2024-01-10,Rug,Decor,120,3,360
1 Date Product Category Price Quantity Revenue
2 2024-01-01 Laptop Electronics 1200 2 2400
3 2024-01-02 Mouse Electronics 25 10 250
4 2024-01-03 Chair Furniture 150 5 750
5 2024-01-04 Desk Furniture 300 3 900
6 2024-01-05 Headphones Electronics 100 8 800
7 2024-01-06 Lamp Decor 45 12 540
8 2024-01-07 Monitor Electronics 350 4 1400
9 2024-01-08 Bookcase Furniture 200 2 400
10 2024-01-09 Keyboard Electronics 80 15 1200
11 2024-01-10 Rug Decor 120 3 360