GenKit é uma biblioteca que abstrai todas as diferenças entre plataformas generativas de IA. É como um LangChain leve para Swift. O objetivo é tornar o desenvolvimento nativo do Swift com IA generativa rápido, fácil e divertido!
...
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 " ) ,
]
) ,
] ,
...
Estabeleça o serviço e o modelo que deseja usar:
let service = AnthropicService ( configuration : . init ( token : " ANTHROPIC_API_TOKEN " ) )
let model = Model ( id : " claude-3-5-sonnet-20240620 " )
Um exemplo de conclusão de chat que gera apenas uma única resposta:
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 )
Um exemplo de sessão de streaming que pode executar várias gerações em loop se houver ferramentas presentes:
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 )
}
O calor é um bom exemplo de como o GenKit pode ser usado.
As sessões são o nível mais alto de abstração e as mais fáceis de usar. Eles funcionam em loop e chamam as ferramentas conforme necessário e enviam as respostas das ferramentas de volta ao modelo até que ele conclua seu trabalho.
Os serviços são uma interface comum para trabalhar em muitas plataformas. Eles permitem que você troque perfeitamente a plataforma subjacente sem alterar nenhum código.
Os pacotes de provedores são interfaces rápidas que se comunicam diretamente com as APIs REST do provedor de modelo. Você pode usá-los diretamente, mas suas APIs variam um pouco.