Allgemeine Einführung
DeepWiki-Open ist ein Open-Source-Projekt zur automatischen Generierung strukturierter Dokumentation für Code-Repositories auf GitHub, GitLab und Bitbucket. Es nutzt KI-Technologie, um die Codestruktur, den Dateiinhalt und logische Beziehungen zu analysieren, um schnell eine Wissensdatenbank-Seite ähnlich wie bei Wikipedia zu erstellen. Benutzer müssen nur die URL des Repositorys eingeben und erhalten eine klare Beschreibung der Code-Architektur, der Funktionsmodule und der Implementierungsdetails. Das Projekt unterstützt den lokalen Einsatz mit lokal gespeicherten Daten zum Schutz der Privatsphäre und der Sicherheit. Es bietet auch eine Retrieval Augmented Generation (RAG)-Funktionalität, die es den Nutzern ermöglicht, kontextbezogene Fragen und Antworten zur Codebasis zu stellen und mit der DeepResearch-Funktionalität tiefer in komplexe Probleme einzudringen.DeepWiki-Open wurde von AsyncFuncAI entwickelt, ist kostenlos und quelloffen und eignet sich für Entwickler, Teams und die Open-Source-Community, um das schnelle Verständnis von komplexem Code zu fördern.
Funktionsliste
- Automatisierte Dokumentationserstellung: Analysieren Sie GitHub-, GitLab- oder Bitbucket-Repositories, um strukturierte Dokumentation im Wiki-Stil zu erstellen.
- Code Intelligence Analysis: Identifiziert die Codestruktur, Schlüsselmodule und Dateibeziehungen und liefert klare Beschreibungen.
- Kontextabhängige Fragen und Antworten: über RAG Technologie, die den Benutzern hilft, lagerbezogene Fragen zu stellen und genaue Antworten zu erhalten.
- DeepResearch-Funktion: unterstützt mehrere Rechercherunden, analysiert komplexe Sachverhalte in der Tiefe und liefert detaillierte Schlussfolgerungen.
- Unterstützung der lokalen Bereitstellung: Die Daten werden lokal gespeichert, es ist kein Cloud-Dienst erforderlich, der Datenschutz ist gewährleistet.
- Interaktive Diagramme: Generieren Sie Architekturdiagramme im Mermaid-Format und Flussdiagramme zur Visualisierung der Codelogik.
- Unterstützung mehrerer Plattformen: Kompatibel mit GitHub, GitLab und Bitbucket, unterstützt sowohl öffentliche als auch private Repositories.
- Streaming von KI-Antworten: über Google Zwillinge Das Modell ermöglicht die Erstellung von Dokumenten in Echtzeit und die Beantwortung von Fragen.
- Open Source Free: Vollständig quelloffen, die Nutzer können die Funktion frei verändern und erweitern.
Hilfe verwenden
Einbauverfahren
DeepWiki-Open unterstützt Docker und die manuelle Installation für Ubuntu, macOS oder Windows (über WSL2). Hier sind die detaillierten Schritte.
1. das Klonen von Lagern
Klonen Sie die DeepWiki-Open-Codebasis lokal:
git clone https://github.com/AsyncFuncAI/deepwiki-open.git
cd deepwiki-open
2. die Umgebungsvariablen konfigurieren
DeepWiki-Open benötigt Google Gemini und OpenAI API-Schlüssel für die Dokumentenerstellung und die Codeeinbettung. Erstellen Sie im Stammverzeichnis des Projekts die Datei .env
Dokumentation:
echo "GOOGLE_API_KEY=your_google_api_key" > .env
echo "OPENAI_API_KEY=your_openai_api_key" >> .env
GOOGLE_API_KEY
: Von Google AI Studio Wurde zur Verwendung im Google Gemini-Modell gewonnen.OPENAI_API_KEY
: Von OpenAI-Plattform Fetch zum Erzeugen von Codeeinbettungen.- Optionale Variablen:
PORT
API-Server-Port, Standard8001
.NEXT_PUBLIC_SERVER_BASE_URL
API-Server-Adresse, Standardhttp://localhost:8001
.
3. die Installation mit Docker (empfohlen)
Docker ist einfach zu installieren und eignet sich für eine schnelle Bereitstellung.
- Stellen Sie sicher, dass Docker und Docker Compose installiert sind.
- Führen Sie den folgenden Befehl aus, um den Dienst zu starten:
docker-compose up
- Oder Sie ziehen ein vorgefertigtes Image und führen es aus:
docker pull ghcr.io/asyncfuncai/deepwiki-open:latest
docker run -p 8001:8001 -p 3000:3000 \
-e GOOGLE_API_KEY=your_google_api_key \
-e OPENAI_API_KEY=your_openai_api_key \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latest
- Nach dem Start des Dienstes läuft die API auf dem
http://localhost:8001
Die Frontend-Seiten imhttp://localhost:3000
. - Es ist auch möglich, die
.env
Dokumentation:
docker run -p 8001:8001 -p 3000:3000 \
-v $(pwd)/.env:/app/.env \
-v ~/.adalflow:/root/.adalflow \
ghcr.io/asyncfuncai/deepwiki-open:latest
4. manuelle Installation
Wenn Sie nicht mit Docker arbeiten, können Sie es manuell installieren.
- Installieren Sie die Python-Abhängigkeiten (Backend):
pip install -r api/requirements.txt
- Starten Sie den API-Dienst:
python -m api.main
- Installieren Sie JavaScript-Abhängigkeiten (Frontend):
npm install
- Starten Sie den Front-End-Entwicklungsserver:
npm run dev
- Die Front-End-Seite befindet sich in der
http://localhost:3000
.
5. die Überprüfung der Installation
- Öffnen Sie Ihren Browser und besuchen Sie
http://localhost:3000
. - Geben Sie die Repository-URL ein (z. B.
https://github.com/facebook/react
vielleichthttps://bitbucket.org/redradish/atlassian_app_versions
). - Klicken Sie auf "Wiki generieren", um das generierte Dokument anzuzeigen.
Hauptfunktionen
Automatische Dokumentenerstellung
- Geben Sie die Repository-URL auf der Front-End-Seite ein (z. B.
https://gitlab.com/gitlab-org/gitlab
). - Für private Repositories klicken Sie auf "+ Zugriffstoken hinzufügen" und geben Ihr persönliches Zugriffstoken für GitHub, GitLab oder Bitbucket ein.
- Klicken Sie auf "Wiki generieren", das System klont das Repository und analysiert den Code, um die Dokumentation zu generieren.
- Die erstellte Dokumentation umfasst:
- Überblick über die Code-Architektur.
- Funktionsbeschreibung der wichtigsten Module.
- Detaillierte Beschreibungen von Dateien und Verzeichnissen.
- Interaktives Diagramm und Flussdiagramm der Mermaid-Architektur.
Kontextbezogene Fragen und Antworten (Ask-Funktion)
- Suchen Sie den Bereich "Fragen" auf der Seite Dokumentation.
- Geben Sie eine Frage ein wie "Wie ist die Datenbankverbindung für dieses Repository implementiert?". .
- Das System sucht mit Hilfe der RAG-Technik nach Codeschnipseln, um kontextbezogene Antworten zu generieren.
- Die Antworten werden in einem Streaming-Verfahren angezeigt, das eine Interaktion in Echtzeit ermöglicht.
DeepResearch-Funktionen
- Aktivieren Sie den Schalter "Tiefe Recherche" im Bildschirm "Fragen".
- Geben Sie komplexe Fragen wie "Wie kann der Authentifizierungsprozess für dieses Lager optimiert werden?" ein. .
- Systematische Durchführung von mehreren Forschungsrunden:
- Forschungsprogramm Generieren Sie den ersten Analyserahmen.
- Updates zur Forschung Iterative Analysen zur Ergänzung von Details.
- endgültige Schlussfolgerung Fassen Sie alle Informationen zusammen und geben Sie eine ausführliche Antwort.
- Der Forschungsprozess wurde bis zu fünfmal wiederholt und die Antworten wurden gestreamt.
Featured Function Bedienung
Streaming AI Antwort
- Die Erstellung von Dokumenten und die Antworten auf Fragen und Antworten werden in Echtzeit mithilfe von Google Gemini-Modellen angezeigt.
- Beispiel: Nach Eingabe einer Frage wird die Antwort absatzweise geladen, um die Wartezeit zu verkürzen.
Interaktive Meerjungfrauen-Karten
- Das System generiert ein Architekturdiagramm und ein Flussdiagramm des Lagers, basierend auf der Mermaid-Technologie.
- Diagramme unterstützen die Interaktionen Zoomen, Ziehen und Klicken.
- Beispiel: Nach der Erzeugung eines TensorFlow-Repository-Dokuments können Sie das Flussdiagramm für das Modelltraining sehen.
Unterstützung für private Repositories
- Ein persönliches Zugangstoken für GitHub, GitLab oder Bitbucket ist erforderlich.
- Das Token wird nur zum Klonen des Repositorys verwendet und nicht auf dem Server gespeichert.
- Beispiel: Geben Sie die URL des privaten Repository und das Token ein, um das Dokument zu erstellen.
Lokale Datenspeicherung
- Die Dokumentation und die Analysedaten werden in der
~/.adalflow
Verzeichnis (Docker kann es individuell mounten). - Keine Cloud-Abhängigkeit für datenschutzsensible Szenarien.
Struktur des Projekts
Die Codestruktur von DeepWiki-Open ist wie folgt:
deepwiki/
├── api/ # 后端 API 服务器
│ ├── main.py # API 入口
│ ├── api.py # FastAPI 实现
│ ├── rag.py # RAG 功能实现
│ ├── data_pipeline.py # 数据处理工具
│ └── requirements.txt # Python 依赖
├── src/ # 前端 Next.js 应用
│ ├── app/ # Next.js 页面
│ │ └── page.tsx # 主页面
│ └── components/ # React 组件
│ └── Mermaid.tsx # Mermaid 图表渲染
├── public/ # 静态资源
├── package.json # JavaScript 依赖
└── .env # 环境变量
caveat
- Stellen Sie sicher, dass der API-Schlüssel gültig ist; ein ungültiger Schlüssel führt dazu, dass die Generierung fehlschlägt.
- Für Docker-Bereitstellungen wird empfohlen, mehr als 4 GB Speicher zuzuweisen.
- Die manuelle Installation erfordert Python 3.8+ und Node.js 16+.
- Bei größeren Repositories kann die Erstellung der Dokumentation länger dauern, und es wird empfohlen, die Tests mit kleineren Repositories zu beginnen.
- Wenn CORS-Fehler auftreten, vergewissern Sie sich, dass das Front- und das Backend auf demselben Rechner laufen, oder passen Sie die
NEXT_PUBLIC_SERVER_BASE_URL
.
Anwendungsszenario
- Schnellstart für neue Entwickler
Neue Entwickler können eine Projektdokumentation erstellen, um die Codestruktur und die Modulfunktionalität schnell zu verstehen und die Lernkurve zu verkürzen. - Beitrag zum Open-Source-Projekt
Mitwirkende beherrschen die Logik des Repositorys schnell und verbessern die Effizienz der Codeeinreichung durch Dokumentations- und Frage- und Antwortfunktionen. - Interne Dokumentenpflege
Unternehmen setzen DeepWiki-Open ein, um Dokumentationen für private Repositories zu erstellen und so die manuellen Wartungskosten zu senken. - Vorbereitung auf technische Interviews
Die Kandidaten analysieren das Open-Source-Repository des Zielunternehmens, erstellen eine Dokumentation und vertiefen sich dann mit DeepResearch in die technischen Details. - Bildung und Lernen
Die Studierenden nutzen DeepWiki-Open, um bekannte Projekte (z. B. React, Django) zu analysieren und anhand von Diagrammen und Quizfragen etwas über Code-Design zu lernen.
QA
- Ist DeepWiki-Open kostenlos?
DeepWiki-Open ist völlig kostenlos und quelloffen, aber die Nutzer müssen API-Schlüssel für Google und OpenAI bereitstellen, und für die Nutzung der API können Kosten anfallen. - Welche Code-Hosting-Plattformen werden unterstützt?
Unterstützung für GitHub, GitLab und Bitbucket, sowohl für öffentliche als auch für private Repositories. - Wie exportiert man das erstellte Dokument?
Dokumente werden lokal gespeichert~/.adalflow
Die Datei kann manuell in Markdown oder andere Formate kopiert werden. - Was ist der Unterschied zwischen DeepResearch- und Ask-Funktionen?
Ask bietet ein einziges kontextbezogenes Quiz, und DeepResearch vertieft komplexe Probleme mit mehreren Iterationen. - Was ist, wenn die Dokumentenerstellung fehlschlägt?
Überprüfen Sie den API-Schlüssel, das Format der Repository-URL oder versuchen Sie ein kleineres Repository; prüfen Sie die Terminalprotokolle auf Fehlerdetails.