- FrogTeam.ai
Update v0.1.6: 13.10.2024
- Bessere Ereignisbehandlung zum Speichern von Eingabeaufforderungen und Setups
- >Wrapper-Eingabeaufforderung für dall-e-3
- Zusätzliche Eingabeaufforderung für den leitenden Architekten
Update v0.1.5: 01.10.2024
- Fügen Sie ein neues Teammitglied hinzu und machen Sie es zum Grafiker
- Wählen Sie das Modell dall-e-3
- Dies ist eine neue Funktion, es gibt keine Validierung und keine Anleitung
Prompt-Beispiel für den Einsatz eines Grafikers Ich habe meine Grafikerin Jenny genannt. Als ich beschrieb, was ich wollte, fügte ich auch Folgendes hinzu, um Jennys Einschränkungen zu erläutern und wie ich wollte, dass die leitende Architektin ihre Aufgaben erledigt. Bitten Sie Jenny unbedingt, Grafiken anzufertigen. Jennys Anweisungen müssen sehr konkret sein. Sie können sie jeweils nur bitten, jeweils eine Grafikdatei zu erstellen, und Sie können in der Eingabeaufforderung nur beschreiben, was sie erstellen soll. Eine Aufforderung an Jenny sollte kurz sein, zum Beispiel: „Erstelle mir eine kleine Symboldatei, die wie ein Frosch aussieht.“ Jenny gibt einfach den Pfad zu der von ihr erstellten Datei zurück. Sie müssen ihre Grenzen umgehen. Planen Sie als leitender Architekt zuerst, was Sie von Jenny benötigen, und sagen Sie dann den anderen, was sie mit dem machen sollen, was Sie von Jenny erschaffen haben!
Update v0.1.2: 09.08.2024
- NEUES WERKZEUG: Codesuche – Wenn Sie eine Änderung vornehmen möchten, die sich auf mehrere Dateien auswirken kann, gibt es ein neues Werkzeug, mit dem der LLM den Code der Lösung durchsuchen kann.
- Bessere Fehlerbehandlung bei Toolaufrufen
Update v0.1.1: 09.08.2024
- mlFLow-Experimente zum Verfolgen von Eingabeaufforderungen
- mlFLow-Konfiguration in .vscode/frogteam/config.json
- Frogteam-Dateien nach .vscode/frogteam/ verschoben
- Die Datei „projects.jsonb“ wurde korrigiert
- Gab den Status der Antwortregisterkarte an
Update v0.1.0: 09.07.2024
- mlFLow-Experimente bei der frühen Einrichtung von mlFlow funktionieren nur von localhost:5001
- Nachrichtenereignisse in der Webansicht wurden behoben
- Aktualisierte Mitglieder- und Eingabeaufforderungsbaumelemente
Aktualisierungen v0.0.19: 01.09.2024
Diese Version dient der Fehlerbehebung. Die Schaltflächen „Löschen“ und „Klonen“ wurden behoben. Fehlende Eingabeaufforderungskategorie behoben.
Beachten Sie außerdem: Eingabeaufforderungen können Platzhalter (*) für ihr Modell zugewiesen werden.
Updates v0.0.18: 30.08.2024 Suchen Sie im Änderungsprotokoll nach Einzelheiten. Dies ist ein wichtiger Schritt für die Neuordnung der Geschichte.
Aktualisierungen v0.0.17: 25.08.2024
- Befehle – ein Menüeintrag der obersten Ebene
- Änderungen der Verlaufshierarchie
- Gruppierung des Verlaufs umschalten (siehe „Befehle“)
- Übergeordnete/untergeordnete Elemente, aber ein flacher Baum
- Dies bedeutet, dass untergeordnete Elemente unter ihren übergeordneten Elementen und auch in der Wurzel des Baums angezeigt werden
- Reagieren Sie direkt auf Antworten
- Wenn es sich bei der Antwort um Markdown handelt, gibt es im Antwortbereich des Verlaufs die Schaltfläche „Hier antworten“.
- Bei Verwendung dieser Funktion wird der relevante unmittelbare Verlauf in die neue LLM-Interaktion einbezogen
- Der Builder erfasst nun einen Projektnamen und ein Verzeichnis
- Diese Informationen werden zum Formatieren von XML verwendet, das in der Eingabeaufforderung verwendet wird
- Dies sagt dem LLM genau, was es bekommt
- Systemansagen werden in zukünftigen Versionen angepasst
- Die nächste Version wird „Projektname“ in der Verlaufshierarchie verwenden
Aktualisierungen vom 14.08.2024:
- Azure OpenAI
- Aktualisieren Sie Axios aufgrund des Schwachstellenberichts
- Einige Hinweise zum Mitglieder-Setup-Panel hinzugefügt
Aktualisierungen vom 13.08.2024:
- Markieren von Verlaufseinträgen
- Aktualisierte Verlaufsanzeige
Als Nächstes werde ich ein neues Tool hinzufügen, das es dem LLM ermöglicht, den Verlauf nach Bedarf abzufragen. Ich denke auch darüber nach, wie ich es dem LLM ermöglichen kann, den Benutzer abzufragen. Wenn dieses Tool verwendet wird, wird die Konversation unterbrochen, bis der Benutzer antwortet. Dies ist eine Funktion, die der Benutzer möglicherweise deaktivieren möchte. Ich würde gerne ein Feedback dazu hören.
Aktualisierungen vom 08.10.2024:
- Der Lead Architect kann alle implementierten Modelle nutzen
- In der Statusleiste wurde die Statusanzeige „Frogteam“ hinzugefügt, wenn es sich um eine Projektausführung handelt, und „Mitgliedsname“, wenn es sich um eine gezielte Ausführung handelt.
- Es wurde ein Ausgabekanal namens „FrogTeam.ai“ hinzugefügt, der bei jedem Verlaufseintrag und bei anderen Ereignissen aktualisiert wird.
- Der Projektansicht wurden die Befehle „Neues Mitglied“ und „Eingabeaufforderung“ hinzugefügt, um diese Aktionen besser sichtbar zu machen.
- Fehlermeldung hinzugefügt, um Sie zu informieren, wenn ein Teammitglied keine abgestimmte Systemaufforderung hat.
- Neue Eingabeaufforderung zum Anfordern einer Aufgaben-/Projektzusammenfassung
- Platzhalter-Eingabeaufforderungen
- Importieren Sie neue Eingabeaufforderungen
- API-Schlüssel aus Umgebungsvariable
08.08.2024
Hallo, vielen Dank für Ihren Besuch. Ich habe beschlossen, das hier zu veröffentlichen. Es ist an einem schönen Ort, an dem es einige Funktionen gibt. Die Idee besteht darin, Teammitglieder zu schaffen, die durch einen bestimmten LLM repräsentiert werden. Sie können eine Vielzahl unterschiedlicher LLMs nutzen und im Laufe der Zeit wird sich die Art und Weise, wie Mitglieder ausgewählt werden und wie Zuweisungen vorgenommen werden, von dem rudimentären Zustand, in dem ich mich heute befinde, weiterentwickeln. Sie können AWS-Bedrock-Modelle und OpenAI-Modelle verwenden, und vorerst werde ich bei der LLM-Auswahl wahrscheinlich innerhalb dieser Grenzen bleiben: – Das Modell unterstützt Toolaufrufe – Das Modell und seine Toolaufruffunktion werden von Langchain unterstützt. Ich konzentriere mich derzeit auf einige UI-Funktionen Ich verbessere/verfeinere meine Tool-Aufrufkette. Ich hoffe, bald zu einer System-Prompt-Sharing-Funktion übergehen zu können und möchte RAG schließlich in lokale Vektoren integrieren. Ich hoffe, dass ich mich dann umdrehen und meine Erweiterung nutzen kann, um meine nächste mobile App zu entwickeln, was auch immer das sein mag.
Ich frage mich, ob es Appetit auf das gibt, was ich hier mache. Teilen Sie mir Ihre Gedanken mit.
Hier ist ein kurzes Demo-Video. Der leitende Architekt kann jetzt andere Modelle verwenden
Folge mir auf Instagram.
- - FrogTeam.ai
- Ihr virtuelles GenAI-Entwicklungsteam
- Fließen
- MLFlow-Integration
- Bekannte Probleme/Einschränkungen
- Aufgaben – Implementierung anderer Modellquellen
- Aufgaben – An Deck
- Aufgaben – Rückstand
- Beispiel-Benutzeraufforderungen
- Symbole
- So können Sie einen Beitrag leisten
- Einreichen von Problemen
Ihr virtuelles GenAI-Entwicklungsteam
Dies ist mein Nebenprojekt, mein Codeprojekt, das ich gerne schreibe und generiere.
Dabei handelt es sich um eine generative KI-Schnittstelle, über die Sie neue Modelle registrieren, Modelleinstellungen und Eingabeaufforderungen konfigurieren, (eventuell) mit Chroma-Einbettungen interagieren und über einen gemeinsamen Befehlssatz verfügen können, mit dem Sie mit Dateien im Arbeitsbereich und der Ausgabe interagieren können verschiedene LLMs. Sie registrieren „Teammitglieder“ und weisen ihnen ein Modell zu. Sie können dasselbe Modell mehrmals verwenden oder verschiedene Modelle verwenden. Sie können Teammitglieder mit der Zusammenarbeit an einer Aufgabe beauftragen.
Überblick
- Auftrag als leitender Architekt
- Der leitende Architekt wird das Projekt aufschlüsseln und anderen verfügbaren Mitgliedern eine Aufgabe zuweisen, die er für das Gesamtprojekt für angemessen hält.
- Nachdem alle Aufgaben erledigt sind, wird der leitende Architekt einen Blick darauf werfen
- Beheben Sie ein Problem, das es kann
- Fassen Sie die Gesamtlösung zusammen
- Einzelaufgabenzuweisungen
- Sie können einer Aufgabe @member werden
- Teammitglied hinzufügen/entfernen/bearbeiten
- Name
- Modell
- Grenzen (nicht implementiert)
- Prompt-Bibliothek
- Dies wird schließlich mit einem Git-Repo oder einem https-Endpunkt verknüpft, wo neue Eingabeaufforderungen verfügbar werden
- Dies ist als Community-Sharing-Plattform geplant
- Standardsatz
- Hinzufügen/Entfernen/Bearbeiten
- Tags: Modell, Zweck Geplante Befehle
- @TeamMember
Fließen
Sie müssen mindestens drei Mitglieder definieren: Lead-Architekt, Lead-Ingenieur und Entwickler
Öffnen Sie den Builder
Der „Builder“ befindet sich im Bereich „Projekt“.
Projektbeschreibung Beschreiben Sie, um welches Projekt es sich handelt. Seien Sie konkret und geben Sie alle Informationen an, die Sie möglicherweise haben. Codeausschnitte, Vorschläge zur Klassenhierarchie, Recherchen und Beispielreferenzen. Website-Referenzen für Bibliotheken, die Sie verwenden möchten usw. Wenn Sie auf „Projekt GO“ klicken
Leitender Architekt Der leitende Architekt schlüsselt das Projekt auf und
- Stellt jedem Mitglied eine Aufgabe zur Verfügung
Jedes Mitglied arbeitet bis zum Abschluss an seiner Aufgabe – wenn die Aufgabe abgeschlossen ist, werden die Informationen zu den Nachrichten hinzugefügt. Wenn alle Mitglieder ihre Aufgaben erledigt haben, erhält der leitende Architekt einen letzten Durchgang und fasst die geleistete Arbeit zusammen.
Sie können die Eingabeaufforderung verfeinern und erneut senden. Vorhandene Dateien werden verwendet und bearbeitet.
MLFlow-Integration
Derzeit sehr einfache Eingabeaufforderungs- und Dauerprotokollierung. Ich möchte eine Reihe von Lösungen mit jeweils einer bestimmten, vom Benutzer bereitgestellten Projektdefinition sammeln und dann eine Bewertungspipeline erstellen, um Systemaufforderungen anhand einer Reihe von Benutzeraufforderungen für jede Lösung zu bewerten. Ich möchte an einen Ort gelangen, an dem die Community Systemansagen beitragen kann, die für bestimmte Sprachen und Technologien optimiert sind. Um eine Systemaufforderung einzureichen, müssen Sie in der Lage sein, eine Evaluierungspipeline zu durchlaufen. Es wäre besonders cool, die gemeinsame Nutzung von Wissensvektoren/Einbettungen zu ermöglichen und eine Systemaufforderung auf einen spezifischeren Kontext zu stützen. Die Integration von MLFLow hier ist experimentell, aber ich stelle mir vor, eine Registerkarte „Test“ hinzuzufügen, auf der Testdaten verwendet und übermittelt werden können, sowie eine Registerkarte „Übermittlung“, auf der Eingabeaufforderungen übermittelt und verfolgt werden können.
Bekannte Probleme/Einschränkungen
- Validierung von Teammitgliedern für Eingabeaufforderungen. Verwenden Sie zunächst die Teamaufstellungsansicht, um manuell zu überprüfen, ob alle Mitglieder mit einer Systemeingabeaufforderung übereinstimmen. Wenn Folgendes angezeigt wird: TypeError: Eigenschaften von undefiniert können nicht gelesen werden (Inhalt wird gelesen), überprüfen Sie die Aufstellung. Wahrscheinlich hat jemand keine Eingabeaufforderung.
- Keine Tool-Aufrufvalidierung, daher wird die anfängliche Projektgenerierung manchmal nie abgeschlossen – Sie können es erneut versuchen
- Validierung/Wiederholungsversuch kommt
- Derzeit funktioniert dies nur direkt mit OpenAI oder AWs Bedrock
- Für OpenAI benötigen Sie einen API-Schlüssel
- Für AWS Bedrock müssen Sie in Ihrer VS-Code-Umgebung bei AWS angemeldet sein und die unterstützten Modelle müssen im richtigen Konto/in der richtigen Region bereitgestellt werden
- OpenAI auf Azure ist implementiert, aber ich gebe zu, dass ich es nicht getestet habe ( wenn es jemand versucht, lassen Sie es mich wissen )
Aufgaben – Implementierung anderer Modellquellen
- Im Moment bin ich auf der Suche nach Modellen, die Toolaufrufe mithilfe des Langchain-Frameworks unterstützen
- OpenAI von OpenAI
- gpt-4o fertig
- gpt-4-turbo fertig
- gpt-35-turbo fertig
- AWS-Grundgestein
- Anthropic Claude 3.5 Sonett fertig
- Anthropic Cluade 2 Haiku fertig
- OpenAI auf Azure
- gpt-4o muss getestet werden
- gpt-4-turbo muss getestet werden
- gpt-35-turbo muss getestet werden
- Umarmendes Gesicht
- Gibt es eine Standardmethode, mit der ich das machen kann? Das ist für mich eine Forschungsaufgabe.
Aufgaben – An Deck
- Erstellen Sie ein Tool für den LLM, das eine Codesuche durchführt, z. B. verwenden Sie einfach die Suche von vscode, um Dinge in Dateien zu finden, die das Suchen/Ersetzen von LLM ermöglichen
- mlflow
- Versuchsaufbau
- Sie können ein neues Experiment starten und die Experiment-ID wird gespeichert, sobald das Eingabeaufforderungsobjekt abgeschlossen ist
- Orte, an denen die Eingabeaufforderung verwendet wird, werden ausgeführt, und die Eingabeaufforderung und die Dauer werden protokolliert
- Sie können ein Experiment stoppen, indem Sie die durchgeführte Experiment-ID löschen
SYSTEMPROMPT Manchmal enthält eine große Datei nur einen Kommentar, der besagt, dass der Rest unverändert bleibt und dem Benutzer Git-Befehle zur Verfügung stehen, um das Problem zu beheben. Dieser nächste Satz muss zu den Systemprompts hinzugefügt werden. „Denken Sie daran, dass es sich hierbei um „Live“-Lösungsdateien handelt. Sie müssen die gesamte Datei ausgeben. Wenn Sie Dinge wie „Der Rest dieses Codes bleibt unverändert“ sagen, ist die Datei unvollständig. Tun Sie das nicht.“ VORERST HABE ICH DIE BESCHREIBUNG DES saveContentToFileApi-TOOLS HINZUGEFÜGT
Wir benötigen eine Möglichkeit, Markdown einfacher zu exportieren. Der Benutzer sollte in der Lage sein, auf das Symbol „Kopieren“ zu klicken, um die Markdown-Antwort zu kopieren.
Erstellen Sie ein neues Tool, mit dem der LLM den Abruf des Inhalts einer URL anfordern kann. Wenn es sich um ein Bild handelt, sollten wir es auch mit Base64 versehen
- Sollte dies für Chunk/Vectorize/RAG gelten?
Fügen Sie try...catch/check für die Länge hinzu, bei der .content aus der LLM-Antwort verwendet wird
Try...Catch für Tool-Aufrufe hinzugefügt und Fehler im Verlauf protokolliert
Konfiguration für ein Zeit- oder Token-Limit durch Modell/Teammitglied
- Implementieren Sie Token-Limits/Zeitlimits für Teammitglieder/Token-Limits für Anfragen
- Dies erfordert eine Nachverfolgung
- Der leitende Architekt muss sich dieser Einschränkungen bei der Vergabe von Aufträgen bewusst sein
- Stellen Sie die Temperatur und andere Einstellungen für das Teammitglied ein
FEHLER: Wenn Sie ein Mitglied bitten, eine Aufgabe auszuführen, ist die Zusammenfassung manchmal überflüssig.
FEHLER: Manchmal sind die ToolCall-Definitionen oder -Ergebnisse fehlerhaft und der Prozess führt zu Fehlern
- Vielleicht versuchen Sie einfach, den Verlauf abzufangen und zu melden/protokollieren/hinzufügen, was passiert ist? Erledigt
- Zu diesem Zeitpunkt kann der Benutzer einfach erneut versuchen, auf „Los“ zu klicken
- Ein
- 0y Fix muss sich mit den Konversationsregeln befassen
Aufgaben – Rückstand
- Tool „Frag den Menschen“ – Erstellen Sie ein Tool, mit dem jedes Teammitglied (einschließlich des leitenden Architekten) eine an den Menschen gerichtete Frage stellen kann
- Dies kann im Verlauf angezeigt werden, führt jedoch dazu, dass der gesamte Aufgabenthread wartet
- Das Dokument sollte mit der angezeigten Frage geöffnet werden
- Wenn Sie im Verlauf darauf klicken, wird das Dokument geöffnet
- Das Dokument verfügt über den Status der Kette, sodass der Mensch antworten und die Kette fortsetzen kann
- Git-Integration
- zuerst verpflichten
- zuerst verzweigen
- begehen
- Zuerst verstauen
- PR-Generierung
- Prompt-Bibliotheksfreigabeplattform – MLFlow stärker nutzen
- Erstellen Sie Datenfelder, um „goldene“ Lösungen für bestimmte Benutzeranforderungen unterzubringen
- Erstellen Sie eine Pipeline, um „System“-Eingabeaufforderungen anhand der goldenen Lösungen zu bewerten
- Führen Sie einen zeitnahen Einreichungsprozess durch
- Chromadb-Instanz hinzufügen (optional?)
- On-Demand-Web-Crawl, der in lokalen Chroma-Dateien fragmentiert und speichert
- URL/Internet oder lokaler Disc-Inhalt
- Dateitypbasiert
- Implementieren Sie eine Chunking-Strategie für die Codebasis der Lösungen
- Implementieren Sie eine Chunking-Strategie für den Verlauf
- Implementieren Sie eine Chunking-Strategie für die Projektdokumentation
- Implementieren Sie den Suchverlauf/die Codesuche
- Richten Sie eine Warteschlange ein, um Anfragen zu verarbeiten (damit der Benutzer Aufgaben in die Warteschlange stellen kann, während der Betrieb läuft).
- Verarbeiten Sie jeweils nur ein Element
- In der Geschichte
- ein Symbol für Inhalt vs. Funktionsantwort
- Erfolg/Misserfolg anzeigen (grünes Häkchen vs. rotes X)
- Können wir angeben, wann Dateiinhalt vorhanden ist und wann nicht (gibt es einen Konflikt mit Markdown?)
- Manchmal wurde eine Datei noch nicht erstellt und das ist in Ordnung
Beispiel-Benutzeraufforderungen
Schreiben Sie mir eine einfache Webseite, die eine Leinwand verwendet, um einen Ball zu zeichnen und ihn an den Rändern der Leinwand herumhüpfen zu lassen. Bitte teilen Sie das Projekt in mehrere Dateien auf: index.html, index.js und index.css. Legen Sie die Dateien in einem Verzeichnis namens bounce-ball ab. Dies ist nur der Ausgangspunkt für das Projekt. Denken Sie also daran, dass wir nach Verbesserungen fragen werden.
Erstellen Sie mir eine einseitige App, die Wegbeschreibungen von der Stelle, an der sich der Webbrowser vermutet, bis zum nächstgelegenen Bahnhof anzeigt.
Mit der webbasierten Kartierung von OpenStreetMap simulieren Sie die Verfolgung einer Luftmarkierung, während sie sich bewegt. von: Punkt A -> 1 Gray Rock Place, Stamford CT nach: Punkt B -> Cove Island Park, Stamford, CT
- Erstellen Sie dazu Fahrtrichtungen zwischen diesen beiden Orten und zeigen Sie dann einen Punkt an, der sich im Laufe der Zeit entlang dieser Richtungen bewegt
- Alle Dateien sollten im Verzeichnis „tracking“ erstellt/bearbeitet werden
- Ich gehe davon aus, dass ich index.html mithilfe der LiveServer VS Code-Erweiterung aus dem Tracking-Verzeichnis öffnen kann und wenn ich das tue, erwarte ich, dass eine Karte mit den von mir genannten Standorten angezeigt wird.
Verwenden Sie einen HTML-Canvas, um ein Paddle-Tenis-Spiel zu erstellen, bei dem Sie einen rechteckigen Block mit der linken und rechten Pfeiltaste hin und her bewegen können. Du schlägst den Ball, er geht nach oben, trifft die Spitze und kommt zurück. Wenn Sie verfehlen und der Ball die untere Wand berührt, verlieren Sie einen Punkt. Wenn Sie den Ball treffen, erhalten Sie 2 Punkte.
Schreiben Sie ein Puzzlespiel für HTML Canvas. Es sollte eine Auswahl von Formen enthalten, die sich bewegen. Wenn Sie darauf klicken, wird eine Form fixiert, und wenn Sie auf eine ausgewählte Form klicken, dreht sich die Form. Nachdem der Benutzer drei Formen ausgewählt hat, beginnen die Formen über den Leinwandbereich zu fallen. Der Benutzer muss drei Formen dazu bringen, sich zu verriegeln, um eine weitere Form zu bilden, bevor er den Boden erreicht. Wenn zwei Formen verriegelt sind, verlangsamt sich möglicherweise die Fallgeschwindigkeit. Der Benutzer tut dies, indem er auf die Formen klickt, um sie zu drehen.
Symbole
Alle Symbole, die Sie sehen, stammen entweder aus der Liste unten, ich habe sie erstellt oder GenAI hat mir bei der Erstellung geholfen. Lizenzdateien werden im Ressourcenverzeichnis gespeichert und verteilt.
- https://iconduck.com/sets/elementary-icon-set
- https://iconduck.com/sets/open-iconic-icon-set
- https://iconduck.com/sets/font-awesome-icons
- https://iconduck.com/sets/material-design-icons
So können Sie einen Beitrag leisten
Ich freue mich über Ihr Interesse, zu diesem Projekt beizutragen. Allerdings akzeptiere ich derzeit keine direkten Beiträge wie Pull-Requests. Stattdessen empfehle ich Ihnen, Probleme einzureichen, wenn Sie Fehler finden, Funktionswünsche haben oder Hilfe benötigen.
Einreichen von Problemen
Um ein Problem einzureichen, verwenden Sie bitte die GitHub-Problemfunktion. Beschreiben Sie Ihr Problem ausführlich. Ich werde es so schnell wie möglich beheben.
Vielen Dank für Ihr Verständnis und Ihre Unterstützung!