Artikelbild für den Artikel: Automatisierte Problemlösung mit SWE-Factory: Datenpipelines für GitHub-Issues

Automatisierte Problemlösung mit SWE-Factory: Datenpipelines für GitHub-Issues

SWE-Factory bietet automatisierte Trainings- und Evaluationspipelines für die Lösung von GitHub-Issues, unterstützt durch LLM-basierte Multi-Agenten-Systeme.

Einführung in SWE-Factory

In der heutigen Softwareentwicklung sind effiziente Problemlösungsmechanismen unerlässlich. SWE-Factory stellt eine innovative Lösung bereit, die es Entwicklern ermöglicht, GitHub-Issues automatisiert zu bearbeiten. Durch den Einsatz von LLM-basierten Multi-Agenten-Systemen wird der Prozess der Datensammlung und -bewertung erheblich vereinfacht und beschleunigt.

Hauptmerkmale von SWE-Factory

  • Automatisierte Pipeline: Die Sammlung von Daten zu GitHub-Issues erfolgt automatisch, wodurch der manuelle Aufwand minimiert wird.
  • Docker-basierte Evaluationsumgebungen: SWE-Factory ermöglicht die Erstellung zuverlässiger und reproduzierbarer Evaluationsumgebungen, die auf Docker basieren.
  • Unterstützung mehrerer Programmiersprachen: Die Lösung wurde umfassend für Python, Java, JavaScript und TypeScript evaluiert.

Umgebungseinrichtung

Um mit SWE-Factory zu beginnen, müssen Sie zunächst die Umgebung einrichten. Dies geschieht durch die Ausführung der folgenden Befehle:

conda create --name swe-factory python=3.12.5 -y
conda activate swe-factory
pip install -r requirements.txt

Phasen der SWE-Factory

Phase I: Rohdaten Sammlung

Die Sammlung der Rohdaten erfolgt über die GitHub APIs und vordefinierte Muster. Eine detaillierte Anleitung finden Sie im Verzeichnis data_collection.

Phase II: Automatisierte Evaluierung mit SWE-Builder

Nach der Datensammlung wird die Evaluationsumgebung eingerichtet. Hierzu müssen Umgebungsvariablen gesetzt und ein Python-Skript ausgeführt werden:

export OPENAI_API_BASE_URL=
export OPENAI_KEY=
python app/main.py swe-bench \
 --model gpt-4.1-mini \
 --tasks-map "python-mypy-instances.jsonl" \
 --num-processes 10 \
 --model-temperature 0.2 \
 --conv-round-limit 10 \
 --output-dir "output/git-4.1-mini/mypy" \
 --setup-dir "testbed" \
 --results-path "output/git-4.1-mini/mypy/results"

Der SWE-Builder ist ein LLM-basiertes Multi-Agenten-System, das verschiedene Aufgaben übernimmt:

  • Repository Explorer: Sammelt automatisch Umgebungs- und Testbefehle.
  • Environment Manager: Generiert Dockerfiles für reproduzierbare Testumgebungen.
  • Test Manager: Schreibt Evaluierungsskripte für Tests innerhalb von Containern.
  • Test Analyst: Validiert generierte Umgebungen und orchestriert iterative Verfeinerungen.
  • Evaluation Environment Memory Pool: Wiederverwendet zuvor erfolgreiche Setups für Effizienz und Konsistenz.

Phase III: Fail2Pass Validierung

Nach der Erstellung der Evaluierungsumgebungen erfolgt die Fail2Pass-Validierung. Hierbei werden Testprotokolle vor und nach der Anwendung des Ground-Truth-Patches überprüft. Eine detaillierte Anleitung finden Sie im Verzeichnis evaluation.

Ergebnisse der SWE-Builder Evaluierung

Die Evaluierung von SWE-Builder wurde mit drei Basis-Modellen durchgeführt:

Basis-Modell Gültigkeitsrate (%) Erfolgsquote (%) Kosten (USD) Zeit (min)
GPT-4.1-mini 40.1 (269/671) 57.2 (384/671) 0.045 22.4
DeepSeek-v3-0324 34.6 (232/671) 50.8 (341/671) 0.043 22.5
Gemini-2.5-flash-preview 33.5 (225/671) 49.8 (334/671) 0.024 27.0

Verwendung eigener Datensätze

Nach dem Aufbau Ihres eigenen Datensatzes für Evaluierung und Training, finden Sie im Verzeichnis evaluation detaillierte Anweisungen, wie Sie Tests durchführen und Feedback zur Testausführung erhalten können.

Fazit

SWE-Factory revolutioniert die Art und Weise, wie Entwickler mit GitHub-Issues umgehen. Durch die Automatisierung der Datensammlung und Evaluierung wird nicht nur Zeit gespart, sondern auch die Qualität der Problemlösungen verbessert. Die Unterstützung mehrerer Programmiersprachen und die Verwendung moderner Technologien machen SWE-Factory zu einem unverzichtbaren Werkzeug für Softwareentwickler.

Quellenliste:

Dieser Artikel wurde mithilfe von KI verfasst und basiert auf automatisch gesammelten Informationen.
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar