LLM Flow ist ein Web -Tool, das den Prozess der KI -Entwicklung erleichtert, beginnt mit der Definition isolierter KI -Anwendungsfälle (KI -Funktionen), der Implementierung von Eingabeaufforderungen, der Beurteilung und Verbesserung der sofortigen Qualität und der Generierung von APIs, um KI -Funktionen in Ihre eigenen Anwendungen zu integrieren.
Erforschen Sie die Funktionen »
(zurück nach oben)
(zurück nach oben)
Das Projekt ist in drei Dienste unterteilt, die alle einzeln eingerichtet werden müssen:
server : Fastapi Backendpromptfoo-server : express.js Backend, das promptfoo ausführtclient : Next.js Frontend(zurück nach oben)
Verwenden Sie das Docker -Setup, wenn Sie die Anwendung einfach ohne viel Aufwand ausführen möchten. Für die lokale Entwicklung beziehen Sie sich auf das lokale Setup.
Voraussetzungen:
So einrichten:
Für den server und client erstellen Sie eine .env.docker -Datei in den jeweiligen Root -Ordnern, indem Sie die Datei .env.docker.template kopieren und umbenennen. Für die promptfoo-server erstellen Sie eine .env Datei aus der Datei .env.template . Ersetzen Sie die Geheimnisse aus den Vorlagen durch Ihre eigenen.
Führen Sie im Root -Ordner diese beiden Befehle aus:
docker compose build
docker compose up -d
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(zurück nach oben)
Voraussetzungen:
Sie können auch eine andere Knotenversion verwenden. Ich habe das Setup jedoch nur mit Knoten 22 getestet.
So einrichten:
Für alle drei Dienste erstellen Sie eine .env -Datei in ihren jeweiligen Stammordnern, indem Sie die Datei .env.template kopieren und umbenennen. Ersetzen Sie die Geheimnisse in den Vorlagen durch Ihre eigenen.
Im Stammordnerlauf:
docker compose up mongo -d
backend beginnen Um das backend auszuführen, können Sie den VS -Code -Debugger verwenden, um ihn zu starten oder Folgendes im backend -Ordner auszuführen:
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server Im Ordner " promptfoo-server :
npm install
npm run start
client starten: Im client -Ordnerlauf:
npm install
npm run dev
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(zurück nach oben)
Wenn Sie das Projekt entwickeln möchten, stellen Sie sicher, dass Sie zuerst das lokale Setup durchlaufen.
Voraussetzungen:
Hier sind einige nützliche Befehle, die Sie während der Entwicklung verwenden sollten:
pre-commit run --all-files
sh generate_client_bindings.sh
Im client -Ordnerlauf:
npm run lint
npm run pretty
(zurück nach oben)
KI -Funktionen stellen Verträge zwischen Ihrer eigenen Geschäftslogik und einem LLM -Anbieter dar. Sie übergeben eine Reihe von Parametern an sie und sie geben eine strukturierte Ausgabe zurück.
In der Weboberfläche können Sie eine KI -Funktion definieren. Sie definieren seinen Namen, geben ihm eine Beschreibung, definieren die Parameter, die es akzeptiert, und wählen die Anbieter aus, die sie verwenden kann:
Sie definieren auch, ob die Funktion eine einfache unstrukturierte String -Antwort oder eine strukturierte JSON -Antwort zurückgibt. Für letztere können Sie komplexe JSON -Objekte mit einem JSON -Schema -Editor definieren.
Um die Qualität der Eingabeaufforderungen einer KI -Funktion zu bewerten, können Sie Behauptungen und Testfälle definieren. Behauptungen werden verwendet, um mit den erwarteten Werten oder Bedingungen zu vergleichen. Diese Funktion verwendet promptfoo unter der Motorhaube. Es gibt verschiedene Auswahltypen zur Auswahl, von einfachen Vergleiche über komplexe Regex -Muster und sogar solche, die selbst definierte Python- oder JavaScript -Code verwenden, die benutzerdefinierte und potenziell komplexe Assertion -Logiken definieren können.
Testfälle beziehen sich auf Beispieldaten für die Parameter einer KI -Funktion. Sie spielen eine wesentliche Rolle bei der Annahme der sofortigen Qualität. Nach der Definition einer Aufforderung wird sie anhand der Testfälle mit den in der AI -Funktion definierten Behauptungen bewertet. Sie können auch Behauptungen definieren, die nur auf einen einzelnen Testfall angewendet werden. Es gibt sogar ein Merkmal, wie KI Testfälle basierend auf den zuvor definierten Testfällen sowie den Namen und die Beschreibung der KI -Funktion erstellen.
Für einen Start können Sie einfach eine KI -Funktion aus einem der bereitgestellten Beispiele erstellen:
(zurück nach oben)
In LLM werden Flussaufforderungen im Kontext von AI -Funktionen definiert. Sie müssen die Parameter der jeweiligen KI -Funktion in ihrem Körper enthalten und anhand der Testfälle und Behauptungen bewertet.
Eingabeaufforderungen werden für jeden unter der AI -Funktion angegebenen Anbieter ausgewertet. Dies ermöglicht es, die Qualität einer Eingabeaufforderung über verschiedene Anbieter hinweg zu vergleichen. Während der Bewertung werden drei Metriken berechnet:
(zurück nach oben)
Projekte sind eine Möglichkeit, eine API zu erstellen, über die Sie verschiedene KI -Funktionen aufrufen können. In der Webschnittstelle wird für jedes Projekt ein benutzerdefiniertes Swagger -Dokument erstellt, mit dem Sie die API im Client selbst testen können. Sie können auch die OpenAPI-Spezifikation exportieren, um Ihre eigenen Clientbindungen mit Codegeneratoren wie OpenAPI-Generator zu generieren.
Die API -Dokumente werden automatisch mit dem Namen, der Beschreibung und den Parametern der ausgewählten AI -Funktionen besiedelt und enthalten einen der definierten Testfälle als Beispiel. Jede KI -Funktion im Projekt wird seinen eigenen Endpunkt zugewiesen.
Auf diese Weise können Sie KI -Funktionen in den LLM Flow in Ihre eigenen Anwendungen integrieren. Sobald ein Projekt erstellt wurde, müssen Sie den Kunden nicht unbedingt ausführen, um seine Endpunkte aufzurufen. Hier ist die Demo, wie Sie Projekte erstellen und verwenden können:
(zurück nach oben)
Wenn Sie einen Vorschlag haben, der dies besser machen würde, geben Sie bitte das Repo und erstellen Sie eine Pull -Anfrage. Sie können auch einfach ein Problem mit dem Tag "Verbesserung" eröffnen. Vergessen Sie nicht, dem Projekt einen Stern zu geben! Danke noch einmal!
git checkout -b feature/AmazingFeature ).git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(zurück nach oben)
Unter der MIT -Lizenz verteilt. Weitere Informationen finden Sie LICENSE.txt .
(zurück nach oben)
Amir Mohammad - [email protected]
Projektlink: https://github.com/amir-mo1999/llmflow
(zurück nach oben)