sekacorn/CodeSummarizer-Windows
GitHub: sekacorn/CodeSummarizer-Windows
一款原生 Windows 桌面应用,利用本地 Ollama 模型对多语言源代码进行离线总结、讲解和风险审查。
Stars: 0 | Forks: 0
# Windows 版 Code Summarizer
[](https://github.com/sekacorn/CodeSummarizer-Windows/releases/latest)
[](https://github.com/sekacorn/CodeSummarizer-Windows/actions/workflows/release.yml)
[](LICENSE)
[](#requirements)
[](https://dotnet.microsoft.com/)
Code Summarizer 是一款原生 Windows 桌面应用程序,用于借助本地 Ollama 模型来理解、审查
和验证源代码片段。该应用程序使用 C# 和 WPF 基于 .NET 8 构建,专为源代码
不得发送至互联网托管 AI 服务的本地优先工作流而设计。
该 Windows 应用程序是独立的:终端用户无需安装 .NET、
Python、Node.js 或 Rust。Ollama 和经批准的本地模型仍是独立的要求。
## 截图
### 已连接的工作区

### 结构化代码分析

截图展示了通用 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, 代码审查, 代码静态分析