Macht den Zugriff auf KI einfacher und effizienter
简体中文 · Englisch
Vine gewählt haben Dieses Projekt ist Teil des Nvwa -Projekts und repräsentiert Nuwa's vine .
In der alten chinesischen Mythologie ist NVWA die Göttin der Schöpfung. Es wird gesagt, dass sie den Schlamm aus dem gelben Fluss benutzte, um Menschen in ihrem Bild zu erstellen und ihnen mit ihren göttlichen Kräften ein Leben zu machen.
Das riesige Land der Welt der Prozess langsam und Nvwa wurde erschöpft. Dann zog sie eine getrocknete Rebe aus einer Klippe, tauchte sie in den Schlamm und warf sie über den Boden. Wo immer der Schlamm spritzte, sprangen Menschen auf. Es dauerte nicht lange, bis die Erde von Menschen erfüllt war.
So wie die Rebe die Effizienz von Nvwa bei der Schaffung von Menschen stark verstärkte, soll das Vine -Projekt Entwicklern helfen, KI -Interaktionsanwendungen effizienter aufzubauen.
Beim Erstellen von AI -Interaktionsanwendungen müssen wir häufig die Benutzereingaben verarbeiten, entsprechende Ausgänge generieren und die Ergebnisse verarbeiten.
Für einfache Aufgaben können wir Schnellvorlagen verwenden, um die erforderlichen Eingabeaufforderungen zu generieren. In komplexeren Szenarien müssen wir jedoch möglicherweise detaillierte Eingabeaufforderungen basierend auf Eingaben, Kontext, Gesprächen und Informationen erstellen, die über LAG (Abrufen-Generation) abgerufen werden. Darüber hinaus benötigen wir möglicherweise komplexe Datenstrukturen, um die Ausgabe der KI zu erfassen.
Je komplexer das Geschäft ist, desto unterschiedlicher werden die Szenarien der Benutzereingabe. Wenn das Geschäft wächst, müssen wir die Eingabeaufforderungen und ihre Handhabungslogik kontinuierlich aufrechterhalten.
Wenn wir beispielsweise die Eingabe- oder Ausgabestruktur einer Eingabeaufforderung anpassen, müssen wir nicht nur den zugehörigen Code aktualisieren, sondern auch die Eingabeaufforderung, die die Struktur und die damit verbundenen Daten beschreibt.
Da die Eingabeaufforderungen häufig vom Code getrennt sind, ist es für sie einfach, aus der Synchronisierung zu kommen. Das Aktualisieren von Eingabeaufforderungen kann zu Fehlern führen, und die Verwaltung komplexer Logik wird schwieriger, genau wie wenn die Dokumentation nicht mit dem Code übereinstimmt. Hier entsteht die Notwendigkeit eines KI -schnellen Frameworks.
Mit über einem Jahrzehnt architektonischer Erfahrung bin ich fest davon überzeugt, dass Code die beste Form der Dokumentation ist. In ähnlicher Weise kann Code auch als beste Aufforderung für strukturierte KI -Interaktionsszenarien dienen, wenn Aufgaben in Atomeinheiten unterteilt werden.
Vine bietet einen codegesteuerten Ansatz, der dazu beiträgt, Eingaben zu generieren und Benutzereingaben über Code zu verarbeiten, wodurch die Diskrepanzen zwischen Eingabeaufforderungen und Code erheblich reduziert werden. Dies vereinfacht auch den Prozess der Erstellung von Eingabeaufforderungen.
Mit so wenig zusätzlichen Code wie möglich hilft Ihnen Vine, KI -Interaktionen schneller aufzubauen und eine sofortige Engineering effektiver zu verwalten.
Englisch: Abhängigkeiten hinzufügen, Rebe kann über das Maven Central Repository gefunden werden.
Natürlich können Sie auch den Code klonen und selbst erstellen.
< project >
< dependencyManagement >
< dependencies >
< dependency >
< groupId >work.nvwa</ groupId >
< artifactId >nvwa-vine-bom</ artifactId >
< version >${vine.version}</ version >
< scope >import</ scope >
< type >pom</ type >
</ dependency >
</ dependencies >
</ dependencyManagement >
< dependencies >
< dependency >
< groupId >work.nvwa</ groupId >
< artifactId >nvwa-vine-spring-boot-starter-spring-ai</ artifactId >
</ dependency >
< dependency >
< groupId >org.springframework.ai</ groupId >
< artifactId >spring-ai-openai-spring-boot-starter</ artifactId >
</ dependency >
</ dependencies >
</ project >Siehe die Verwendung von Spring AI, um die relevante Konfiguration des Chat -Modells zu vervollständigen.
Konfigurieren Sie es beispielsweise mit OpenAI über application.yml :
spring :
ai :
openai :
apiKey : <your-api-key> Erstellen Sie eine Schnittstelle, um auf KI zuzugreifen, und fügen Sie die Annotation @VineService hinzu. Der Methodeparameter ist der variable Teil der Benutzereingabe und der Rückgabewert die strukturierte Ausgabe von AI.
Wenn das Geschäftsszenario oder die Rückgabestruktur komplexer ist, können Sie die entsprechende Annotation verwenden, um eine Beschreibung hinzuzufügen.
@ VineService
public interface SqlAnalyzeService {
QuerySqlMetadata analyzeSql ( String sql );
}
public record QuerySqlMetadata (
String table ,
String [] select ,
List < QueryCondition > where ,
List < QueryOrderBy > orderBy
) {
}
public record QueryCondition (
String field ,
OperatorType operator ,
String value
) {
}
public record QueryOrderBy (
String field ,
SortOrder order
) {
}
public enum SortOrder {
Descend , Ascend
}
public enum OperatorType {
Equal , NotEqual , GreaterThan , GreaterThanOrEqual , LessThan , LessThanOrEqual , Like , NotLike , IsNull , IsNotNull , IsTrue , IsFalse ,
}In der Stelle, an der Sie KI aufrufen müssen, injizieren Sie die Schnittstelle und rufen Sie die entsprechende Methode auf.
@ Component
public class ChatServiceTest {
private final SqlAnalyzeService sqlAnalyzeService ;
public ChatServiceTest ( SqlAnalyzeService sqlAnalyzeService ) {
this . sqlAnalyzeService = sqlAnalyzeService ;
}
public void businessMethod () {
// needAnalyzeSql is the variable part of user input
// example: "select b,c,a from test_table where a = 1 and b like 'Zhang%' and c <= 3 order by created_time desc"
QuerySqlMetadata sqlMetadata = sqlAnalyzeService . analyzeSql ( needAnalyzeSql );
// use sqlMetadata do something...
}
} Das Konzept von Vine ist unkompliziert. Es hilft die Strukturaufforderung und generiert sie über Code, um die Benutzereingabe zu bearbeiten und gleichzeitig die Notwendigkeit zu vermeiden, auf Eingabeaufforderungen manuell zu schreiben. Dies reduziert Probleme, bei denen Aufforderungen und Code möglicherweise nicht übereinstimmen.
TBD
TBD
TBD
TBD
TBD (noch nicht zusammengeführt)
Vine basiert auf Spring AI , die Spring Framework 6 und Spring Boot 3 verwendet. Daher müssen Java 17 oder höher ausgeführt werden.
Vine unterstützt auch Kotlin. Vine ist Teil des Nvwa -Projekts und ist vollständig in Kotlin geschrieben. Da Kotlin jedoch über eine kleinere Benutzerbasis verfügt, haben wir Vine in Java umgeschrieben, wenn wir sie von Nvwa trennen.
Vine ist unter der Apache -Lizenz, Version 2.0, lizenziert. Siehe Lizenz für den vollständigen Lizenztext.