?️? GoLC
Erstellen von Go-Anwendungen mit LLMs durch Zusammensetzbarkeit
GoLC ist ein innovatives Projekt, das stark vom LangChain-Projekt inspiriert ist und darauf abzielt, Anwendungen mit Large Language Models (LLMs) zu erstellen, indem es das Konzept der Zusammensetzbarkeit nutzt. Es bietet ein Framework, das es Entwicklern ermöglicht, LLM-basierte Anwendungen nahtlos zu erstellen und zu integrieren. Durch die Prinzipien der Zusammensetzbarkeit ermöglicht GoLC den modularen Aufbau von LLM-basierten Komponenten und bietet Flexibilität und Erweiterbarkeit für die Entwicklung leistungsstarker Sprachverarbeitungsanwendungen. Durch die Nutzung der Fähigkeiten von LLMs und die Berücksichtigung der Zusammensetzbarkeit eröffnet GoLC dem Golang-Ökosystem neue Möglichkeiten für die Entwicklung von Anwendungen zur Verarbeitung natürlicher Sprache.
Merkmale
GoLC bietet eine Reihe von Funktionen zur Verbesserung der Entwicklung von Sprachverarbeitungsanwendungen:
- ? LLMs und Eingabeaufforderungen: GoLC vereinfacht die Verwaltung und Optimierung von Eingabeaufforderungen und bietet eine generische Schnittstelle für die Arbeit mit Large Language Models (LLMs). Dies vereinfacht die Nutzung von LLMs in Ihren Anwendungen.
- ? Ketten: GoLC ermöglicht die Erstellung von Aufrufsequenzen an LLMs oder andere Dienstprogramme. Es bietet eine standardisierte Schnittstelle für Ketten und ermöglicht eine nahtlose Integration mit verschiedenen Tools. Darüber hinaus bietet GoLC vorgefertigte End-to-End-Ketten, die für gängige Anwendungsszenarien konzipiert sind und so Entwicklungszeit und -aufwand sparen.
- Retrieval Augmented Generation (RAG): GoLC unterstützt bestimmte Arten von Ketten, die mit Datenquellen interagieren. Diese Funktionalität ermöglicht Aufgaben wie die Zusammenfassung längerer Texte und die Beantwortung von Fragen auf der Grundlage spezifischer Datensätze. Mit GoLC können Sie RAG-Funktionen nutzen, um Ihre Sprachverarbeitungsanwendungen zu verbessern.
- ? Agenten: GoLC ermöglicht die Erstellung von Agenten, die LLMs nutzen, um fundierte Entscheidungen zu treffen, Maßnahmen zu ergreifen, Ergebnisse zu beobachten und bis zum Abschluss zu iterieren. Durch die Integration von Agenten in Ihre Anwendungen können Sie deren Intelligenz und Anpassungsfähigkeit verbessern.
- ? Speicher: GoLC verfügt über eine Speicherfunktion, die die Beibehaltung des Zustands zwischen Ketten- oder Agentenaufrufen erleichtert. Mit dieser Funktion können Ihre Anwendungen den Kontext beibehalten und wichtige Informationen während der gesamten Verarbeitungspipeline behalten. GoLC bietet eine standardisierte Speicherschnittstelle sowie eine Auswahl an Speicherimplementierungen für mehr Flexibilität.
- ? Bewertung: GoLC vereinfacht die Bewertung generativer Modelle, deren Bewertung mit herkömmlichen Metriken traditionell schwierig ist. Durch die Verwendung von Sprachmodellen selbst zur Bewertung bietet GoLC einen neuartigen Ansatz zur Bewertung der Leistung generativer Modelle.
- ? Moderation: GoLC enthält wesentliche Moderationsfunktionen, um die Sicherheit und Angemessenheit von Sprachverarbeitungsanwendungen zu verbessern. Dazu gehören die sofortige Erkennung von Injektionen, die Erkennung und Schwärzung persönlich identifizierbarer Informationen (PII), die Identifizierung toxischer Inhalte und mehr.
- ? Dokumentenverarbeitung: GoLC bietet umfassende Funktionen zur Dokumentenverarbeitung, einschließlich Laden, Transformieren und Komprimieren. Es bietet einen vielseitigen Satz an Tools zur Rationalisierung dokumentbezogener Aufgaben und ist damit eine ideale Lösung für dokumentenzentrierte Sprachverarbeitungsanwendungen.
Installation
Verwenden Sie Go-Module, um golc in Ihr Projekt einzubinden:
go get github.com/hupe1980/golc
Verwendung
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/hupe1980/golc"
"github.com/hupe1980/golc/chain"
"github.com/hupe1980/golc/model/chatmodel"
)
func main () {
openai , err := chatmodel . NewOpenAI ( os . Getenv ( "OPENAI_API_KEY" ))
if err != nil {
log . Fatal ( err )
}
conversationChain , err := chain . NewConversation ( openai )
if err != nil {
log . Fatal ( err )
}
ctx := context . Background ()
result1 , err := golc . SimpleCall ( ctx , conversationChain , "What year was Einstein born?" )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result1 )
result2 , err := golc . SimpleCall ( ctx , conversationChain , "Multiply the year by 3." )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result2 )
}
Ausgabe:
Einstein was born in 1879.
1879 multiplied by 3 equals 5637.
Weitere Anwendungsbeispiele finden Sie unter Beispiele.
Mitwirken
Beiträge sind willkommen! Fühlen Sie sich frei, ein Problem zu eröffnen oder eine Pull-Anfrage für Verbesserungen oder neue Funktionen einzureichen, die Sie sehen möchten.
Referenzen
- https://github.com/langchain-ai/langchain/
- https://www.promptingguide.ai/
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Einzelheiten finden Sie in der LICENSE-Datei.