# OpenDeepWiki
**Repository Path**: q923666487/OpenDeepWiki
## Basic Information
- **Project Name**: OpenDeepWiki
- **Description**: No description available
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2025-05-06
- **Last Updated**: 2025-05-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenDeepWiki
AI驱动的代码知识库
# 项目介绍
OpenDeepWiki 是一个基于 AI 驱动的代码知识库平台,旨在自动分析代码仓库并生成详细可视化文档,帮助团队成员快速理解项目结构与实现原理。
- 目标:
- 为新成员提供快速上手文档
- 为维护者梳理项目逻辑
- 为开发团队提供智能化代码洞见
- 核心受众:
- 后端/前端开发者
- 项目架构师
- 技术文档编写者
# 技术架构
## 组件拆解
- 前端(Next.js + React + Ant Design + TypeScript)
- 后端(.NET 9 + FastService API + Semantic Kernel + EF Core + SQLite/PostgreSQL)
- 数据存储(SQLite 或 PostgreSQL,可动态切换)
- AI 服务层(基于 OpenAI 等模型的代码分析插件)
## 设计模式
- 依赖注入(ASP.NET Core DI)
- 仓储模式(通过 `WarehouseStore` 管理分析任务)
- 托管服务(`WarehouseTask` 用于后台任务调度)
- 插件化架构(CodeAnalysis 插件目录)
## 系统关系与数据流
```mermaid
flowchart TD
Client[浏览器] -->|HTTP/REST| API[FastService API]
API -->|调用服务| Biz[业务逻辑层]
Biz -->|访问| Db[EF Core DbContext]
Db --> E[(SQLite/PostgreSQL)]
Biz -->|触发| AI[AI 分析插件]
AI -->|返回| Biz
```
# 实现细节
## 1. 主入口程序
`Program.cs` 配置了日志、DI、数据库上下文及 OpenAPI 接口。
```csharp
var builder = WebApplication.CreateBuilder(args);
Log.Logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();
builder.Services.AddSerilog(Log.Logger);
builder.Services.AddOpenApi().WithFast();
builder.Services.AddSingleton();
builder.Services.AddHostedService();
// 根据配置选择 Sqlite 或 PostgreSQL
if (builder.Configuration.GetConnectionString("type")?.Equals("postgres", StringComparison.OrdinalIgnoreCase) == true)
builder.Services.AddPostgreSQLDbContext(...);
else
builder.Services.AddSqliteDbContext(...);
var app = builder.Build();
await dbContext.RunMigrateAsync();
app.UseCors("AllowAll");
app.MapFast();
app.Run();
```
Sources:
- [Program.cs](https://github.com/AIDotNet/OpenDeepWiki/blob/master/src/OpenDeepWiki/Program.cs#L1-L40)