Skip to content

OpenDeepWiki is the open-source version of the DeepWiki project, aiming to provide a powerful knowledge management and collaboration platform. The project is mainly developed using C# and TypeScript, supporting modular design, and is easy to expand and customize.

License

Notifications You must be signed in to change notification settings

AIDotNet/OpenDeepWiki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenDeepWiki

δΈ­ζ–‡ | English

OpenDeepWiki Logo

AI-Driven Code Knowledge Base


Sponsor

302.AI

302.AI is a pay-as-you-go enterprise-level AI application platform that provides an open platform and open-source ecosystem to help AI solve various needs. Click here to get $1 free credit!


Features

  • Quick Conversion: Supports converting all GitHub, GitLab, Gitee, Gitea and other code repositories into knowledge bases within minutes.
  • Multi-language Support: Supports code analysis and documentation generation for all programming languages.
  • Code Structure Diagrams: Automatically generates Mermaid diagrams to help understand code structure.
  • Custom Model Support: Supports custom models and custom APIs for flexible extension.
  • AI Intelligent Analysis: AI-based code analysis and code relationship understanding.
  • SEO Friendly: Generates SEO-friendly documentation and knowledge bases based on Next.js for easy search engine crawling.
  • Conversational Interaction: Supports conversations with AI to obtain detailed code information and usage methods for deep code understanding.

Feature List

  • Support multiple code repositories (GitHub, GitLab, Gitee, Gitea, etc.)
  • Support multiple programming languages (Python, Java, C#, JavaScript, etc.)
  • Support repository management (CRUD operations on repositories)
  • Support multiple AI providers (OpenAI, AzureOpenAI, Anthropic, etc.)
  • Support multiple databases (SQLite, PostgreSQL, SqlServer, MySQL, etc.)
  • Support multiple languages (Chinese, English, French, etc.)
  • Support uploading ZIP files and local files
  • Provide data fine-tuning platform to generate fine-tuning datasets
  • Support directory-level repository management with dynamic directory and document generation
  • Support repository directory modification management
  • Support user management (CRUD operations on users)
  • Support user permission management
  • Support repository-level generation of different fine-tuning framework datasets

Project Introduction

OpenDeepWiki is an open-source project inspired by DeepWiki, developed based on .NET 9 and Semantic Kernel. It aims to help developers better understand and utilize code repositories, providing features such as code analysis, documentation generation, and knowledge graph construction.

Main Features:

  • Analyze code structure
  • Understand repository core concepts
  • Generate code documentation
  • Automatically generate README.md for code
  • Support MCP (Model Context Protocol)

MCP Support

OpenDeepWiki supports the MCP protocol:

  • Can serve as a single repository MCPServer for repository analysis.

Example configuration:

{
  "mcpServers": {
    "OpenDeepWiki":{
      "url": "http://Your OpenDeepWiki service IP:port/sse?owner=AIDotNet&name=OpenDeepWiki"
    }
  }
}
  • owner: Repository organization or owner name
  • name: Repository name

After adding the repository, you can test by asking questions like "What is OpenDeepWiki?", with effects as shown below:

This way, OpenDeepWiki can serve as an MCPServer for other AI models to call, facilitating analysis and understanding of open-source projects.


πŸš€ Quick Start

  1. Clone the repository
git clone https://github.com/AIDotNet/OpenDeepWiki.git
cd OpenDeepWiki
  1. Modify environment variable configuration in docker-compose.yml:
  • OpenAI example:
services:
  koalawiki:
    environment:
      - KOALAWIKI_REPOSITORIES=/repositories
      - TASK_MAX_SIZE_PER_USER=5 # Maximum parallel document generation tasks per user for AI
      - CHAT_MODEL=DeepSeek-V3 # Model must support function calling
      - ANALYSIS_MODEL= # Analysis model for generating repository directory structure
      - CHAT_API_KEY= # Your API Key
      - LANGUAGE= # Default generation language, e.g., "Chinese"
      - ENDPOINT=https://api.token-ai.cn/v1
      - DB_TYPE=sqlite
      - MODEL_PROVIDER=OpenAI # Model provider, supports OpenAI, AzureOpenAI, Anthropic
      - DB_CONNECTION_STRING=Data Source=/data/KoalaWiki.db
      - EnableSmartFilter=true # Whether to enable smart filtering, affects AI's ability to get repository file directories
      - UPDATE_INTERVAL # Repository incremental update interval in days
      - MAX_FILE_LIMIT=100 # Maximum upload file limit in MB
      - DEEP_RESEARCH_MODEL= # Deep research model, if empty uses CHAT_MODEL
      - ENABLE_INCREMENTAL_UPDATE=true # Whether to enable incremental updates
      - ENABLE_CODED_DEPENDENCY_ANALYSIS=false # Whether to enable code dependency analysis, may affect code quality
      - ENABLE_WAREHOUSE_COMMIT=true # Whether to enable warehouse commit
      - ENABLE_FILE_COMMIT=true # Whether to enable file commit
      - REFINE_AND_ENHANCE_QUALITY=true # Whether to refine and enhance quality
      - ENABLE_WAREHOUSE_FUNCTION_PROMPT_TASK=true # Whether to enable warehouse function prompt task
      - ENABLE_WAREHOUSE_DESCRIPTION_TASK=true # Whether to enable warehouse description task
      - CATALOGUE_FORMAT=compact # Directory structure format (compact, json, pathlist, unix)
      - ENABLE_CODE_COMPRESSION=false # Whether to enable code compression
  • AzureOpenAI and Anthropic configurations are similar, only need to adjust ENDPOINT and MODEL_PROVIDER.

Database Configuration

SQLite (Default)

- DB_TYPE=sqlite
- DB_CONNECTION_STRING=Data Source=/data/KoalaWiki.db

PostgreSQL

- DB_TYPE=postgres
- DB_CONNECTION_STRING=Host=localhost;Database=KoalaWiki;Username=postgres;Password=password

SQL Server

- DB_TYPE=sqlserver
- DB_CONNECTION_STRING=Server=localhost;Database=KoalaWiki;Trusted_Connection=true;

MySQL

- DB_TYPE=mysql
- DB_CONNECTION_STRING=Server=localhost;Database=KoalaWiki;Uid=root;Pwd=password;
  1. Start services

Using Makefile commands:

# Build all Docker images
make build

# Start all services in background
make up

# Start in development mode (with visible logs)
make dev

Visit http://localhost:8090 to access the knowledge base page.

For Windows users without make environment, use Docker Compose directly:

docker-compose build
docker-compose up -d
docker-compose up
docker-compose down
docker-compose logs -f

Deployment Recommendations

  • Build for specific architecture:
docker-compose build --build-arg ARCH=arm64
docker-compose build --build-arg ARCH=amd64
  • Build only backend or frontend:
docker-compose build koalawiki
docker-compose build koalawiki-web
  • One-click deployment to Sealos (supports public network access):

Deploy on Sealos

For detailed steps, please refer to: One-click Sealos Deployment of OpenDeepWiki


πŸ” How It Works

OpenDeepWiki leverages AI to achieve:

  • Clone code repository locally
  • Read .gitignore configuration to ignore irrelevant files
  • Recursively scan directories to get all files and directories
  • Determine if file count exceeds threshold; if so, call AI model for intelligent directory filtering
  • Parse AI-returned directory JSON data
  • Generate or update README.md
  • Call AI model to generate repository classification information and project overview
  • Clean project analysis tag content and save project overview to database
  • Call AI to generate thinking directory (task list)
  • Recursively process directory tasks to generate document directory structure
  • Save directory structure to database
  • Process incomplete document tasks
  • If Git repository, clean old commit records, call AI to generate update log and save

OpenDeepWiki Repository Parsing to Documentation Detailed Flow Chart

graph TD
    A[Clone code repository] --> B[Read .gitignore configuration to ignore files]
    B --> C[Recursively scan directories to get all files and directories]
    C --> D{Does file count exceed threshold?}
    D -- No --> E[Directly return directory structure]
    D -- Yes --> F[Call AI model for intelligent directory structure filtering]
    F --> G[Parse AI-returned directory JSON data]
    E --> G
    G --> H[Generate or update README.md]
    H --> I[Call AI model to generate repository classification information]
    I --> J[Call AI model to generate project overview information]
    J --> K[Clean project analysis tag content]
    K --> L[Save project overview to database]
    L --> M[Call AI to generate thinking directory task list]
    M --> N[Recursively process directory tasks to generate DocumentCatalog]
    N --> O[Save directory structure to database]
    O --> P[Process incomplete document tasks]
    P --> Q{Is repository type Git?}
    Q -- Yes --> R[Clean old commit records]
    R --> S[Call AI to generate update log]
    S --> T[Save update log to database]
    Q -- No --> T
Loading

Advanced Configuration

Environment Variables

  • KOALAWIKI_REPOSITORIES: Repository storage path
  • TASK_MAX_SIZE_PER_USER: Maximum parallel document generation tasks per user for AI
  • CHAT_MODEL: Chat model (must support function calling)
  • ENDPOINT: API endpoint
  • ANALYSIS_MODEL: Analysis model for generating repository directory structure
  • CHAT_API_KEY: API key
  • LANGUAGE: Document generation language
  • DB_TYPE: Database type, supports sqlite, postgres, sqlserver, mysql (default: sqlite)
  • MODEL_PROVIDER: Model provider, default OpenAI, supports AzureOpenAI, Anthropic
  • DB_CONNECTION_STRING: Database connection string
  • EnableSmartFilter: Whether to enable smart filtering, affects AI's ability to get repository directories
  • UPDATE_INTERVAL: Repository incremental update interval (days)
  • MAX_FILE_LIMIT: Maximum upload file limit (MB)
  • DEEP_RESEARCH_MODEL: Deep research model, if empty uses CHAT_MODEL
  • ENABLE_INCREMENTAL_UPDATE: Whether to enable incremental updates
  • ENABLE_CODED_DEPENDENCY_ANALYSIS: Whether to enable code dependency analysis, may affect code quality
  • ENABLE_WAREHOUSE_COMMIT: Whether to enable warehouse commit
  • ENABLE_FILE_COMMIT: Whether to enable file commit
  • REFINE_AND_ENHANCE_QUALITY: Whether to refine and enhance quality
  • ENABLE_WAREHOUSE_FUNCTION_PROMPT_TASK: Whether to enable warehouse function prompt task
  • ENABLE_WAREHOUSE_DESCRIPTION_TASK: Whether to enable warehouse description task
  • CATALOGUE_FORMAT: Directory structure format (compact, json, pathlist, unix)
  • ENABLE_CODE_COMPRESSION: Whether to enable code compression

Build for Different Architectures

Makefile commands:

make build-arm    # ARM architecture
make build-amd    # AMD architecture
make build-backend-arm   # Backend only ARM
make build-frontend-amd  # Frontend only AMD

Community

  • Discord: join us
  • WeChat Official Account QR Code:

WeChat QR


πŸ“„ License

This project is licensed under the MIT License. See LICENSE for details.


⭐ Star History

Star History Chart

About

OpenDeepWiki is the open-source version of the DeepWiki project, aiming to provide a powerful knowledge management and collaboration platform. The project is mainly developed using C# and TypeScript, supporting modular design, and is easy to expand and customize.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 22