GenKit ist eine Bibliothek, die alle Unterschiede zwischen generativen KI-Plattformen abstrahiert. Es ist so etwas wie eine leichte LangChain für Swift. Das Ziel besteht darin, die native Swift-Entwicklung mit generativer KI schnell, einfach und unterhaltsam zu gestalten!
...
dependencies: [
. package ( url : " https://github.com/nathanborror/swift-gen-kit " , branch : " main " ) ,
] ,
targets: [
. target (
name : " YOUR_TARGET " ,
dependencies : [
. product ( name : " GenKit " , package : " swift-gen-kit " ) ,
]
) ,
] ,
...
Legen Sie den Dienst und das Modell fest, die Sie verwenden möchten:
let service = AnthropicService ( configuration : . init ( token : " ANTHROPIC_API_TOKEN " ) )
let model = Model ( id : " claude-3-5-sonnet-20240620 " )
Ein Beispiel für einen Chat-Abschluss, der nur eine einzige Antwort generiert:
let request = ChatServiceRequest (
model : model ,
messages : [
. system ( content : " You are a helpful assistant. " ) ,
. user ( content : " Hello! " ) ,
]
)
let message = try await service . completion ( request )
print ( message )
Ein Beispiel für eine Streaming-Sitzung, die mehrere Generierungen in einer Schleife durchführen kann, wenn Tools vorhanden sind:
var request = ChatSessionRequest ( service : service , model : model )
request . with ( system : " You are a helpful assistant. " )
request . with ( history : [ . user ( content : " Hello! " ) ] )
let stream = ChatSession . shared . stream ( request )
for try await message in stream {
print ( message . content )
}
Heat ist ein gutes Beispiel dafür, wie GenKit genutzt werden kann.
Sitzungen stellen die höchste Abstraktionsebene dar und sind am einfachsten zu verwenden. Sie laufen in einer Schleife und rufen bei Bedarf Werkzeuge auf und senden Werkzeugantworten an das Modell zurück, bis es seine Arbeit abgeschlossen hat.
Dienste sind eine gemeinsame Schnittstelle für die Arbeit auf vielen Plattformen. Sie ermöglichen Ihnen einen nahtlosen Wechsel der zugrunde liegenden Plattform, ohne Code zu ändern.
Anbieterpakete sind schnelle Schnittstellen, die direkt mit den REST-APIs von Modellanbietern kommunizieren. Sie können diese direkt verwenden, ihre APIs unterscheiden sich jedoch geringfügig.