Выложил на GitHub первую версию библиотеки SwiftGPT. Она предназначена для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты.
- Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI.
- Поддержка Swift 6 и Swift Concurrency.
- Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux.
- Поддержка Chat Completions (генерация текста)
- В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др.
- Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси)
Я давно интересуюсь искусственным интеллектом и активно применяю его решения в своих проектах. Для одной из задач мне потребовался API ChatGPT, но я обнаружил, что официального SDK для iOS не существует. Сначала я задумался о создании собственной библиотеки, но обратил внимание на пакет ChatGPTSwift.
У данной библиотеки есть сильная сторона — использование OpenAPI 3.0 спецификации для сетевого слоя. То есть разработчик взял официальную спецификацию, написанную по стандарту OpenAPI 3.0, и использую
пакет от Apple - Swift OpenAPI Generator, автогенерировал сетевой слой.
На мой взгляд, это супер эффективное решение, которое позволяет упростить интеграцию с любым бекендом.
Однако, реализация ChatGPTSwift имела ряд проблем, которые требовали исправлений.
- Единый монолитный класс: библиотека объединяла все функции в одном классе, что снижало читаемость и масштабируемость. Я переработал архитектуру, распределив функции в соответствии с официальным ChatGPT API.
- Неудобное API: оригинальное API библиотеки отличалось от OpenAI API. Теперь интерфейс полностью соответствует официальной документации, что минимизирует порог вхождения.
- Ошибки Swift Concurrency: вместо необоснованных решений вроде
@unchecked Sendable
, я внедрил корректную поддержку Swift Concurrency.- Сложные названия типов и свойств: автогенерированные имена вроде
text_event_hyphen_stream
заменены на более понятные и привычные — например, textEventStream
.- Баги и устаревший API: обновил сетевой слой до актуальной версии API и устранил ошибки в логике.
- Архаичная обработка контекста токенов: библиотека обрезала контекст до 4000 токенов, хотя ChatGPT последней версии поддерживает 128 000. Это ограничение устранено.
Переработка библиотеки — это лишь начало работы. Сейчас SwiftGPT поддерживает основные функции, но я продолжаю тестировать её в реальных проектах, а также развивать поддержку новых и существующих API OpenAI.
# Пример использования
Все максимально просто
import SwiftGPT
// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")
Task {
// создание сессии
let chat = OpenAI.Chat(model: .gpt4o)
// запрос
let response = try await chat.completions(prompt: "Как погода сегодня?")
print("Ответ: \(response)")
}
Если вам нужно интегрировать ChatGPT в iOS/macOS/Linux приложение, уже сейчас вы можете использовать SwiftGPT.
Забрать/посмотреть можно тут.
Теперь эта библиотека открыта для обратной связи и предложений сообщества!
#инструменты #ai #chatgpt
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - DobbyWanKenoby/SwiftGPT: Access ChatGPT API using Swift
Access ChatGPT API using Swift. Contribute to DobbyWanKenoby/SwiftGPT development by creating an account on GitHub.