πŸ‘‘ SwiftGPT: Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ChatGPT

Π’Ρ‹Π»ΠΎΠΆΠΈΠ» Π½Π° 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 для запросов (Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Π Π€, ΠΊΠΎΠ³Π΄Π° дСлаСшь свой прокси)

❓ ΠŸΠΎΡ‡Π΅ΠΌΡƒ я занялся SwiftGPT

Π― Π΄Π°Π²Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡΡŒ искусствСнным ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΠΎΠΌ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽ Π΅Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π·Π°Π΄Π°Ρ‡ ΠΌΠ½Π΅ потрСбовался API ChatGPT, Π½ΠΎ я ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ SDK для iOS Π½Π΅ сущСствуСт. Π‘Π½Π°Ρ‡Π°Π»Π° я задумался ΠΎ создании собствСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ» Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ ChatGPTSwift.

Π£ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΅ΡΡ‚ΡŒ сильная сторона β€” использованиС OpenAPI 3.0 спСцификации для сСтСвого слоя. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ взял ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ Apple Swift OpenAPI Generator сгСнСрировал сСтСвой слой.

На ΠΌΠΎΠΉ взгляд, это супСр эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ с Π»ΡŽΠ±Ρ‹ΠΌ Π±Π΅ΠΊΠ΅Π½Π΄ΠΎΠΌ.

Однако, рСализация ChatGPTSwift ΠΈΠΌΠ΅Π»Π° ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ исправлСний.

πŸ€• ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ 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.

Π—Π°Π±Ρ€Π°Ρ‚ΡŒ/ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΡƒΡ‚. Π’Π΅ΠΏΠ΅Ρ€ΡŒ эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ сообщСства!`