Найти Π² Π”Π·Π΅Π½Π΅

🧩 Superglue: ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹ΠΉ open-source инструмСнт сам ΠΏΠΈΡˆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ API

ОглавлСниС

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ с внСшними API β€” Π·Π°Π΄Π°Ρ‡Π°, знакомая ΠΌΠ½ΠΎΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда ΠΎΠ½Π° приносит ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅. Π’Π·ΡΡ‚ΡŒ хотя Π±Ρ‹ случай, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ сСрвис Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ измСнившийся JSON ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ с нСпрСдсказуСмой структурой. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ костыли, Π³ΠΎΡ€ΠΎΠ΄ΠΈΡ‚ΡŒ слоТныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ ΠΌΠΎΠ»ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ API Π½Π΅ помСнялся Π·Π°Π²Ρ‚Ρ€Π°. 😩

ИмСнно здСсь Π½Π° сцСну Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Superglue β€” Π½ΠΎΠ²Ρ‹ΠΉ инструмСнт с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, способный Π½Π΅ просто ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Тизнь, Π½ΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π·Π° вас.

πŸ§™ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Superglue ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ это ΠΊΡ€ΡƒΡ‚ΠΎ?

Superglue β€” это Β«ΡΠ°ΠΌΠΎΠΈΡΡ†Π΅Π»ΡΡŽΡ‰ΠΈΠΉΡΡΒ» open-source API-ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ автоматичСски ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ Π½Π° основС простых инструкций.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ гСниально прост:

  • ✨ Π’Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
    Β«ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всСх пСрсонаТСй ΠΈΠ· сСриала FuturamaΒ».
  • 🧠 Superglue ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ разбираСтся Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ API, Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ схСму Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΈΡˆΠ΅Ρ‚ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ.
  • πŸ”„ БСрвис автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ошибки, Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ структуры Π΄Π°Π½Π½Ρ‹Ρ… подстраиваСт трансформации, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°Π»ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ экономит часы (Π° Ρ‚ΠΎ ΠΈ Π΄Π½ΠΈ!) Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ.

βš™οΈ Как это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ?

Под ΠΊΠ°ΠΏΠΎΡ‚ΠΎΠΌ Superglue скрываСтся мощная инфраструктура:

  • πŸ€– ИспользованиС LLM (Π±ΠΎΠ»ΡŒΡˆΠΈΡ… языковых ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ)
    Superglue Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ JSON-выраТСния для трансформации Π΄Π°Π½Π½Ρ‹Ρ…, примСняя нСйросСти, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ OpenAI (GPT-4 ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅).
  • πŸ›‘οΈ Π‘Ρ…Π΅ΠΌΠ° Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ
    Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ API-запросов всСгда проходят Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Π°ΠΌΠΈ JSON-схСмС. Если ΠΎΡ‚Π²Π΅Ρ‚ API мСняСтся β€” сСрвис Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ трансформации автоматичСски.
  • πŸ” АвтоматичСская пагинация ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ запросов (Ρ€Π΅Ρ‚Ρ€Π°ΠΈ)
    Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°Π³ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок сСти. Superglue сдСлаСт это Π·Π° вас.
  • πŸ” Гибкая аутСнтификация
    ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ OAuth, API-ΠΊΠ»ΡŽΡ‡ΠΈ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ распространённыС способы Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • πŸ“¦ АвтоматичСскоС распознаваниС Ρ„Π°ΠΉΠ»ΠΎΠ²
    CSV, JSON, XML ΠΈ Π΄Π°ΠΆΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π² Π°Ρ€Ρ…ΠΈΠ²Ρ‹, автоматичСски ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ приводятся ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΉ структурС.

πŸš€ Быстрый старт с Superglue (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ):

ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ сСрвисом ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

Π¨Π°Π³ΠΈ для запуска своСй ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ:

🚒 Π¨Π°Π³ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ β€” установка ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°:

npm install @superglue/client

πŸ”§ Π¨Π°Π³ Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” описаниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

import { SuperglueClient } from "@superglue/client";

const superglue = new SuperglueClient({
apiKey: "ваш-api-ΠΊΠ»ΡŽΡ‡"
});

const config = {
urlHost: "https://futuramaapi.com",
urlPath: "/graphql",
instruction: "ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всСх пСрсонаТСй сСриала",
responseSchema: {
type: "object",
properties: {
characters: {
type: "array",
items: {
type: "object",
properties: {
name: { type: "string" },
species: { type: "string", description: "Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС" }
}
}
}
}
}
};

πŸ›Έ Π¨Π°Π³ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ β€” Π²Ρ‹Π·ΠΎΠ² API:

const result = await superglue.call({endpoint: config});
console.log(JSON.stringify(result.data, null, 2));

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ JSON:

jsonCopyEdit{
"characters": [
{
"name": "Phillip J. Fry",
"species": "human"
},
...
]
}

🐳 Π‘Π°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ запуск Ρ‡Π΅Ρ€Π΅Π· Docker (self-hosted):

Если хочСтся ΠΏΠΎΠ»Π½ΠΎΠΉ автономности ΠΈ контроля Π½Π°Π΄ своими интСграциями, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Superglue Ρ‡Π΅Ρ€Π΅Π· Docker:

docker pull superglueai/superglue

docker run -d \
--name superglue \
--env-file .env \
-p 3000:3000 \
-p 3001:3001 \
superglueai/superglue

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹:

curl http://localhost:3000/health
# OK

Π’Π΅Π±-интСрфСйс доступСн ΠΏΠΎ адрСсу:

http://localhost:3001

πŸ—£οΈ МнСниС Π°Π²Ρ‚ΠΎΡ€Π°: ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с API

На ΠΌΠΎΠΉ взгляд, Superglue Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ β€” ΠΏΠΎΡΡ‚ΠΎΡΠ½Π½ΡƒΡŽ Π±ΠΎΡ€ΡŒΠ±Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° с ΠΈΠ·ΠΌΠ΅Π½Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ Π²Π½Π΅ΡˆΠ½ΠΈΡ… интСрфСйсов. Π­Ρ‚ΠΎ Π½Π΅ просто ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ слой (middleware), Π° качСствСнно Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ETL-процСссам ΠΈ интСграциям Π² Ρ†Π΅Π»ΠΎΠΌ.

Благодаря использованию Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… нСйросСтСй (LLM), ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ фактичСски стираСт Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ тСхничСским Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Если сСгодня бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΡƒ трСбуСтся ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ, Π·Π°Π²Ρ‚Ρ€Π° ΠΎΠ½ смоТСт просто ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΈ Superglue сдСлаСт всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅.

ОсобСнно интСрСсна идСя «самовосстановлСния». Когда интСграция ломаСтся, систСма пытаСтся сама ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ сбоя ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, пСрСписывая ΠΊΠΎΠ΄ трансформации Π΄Π°Π½Π½Ρ‹Ρ…. По сути, это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Β«ΡƒΠΌΠ½Ρ‹ΠΌ интСграциям», Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ постоянного чСловСчСского контроля.

🎯 Для ΠΊΠΎΠ³ΠΎ это ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ идСально:

  • πŸ”Ή ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½ΡƒΠΆΠ½ΠΎ быстро ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ сторонниС API.
  • πŸ”Έ Π‘Ρ‚Π°Ρ€Ρ‚Π°ΠΏΡ‹ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, экономящиС рСсурсы Π½Π° DevOps ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ.
  • πŸ”Ή ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ (legacy) систСмами ΠΈ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ постоянно Β«ΡƒΠ΄ΠΈΠ²Π»ΡΡŽΡ‚Β» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².
  • πŸ”Έ Π›ΡŽΠ±ΠΎΠΉ, ΠΊΡ‚ΠΎ устал ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (boilerplate) ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ нСпрСдсказуСмыС JSON-Ρ„Π°ΠΉΠ»Ρ‹.

πŸ“š ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки ΠΈ докумСнтация:

Если Π²Ρ‹ Π΄Π°Π²Π½ΠΎ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Ρ€ΡƒΡ‚ΠΈΠ½Ρƒ с API ΠΈ Π·Π°Π½ΡΡ‚ΡŒΡΡ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ интСрСсным, Superglue β€” это ваш Π±ΠΈΠ»Π΅Ρ‚ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅, Π³Π΄Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΈΡˆΡƒΡ‚ сами сСбя. πŸš€βœ¨