GenKit — это библиотека, которая абстрагирует все различия между платформами генеративного ИИ. Это что-то вроде облегченного LangChain для Swift. Цель — сделать разработку на Swift с помощью генеративного искусственного интеллекта быстрой, простой и увлекательной!
...
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 " ) ,
]
) ,
] ,
...
Установите сервис и модель, которую вы хотите использовать:
let service = AnthropicService ( configuration : . init ( token : " ANTHROPIC_API_TOKEN " ) )
let model = Model ( id : " claude-3-5-sonnet-20240620 " )
Пример завершения чата, который генерирует только один ответ:
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 )
Пример сеанса потоковой передачи, который может выполнять несколько генераций в цикле, если присутствуют инструменты:
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 — хороший пример того, как можно использовать GenKit.
Сессии — это самый высокий уровень абстракции и самый простой в использовании. Они работают в цикле, вызывают инструменты по мере необходимости и отправляют ответы инструментов обратно в модель, пока она не завершит свою работу.
Сервисы — это общий интерфейс для работы на многих платформах. Они позволяют вам легко переключать базовую платформу без изменения кода.
Пакеты поставщиков — это быстрые интерфейсы, которые напрямую взаимодействуют с API REST поставщика моделей. Вы можете использовать их напрямую, но их API немного различаются.