sekacorn/CodeSummarizer-Windows

GitHub: sekacorn/CodeSummarizer-Windows

一款原生 Windows 桌面应用,利用本地 Ollama 模型对多语言源代码进行离线总结、讲解和风险审查。

Stars: 0 | Forks: 0

# Windows 版 Code Summarizer [![最新发布](https://img.shields.io/github/v/release/sekacorn/CodeSummarizer-Windows?label=release)](https://github.com/sekacorn/CodeSummarizer-Windows/releases/latest) [![构建 Windows 发行版](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b77e30933a214400.svg)](https://github.com/sekacorn/CodeSummarizer-Windows/actions/workflows/release.yml) [![许可证](https://img.shields.io/github/license/sekacorn/CodeSummarizer-Windows)](LICENSE) [![平台](https://img.shields.io/badge/platform-Windows-0078D4?logo=windows)](#requirements) [![.NET 8](https://img.shields.io/badge/.NET-8.0-512BD4?logo=dotnet)](https://dotnet.microsoft.com/) Code Summarizer 是一款原生 Windows 桌面应用程序,用于借助本地 Ollama 模型来理解、审查 和验证源代码片段。该应用程序使用 C# 和 WPF 基于 .NET 8 构建,专为源代码 不得发送至互联网托管 AI 服务的本地优先工作流而设计。 该 Windows 应用程序是独立的:终端用户无需安装 .NET、 Python、Node.js 或 Rust。Ollama 和经批准的本地模型仍是独立的要求。 ## 截图 ### 已连接的工作区 ![Code Summarizer 连接到了本地 Ollama 模型](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/9f383bbd0e214406.jpg) ### 结构化代码分析 ![Code Summarizer 展示了结构化的 C++ 分析](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/cb5c747c5c214413.jpg) 截图展示了通用 Windows 配置。受限制的构建版本会显示 `RESTRICTED BUILD`,锁定敏感模式,禁用复制控件,并隐藏原始输出。 ## 功能说明 提供四种分析模式: - **总结** — 简明扼要的目的、流程、输入、输出及副作用。 - **面向初学者的解释** — 使用通俗易懂的语言进行详细讲解。 - **风险扫描** — 分类为高、中、低的安全和代码质量观察结果。 - **验证** — AI 引导的语法、类型和结构反馈,并在可用时提供具体位置。 结果从结构化 JSON 中解析,并显示在独立的总结、讲解、 输入、输出、副作用、风险、初级解释和置信度部分中。 验证由 AI 引导。它不能替代编译器、解析器、语言服务器、静态 分析器或正式的安全审查。 ## 支持的语言 ABAP、Ada、Assembly、Bash、C、C++、C#、COBOL、CSS、DAX、Delphi/Object Pascal、 Fortran、Go、Java、JavaScript、JSON、MATLAB、Pascal、PL/SQL、PowerShell、Python、 R、Rust、SAS、SQL、SystemVerilog、T-SQL、Terraform/HCL、TypeScript、VBA、VB.NET、 VHDL、Verilog、XML 和 XSLT。 语言支持为所选模型提供上下文。它不会安装或调用 相应的编译器或工具链。 ## 安全配置 | 能力 | 通用配置 | 受限评估配置 | |---|---:|---:| | Ollama endpoint 固定为 `127.0.0.1:11434` | 是 | 是 | | 敏感信息检测与掩码 | 用户可控 | 强制执行 | | 敏感模式 | 用户可控 | 编译期强制执行 | | 原始模型输出 | 可选显示 | 隐藏 | | 应用提供的剪贴板导出 | 在敏感模式外可用 | 禁用 | | Windows 屏幕捕获排除 | 在敏感模式下激活 | 必须;分析失败时自动关闭 | | 输入和响应安全限制 | 是 | 是 | | 构建标签 | `WINDOWS NATIVE` | `RESTRICTED BUILD` | 受限配置是 `publish.ps1` 默认生成的产物。它是一个经过强化的 评估候选方案——并非处理机密信息的授权。 ## 隐私与安全属性 - 应用程序的网络调用仅限于 `http://127.0.0.1:11434`。 - 不包含任何云 AI API、遥测客户端、分析 SDK、更新程序、账户系统、数据库、 远程监听器或插件加载器。 - 应用程序不会有意将粘贴的代码片段和模型结果写入磁盘。 - 常见的 AWS、JWT、bearer、PEM、GitHub、Google、API、Azure 存储和赋值式 凭据会被检测,并可在构建 prompt 前进行脱敏处理。 - 密钥警告使用掩码预览,而不是检测到的原始值。 - 输入、模型列表、模型响应、超时和显示的错误大小均有边界限制。 - 模型输出被视为不受信任的数据,被解析为 JSON,并呈现为无害文本。 隐私取决于完整的 endpoint。Windows 分页、崩溃转储、剪贴板 功能、endpoint 监控、Ollama 行为和模型存储需要单独审查。 正则表达式密钥检测已尽力而为,绝不能将其视为 粘贴凭据或不必要的敏感数据的许可。 ## 要求 ### 终端用户 - Windows 10 或 Windows 11,64 位 - 已安装并在本地运行 [Ollama](https://ollama.com/) - 至少安装了一个本地模型 模型设置示例: ``` ollama pull qwen2.5-coder:7b ollama list ``` 当系统 RAM 有限时,请使用更小的经批准模型。评估 受限构建版本的组织必须单独批准 Ollama 和每个模型构件。 ### 开发者 - Windows - .NET SDK `9.0.312`,由 `global.json` 指定版本 - 用于独立目标的 .NET 8 运行时包 - 可选:Inno Setup 6,用于创建 `Setup.exe` - 可选:Windows SDK `signtool.exe` 和组织批准的证书以进行签名 ## 从源码运行 ``` dotnet build CodeSummarizer.Windows.csproj dotnet run --project CodeSummarizer.Windows.csproj ``` 源码运行配置即为通用配置。在打开应用程序之前启动 Ollama, 以便加载模型列表。 ## 测试 该仓库包含一个无依赖的回归测试工具,用于测试脱敏、密钥 预览安全性、prompt 边界、支持语言的上下文、结构化解析以及 环回 endpoint 策略。 ``` dotnet run --project tests\CodeSummarizer.Windows.Tests.csproj -c Release ``` 发布构建会运行推荐的 .NET 分析器,并将警告视为错误。 ## 发布 创建默认的受限、独立 `win-x64` 软件包: ``` .\publish.ps1 ``` 创建通用软件包: ``` .\publish.ps1 -GeneralPurpose ``` 创建受限的 ARM64 软件包: ``` .\publish.ps1 -Runtime win-arm64 ``` 输出内容位于 `artifacts` 目录下,包括便携版 ZIP 文件和 SHA-256 文件。 当 Inno Setup 6 可用时,该脚本还会创建一个按用户安装的程序。终端用户 不需要 Inno Setup。 签名可以使用已受到 Windows 证书存储保护的证书: ``` .\publish.ps1 -CertificateThumbprint "ORGANIZATION_CERTIFICATE_THUMBPRINT" ``` 请勿将签名密钥或证书密码存储在此仓库中。 ## 审计证据 生成最新的受限构建版本和证据包: ``` .\audit.ps1 ``` 该证据包包含: - 安全回归测试结果 - Git 修订版本和已跟踪树状态 - 二进制和源代码 SHA-256 清单 - 受限构建的元数据和 Authenticode 状态 - SPDX 2.3 组件清单 - 架构、安全、隐私、威胁模型、部署和许可证文档 请从 [AUDIT_READINESS.md](AUDIT_READINESS.md) 开始评估,然后查阅 [SECURITY.md](SECURITY.md)、[THREAT_MODEL.md](THREAT_MODEL.md) 和 [DEPLOYMENT.md](DEPLOYMENT.md)。 操作型政府或机密部署仍需要组织批准的 签名、独立的扫描和审查、精确的 Ollama/模型哈希值、经过强化的 endpoint、 应用程序允许列表、选定的控制措施,以及 RMF/ATO 或同等的授权。 ## 架构 ``` User snippet -> input-size policy -> secret scan and optional/enforced redaction -> mode-specific prompt construction -> Ollama at 127.0.0.1:11434 -> bounded structured JSON response -> schema parsing -> inert local WPF display ``` 该应用程序没有第三方的运行时 NuGet 包。其运行时组件包括 独立的 Microsoft .NET 8 Windows 桌面运行时、Windows API 以及 单独安装的 Ollama/模型栈。有关安全边界和数据流,请参阅 [ARCHITECTURE.md](ARCHITECTURE.md)。 ## 仓库布局 ``` Models/ Structured analysis and secret-finding types Services/ Ollama, prompts, parsing, redaction, and security policy ViewModels/ WPF presentation state and commands tests/ Dependency-free security regression harness MainWindow.xaml Native Windows interface publish.ps1 Self-contained packaging and optional signing audit.ps1 Audit evidence and SPDX generation installer.iss Optional Inno Setup definition ``` ## 文档 - [架构](ARCHITECTURE.md) - [审计准备](AUDIT_READINESS.md) - [受限部署指南](DEPLOYMENT.md) - [隐私与数据处理](PRIVACY.md) - [安全策略](SECURITY.md) - [威胁模型](THREAT_MODEL.md) ## 许可证 Windows 版 Code Summarizer 采用 GPL-3.0-or-later 许可证。请参阅 [LICENSE](LICENSE)。
标签:AI合规, AI风险缓解, LLM评估, .NET 8, Ollama, Windows 桌面应用, WPF, 代码审查, 代码静态分析