Problem: Open-Source-Betreuer verbringen viel Zeit damit, doppelte/verwandte (Doppelgänger) Probleme zu verwalten und Anfragen zu ziehen
Lösung: Doppelgauer vergleicht neue Ausgaben/PRs mit vorhandenen, die automatisch doppelte/verwandte (doppelgänger) Probleme/PRs markieren
Themen: Vektor DB, GitHub, Open-Source, Einbettung von Suche, Lappen, Ähnlichkeitswerte
Diese Anwendung ist eine GitHub -App, die automatisch neu eröffnete Probleme mit vorhandenen, schließen und kommentieren, um sehr ähnliche Probleme zu verringern, um die Duplizierung zu verringern. Darüber hinaus kommentiert es Feedback zu PRs basierend auf dem Titel und der Beschreibung für Punkte.
Doppelgängerdokumentation
Jede issue['title'] und issue['body'] wird unter Verwendung von Minilm-L6-V2 in die Vektordarstellung umgewandelt.
Jeder Vektor ist in Chromadb bestehen und führt mithilfe der integrierten Kosinus-Ähnlichkeitssuche von Chromadb eine Ähnlichkeitssuche durch. Zusammen mit jedem Vektor werden issue_id und issue['title'] unter Verwendung von Chromadbs metadata gespeichert.
SIMILARITY_THRESHOLD (dh Distanz d in dem wir "ähnlich" betrachten) ist konfigurierbar und kann auf jede Dezimalstelle zwischen 0 und 1 eingestellt werden [1].
Der Doppelgänger wird jedes Problem schließen, wenn der Cosinus -Abstand d zwischen der neu eingereichten Ausgabe und dem ähnlichsten Problem größer ist als dieser Schwellenwert. Andernfalls hinterlässt ein hilfreicher Kommentar, das das ähnlichste/verwandte Problem angibt, einen hilfreichen Kommentar, wenn das neu eingereichte Problem größer ist als (Similarty_Threshold*0,5).
[1] Cosinus -Abstand
Probleme und Zuganfragen werden in Chromadb -Sammlungen pro Repository gespeichert.
Klonen Sie dieses Repository:
git clone https://github.com/dannyl1u/doppelganger.git
cd doppelganger
Abhängigkeiten installieren:
pip install -r requirements.txt
Führen Sie den folgenden Befehl in Ihrem Terminal aus, um eine neue .env -Datei zu erstellen:
cp .env.example .env Öffnen Sie die neu erstellte .env -Datei und aktualisieren Sie die folgenden Variablen mit Ihren eigenen Werten:
* APP_ID : Ersetzen Sie your_app_id_here durch Ihre tatsächliche App -ID.
* WEBHOOK_SECRET : Ersetzen Sie your_webhook_secret_here durch Ihr tatsächliches Webhook -Geheimnis.
* OLLAMA_MODEL : ersetzen Sie your_chosen_llm_model_here durch das ausgewählte LLM -Modell (z. B. "lama3.2"). Hinweis: Es muss sich um ein von Ollama unterstütztes Modell handeln (siehe: https://ollama.com/library für unterstützte Modelle)
* NGROK_DOMAIN : Ersetzen Sie your_ngrok_domain_here NGROK -Domäne, wenn Sie einen 4. Platzieren Sie den heruntergeladenen privaten Schlüssel in das Projektwurzel und nennen Sie es rsa.pem .
Starten Sie die Flask -Anwendung:
python3 app.pyDie Anwendung wird auf http: // localhost: 4000 ausgeführt
Wir werden NGROK für seine Einfachheit verwenden
Option 1: Starten Sie die öffentliche URL in einem neuen Terminalfenster, um NGROK zu erstellen, um einen sicheren Tunnel für Ihren lokalen Server zu erstellen:
ngrok http 4000Ngrok wird eine öffentliche URL generieren (z. B. https://abc123.ngrok.io)
Anhängen /webhook an die URL, z.
Starten Sie in einem anderen Terminalfenster Ollama
ollama run < an OLLAMA model here >Option 2: Verwenden Sie das Shell -Skript mit Ihrer eigenen NGROK -Domäne
Stellen Sie sicher, dass die Umgebungsvariablen alle festgelegt sind.
./run-dev.shNach der Installation wird die App automatisch:
Sie können den Ähnlichkeitsschwellenwert anpassen, indem Sie die Variable SIMILARITY_THRESHOLD im Skript ändern. Der Standard wird auf 0,5 gesetzt.
rsa.pem -Datei vorhanden und korrekt formatiert ist. Beiträge sind willkommen! Bitte zögern Sie nicht, eine Pull -Anfrage einzureichen.
Dieses Projekt ist unter der MIT -Lizenz lizenziert.