# weekly-report **Repository Path**: mgb/weekly-report ## Basic Information - **Project Name**: weekly-report - **Description**: weekly-report - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-19 - **Last Updated**: 2026-03-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # weekly-report 一个基于 Genkit 和 Gemini 模型的智能周报生成工具。 ## 项目概述 `weekly-report` 是一个自动化周报生成系统,它通过集成 Git 提交记录、本地文档(Markdown/Text)、Excel 数据,并利用 AI 模型(如 Gemini)进行内容理解和摘要,最终自动生成结构化的 Markdown 格式周报。 该项目特别适合需要定期撰写技术周报的开发者或团队,能够显著提升周报撰写的效率和质量。 详细的内容介绍全在微信公众号中。干货持续更新,敬请关注「代码扳手」微信公众号: image ## 核心功能 - **Git 提交摘要**: 自动读取指定仓库最近一周的提交记录,提取关键信息。 - **文档摘要**: 支持从本地 `.md`/`.txt` 文件或文件夹,以及在线 URL(如 Notion、Google Docs)中读取内容并生成摘要。 - **Excel 数据汇总**: 读取 Excel 文件中的数据,将其格式化为简洁的文本摘要。 - **AI 内容生成**: 使用 `genkit` 框架调用 Google AI 的 Gemini 模型,将收集到的信息整合并生成符合要求的周报内容(JSON 结构)。 - **Markdown 导出**: 将 AI 生成的周报结果自动导出为 Markdown 文件。 - **HTTP 服务**: 提供简单的 HTTP 接口 `/weekly` 来触发周报生成流程。 ## 技术栈 - **Go**: 项目主要开发语言。 - **[Genkit](https://github.com/firebase/genkit)**: Firebase 出品的 AI 应用开发框架,用于编排 AI 工作流、管理工具和模型调用。 - **[go-git/go-git](https://github.com/go-git/go-git)**: 纯 Go 实现的 Git 库,用于读取仓库信息。 - **[xuri/excelize](https://github.com/xuri/excelize)**: Go 语言 Excel 文件处理库。 - **Google AI (Gemini)**: 后端大语言模型,负责核心的内容生成任务。 ## 项目结构 ``` weekly-report/ ├── main.go # 程序入口,定义了主工作流和 HTTP 服务 ├── types/ │ └── report.go # 定义了输入输出的数据结构 (WeeklyInput, WeeklyReport) ├── tools/ │ ├── git_tool.go # 处理 Git 仓库信息 │ ├── doc_tool.go # 处理本地和在线文档 │ ├── excel_tool.go # 处理 Excel 文件 │ └── export_tool.go # 将结果导出为 Markdown └── README.md # 本文件 ``` ## 快速开始 1. **安装依赖**: ```bash go mod download ``` 2. **配置环境变量**: 确保已设置 `GOOGLE_AI_API_KEY` 环境变量。 3. **运行服务**: ```bash go run main.go ``` 4. **访问服务**: 服务启动后,默认监听 `:8080` 端口。可以通过 POST 请求向 `/weekly` 发送 `WeeklyInput` 格式的 JSON 数据来生成周报。 ## 配置与使用 在 `main.go` 中,`reportFlow` Flow 定义了生成周报的逻辑。你可以根据需要修改默认的文档路径(如 `./docs`)或调整提示词(prompt)以适应不同的写作风格。 ## 示例 运行后,程序会根据当前日期生成类似 `weekly_2025-11-04.md` 的文件,其内容结构如下: ```markdown # 本周周报(2025-11-04) ## 概述 ... ## 主要成果 - ... ## 问题与风险 - ... ## 下周计划 - ... ## 关键指标 ... ``` ## 许可证 MIT