Forwarded from Мобильный кот (Vasiliy Usov)
Выложил на 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 спецификации для сетевого слоя. То есть разработчик взял официальную спецификацию и использую
пакет от 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()
// запрос
let response = try await chat.completions(prompt: "Как погода сегодня?")
print("Ответ: \(response)")
}
Если вам нужно интегрировать ChatGPT в iOS/macOS/Linux приложение, уже сейчас вы можете использовать SwiftGPT.
Забрать/посмотреть можно тут.
Теперь эта библиотека открыта для обратной связи и предложений сообщества!
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.
🤔 Ваши вопросы к выпуску про увольнения
Планируем выпуск про увольнения в IT. Если у вас есть интересные вопросы и хотите, чтобы его разобрали — пишите в комментарии.
Планируем выпуск про увольнения в IT. Если у вас есть интересные вопросы и хотите, чтобы его разобрали — пишите в комментарии.
Потоки под капотом: как работают многопоточность и синхронизация
В решении рабочих задач и прохождении собеседований часто затрагиваются вопросы, связанные с многопоточностью и самими потоками, а также с необходимостью их синхронизации. Однако что происходит за кулисами этих процессов? Как функционирует механизм потоков изнутри?
В данной статье мы рассмотрим детали этой темы, а именно:
1. Проанализируем работу потоков;
2. Выявим скрытые механизмы, обеспечивающие их функционирование;
3. Определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
В решении рабочих задач и прохождении собеседований часто затрагиваются вопросы, связанные с многопоточностью и самими потоками, а также с необходимостью их синхронизации. Однако что происходит за кулисами этих процессов? Как функционирует механизм потоков изнутри?
В данной статье мы рассмотрим детали этой темы, а именно:
1. Проанализируем работу потоков;
2. Выявим скрытые механизмы, обеспечивающие их функционирование;
3. Определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.
⚡️Газпромбанк вернулся в App Store
Газпромбанк выпустил официальный клон банковского приложения в App Store. Скачать можно по этой ссылке.
Газпромбанк выпустил официальный клон банковского приложения в App Store. Скачать можно по этой ссылке.
Газпромбанк
Управляйте финансами красиво в новом интернет-банке
Переводите деньги, оплачивайте счета, заказывайте карты и открывайте вклады на выгодных условиях — в любое время и с любого устройства.
This media is not supported in your browser
VIEW IN TELEGRAM
SwiftUI скрытие TabBar
В этом видео создадите прокручиваемый интерфейс с таб-баром, который плавно скрывается и появляется при прокрутке — это выглядит стильно, аккуратно и очень функционально
В этом видео создадите прокручиваемый интерфейс с таб-баром, который плавно скрывается и появляется при прокрутке — это выглядит стильно, аккуратно и очень функционально
This media is not supported in your browser
VIEW IN TELEGRAM
⚡ Тим Кук анонсировал таинственную презентацию Apple
• Она пройдёт 19 февраля: Ждем iPhone 4SE.
• Она пройдёт 19 февраля: Ждем iPhone 4SE.
Всем привет! Мы записали два выпуска. В эту среду выйдет подкаст про увольнения, а в следующий понедельник мы релизним про выгорание.
Мы очень хотели бы поговорить о том как учить новые технологии, когда работаешь или когда лень.
Нужны гости, кому интересно пишите.
Мы очень хотели бы поговорить о том как учить новые технологии, когда работаешь или когда лень.
Нужны гости, кому интересно пишите.
Как понять, что вы станете хорошим разработчиком
Разработка — это динамичная и постоянно развивающаяся область, которая привлекает множество людей. Но как понять, обладаете ли вы необходимыми качествами, чтобы не просто стать разработчиком, а стать хорошим разработчиком? Эта статья поможет вам разобраться в этом вопросе, предоставив подробный анализ ключевых навыков, личностных качеств и признаков, которые указывают на потенциал в сфере разработки.
Разработка — это динамичная и постоянно развивающаяся область, которая привлекает множество людей. Но как понять, обладаете ли вы необходимыми качествами, чтобы не просто стать разработчиком, а стать хорошим разработчиком? Эта статья поможет вам разобраться в этом вопросе, предоставив подробный анализ ключевых навыков, личностных качеств и признаков, которые указывают на потенциал в сфере разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация Shake effect в SwiftUI
ЗА ЧТО ТЕБЯ МОГУТ УВОЛИТЬ В IT?
Всем привет! Сегодня мы говорим про увольнения в IT.
За нашим столом интересные гости с большим опытом. В этом подкасте мы разбираем непростую тему увольнений в IT. Обсуждаем причины сокращений, как подготовиться к увольнению, эффективные стратегии поиска новой работы, что делать после и не только. Слушайте и делитесь своим опытом!
Спасибо ребятам, что пришли! Подписывайтесь на них, они классные.
🍏 Сергей Ирбеткин, Lead РКБ
🍏 Никита Павлов, Lead Звук
🍏 Вихляев Сергей, Lead iOS, спикер Mobius. YouTube и Inst Сергея.
Так же для удобства, видео доступно на бусти.
Всем привет! Сегодня мы говорим про увольнения в IT.
За нашим столом интересные гости с большим опытом. В этом подкасте мы разбираем непростую тему увольнений в IT. Обсуждаем причины сокращений, как подготовиться к увольнению, эффективные стратегии поиска новой работы, что делать после и не только. Слушайте и делитесь своим опытом!
Спасибо ребятам, что пришли! Подписывайтесь на них, они классные.
Так же для удобства, видео доступно на бусти.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
• Он не поддерживает быструю зарядку и MagSafe;
• Установлен дисплей от iPhone 14;
• Установлен урезанный чип А18, на два ядра меньше, чем у iPhone 16 Pro;
• Не поддерживает портретный режим, киноэффект и суперстабилизацию.
Из новенького:
• Он первым получил собственный модем Apple C1.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM