Kimi K3.1 Pro and Highspeed are now live on CometAPI →
ai-model/CometAPI зерттеуі

Kenerate AI-ды қалай пайдалану: Суреттер, Бейнелер, API & Баға

Kenerate MCP/CLI мен корпоративтік API-ға қолжетімділікті зерттеңіз, ал Python көмегімен кескіндерді жасау және өңдеу, сондай-ақ Kling видеоларын алу үшін бөлек CometAPI жұмыс ағынын пайдаланыңыз.

CometAPI
Deon GoodwinAI model және API зерттеу тобы
Жаңартылды Oct 23, 2026 12 мин оқу
Kenerate AI-ды қалай пайдалану: Суреттер, Бейнелер, API & Баға
Осы үлгіні пайдалану

Бірінші API шақыруын жасаңыз.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_COMETAPI_KEY",
    base_url="https://api.cometapi.com/v1",
)

response = client.chat.completions.create(
    model="gpt-5-mini",
    messages=[{"role": "user", "content": "Build this workflow."}],
)

print(response.choices[0].message.content)

TL;DR

Kenerate AI — кескін, видео, өңдеу, аудио, 3D және агент мүмкіндіктерін біріктіретін шығармашылық жұмыс кеңістігі.

Kenerate AI шығармашылық құралдарды бір кеңістікке жинайды. Әзірлеушілер алдымен оның жергілікті қол жеткізу нұсқаларын ажыратуы керек: MCP/CLI және кәсіпорын API қолжетімділігі, сондай-ақ бөлек CometAPI интеграциясы. Бұл нұсқаулық қол жеткізу және шығынды жоспарлау, орта орнату, кескін генерациялау, жауаптарды өңдеу, кескінді өңдеу және асинхронды видео жасауды қамтиды. Төмендегі мысалдарды орындап, бастапқы кескіні, өңделген нұсқасын және аяқталған клипті Python 3.10+, CometAPI кілті және жеткілікті баланс арқылы сақтаңыз.

Негізгі тұжырымдар

  • Kenerate AI — бір негіздік модель емес, көпмодельді шығармашылық сервис.
  • Kenerate MCP/CLI арқылы қол жеткізу және кәсіпорын API онбордингін ұсынады; өз қолданбаңызға және аккаунтқа сәйкес бағытты таңдаңыз.
  • Бөлек CometAPI интеграциясын құру кезінде нақты модель ID-ларын және маршрутқа тән параметрлерді қолданыңыз.
  • Генерациядан кейін кескін байттарын сақтаңыз; видео тапсырма ID-сін сақтап қойыңыз, сонда поллингті жаңа жұмысты жібермей-ақ жалғастыра аласыз.
  • CometAPI қолдау көрсетілетін кескін/видео модельдері үшін бөлек әзірлеуші интеграциясын, бөлек тіркелгі деректері мен биллингті ұсынады.

Kenerate AI деген не?

Интерактивті жасау үшін Kenerate студияларын қолданыңыз. Әзірлеушілер ресми MCP/CLI құралдарын да қолдана алады немесе кәсіпорын API қолжетімділігі туралы қолдауға жүгінеді. Төмендегі қол жеткізу бөлімі осы нұсқаларды түсіндіреді; бұл нұсқаулықтағы Python мысалдары CometAPI-ды бөлек шақырады.

Kenerate AI және CometAPI — бөлек қызметтер.

Төмендегі код CometAPI-ды тікелей шақырады. Ол Kenerate-ке кірмейді, Kenerate студиясын автоматтандырмайды және Kenerate кредиттерін жұмсамайды. Ол студиядағы пресеттер немесе шығыстармен бірдей деп мәлімдемей, қолдау көрсетілетін модельді қолданатын тар анықталған шығармашылық тапсырманы қайта құрады.

Kenerate AI-ды қалай пайдалану: Суреттер, Бейнелер, API & Баға

Kenerate галереясы ұсынған ресми өнім кескіні мысалы. Бұл шығармашылық қолдану мысалын көрсетеді; төмендегі API кодының шығаратыны емес.

Kenerate AI бағасы API шығын жоспарына қалай әсер етеді?

Kenerate 25 бастапқы кредит және $15-тан басталатын бір реттік кредит пакеттерін жариялайды. Оның биллингке қатысты ЖҚС парағында сатып алынған кредиттердің мерзімі бітпейтіні және видео генерация үшін сатып алынған кредит пакеті қажет екені айтылған. Бұлар — студияның биллинг шарттары, кәсіпорын API қолжетімділігіне баға ұсынысы емес.

CometAPI бөлек тіркелгі деректерін және биллингті қолданады. Тест немесе пакеттен бұрын, таңдалған модель мен сұраныс параметрлерін оның шығынды алдын ала бағалауымен салыстырыңыз, жұмыс лимитін орнатыңыз және тіркелген пайдалану деректерін тексеріңіз. Kenerate кредиттері CometAPI сұраныстарының құнын анықтамайды.

Kenerate AI-ға қалай қол жеткізесіз?

MCP немесе CLI арқылы қосылу

Kenerate-тің ресми MCP/CLI орнату беті жергілікті әзірлеуші бағытын ұсынады. Оның қашықтағы MCP сервері — https://mcp.kenerateai.com/mcp. Серверді үйлесімді клиентке қосыңыз және қолдау көрсетілген жерде Kenerate-ке кіруді аяқтаңыз; CLI орнату және аутентификация бойынша беттегі нұсқауларды орындаңыз. Бұл құралдар CometAPI кілтінен бөлек сіздің Kenerate аккаунтыңызды пайдаланады.

Қажет болғанда кәсіпорын API қолжетімділігін сұрау

Ресми ЖҚС беті сонымен қатар Enterprise серіктестер үшін API қолжетімділігін қолдау арқылы сипаттайды. Бұл бағытта соңғы нүкте құжаттамасын, аутентификацияны, қолдау көрсетілетін операцияларды, квоталарды және биллинг шарттарын сұраңыз. Кәсіпорын онбордингі жалғыз жергілікті интеграция нұсқасы ретінде ұсынылмауы керек.

Бөлек CometAPI жұмыс ағынын қалай орнатасыз?

Аккаунт және тіркелгі деректері

CometAPI аккаунтын жасаңыз және API кілтін орнату нұсқаулығына сәйкес кілт генерациялаңыз. Кілтті серверіңізде немесе әзірлеу машинаңызда сақтаңыз. Төмендегі Bash командалары HTTP клиентін орнатады және кілтті экранға шығармай оқиды. Windows пайдаланушылары оларды WSL немесе Git Bash-та орындай алады.

python -m pip install requests
read -rsp "CometAPI API key: " COMETAPI_KEY
export COMETAPI_KEY
printf '\n'

Шағын, нақты алғашқы сұраныс

Қосымша басқаруларды қоспас бұрын бір ғана промпт және бір шығыс қолданыңыз. Кескін жұмыс ағыны үшін әзірлеушілер CometAPI-дегі GPT Image 2 API-ға қол жеткізе алады. Видео жұмыс ағыны CometAPI-дегі Kling Video API-ды оның әзірлеуші «quickstart» құжаттамасындағы маршрутқа тән model_name мәнімен қолданады. Студиядағы белгі API идентификаторын алмастырмайды.

CometAPI мысалдарын салыстыру

Интеграция бөлшегіCometAPI кескін генерациялауCometAPI Kling видео
АутентификацияBearer COMETAPI_KEYBearer COMETAPI_KEY
Құру жолы/v1/images/generations/kling/v1/videos/text2video
Модель таңдау өрісіmodelmodel_name
АяқталуСинхронды жауапАсинхронды тапсырма; сәйкес маршрутты поллинг
ШығысDecode data[0].b64_jsonСәтті болғаннан кейін task_result.videos[0].url жүктеу

CometAPI кескін сұранысын және шығыс өрістерін, сондай-ақ видео жіберу және поллинг маршруттарын бөлек құжаттайды. Тіркелгі деректері, маршрут, дене және нәтижені талдауды бір толық интеграция ретінде қарастырыңыз.

OpenAI SDK-ны CometAPI-мен қолдана аласыз ба?

Иә, қолдау көрсетілетін OpenAI-мен үйлесімді маршруттар үшін. CometAPI-дің SDK нұсқаулығы CometAPI кілтін және базалық URL ретінде https://api.cometapi.com/v1 қолданады. OpenAI Python SDK теңшелетін base_url қолдайды. SDK-ны таңдасаңыз, оны бөлек орнатыңыз; төмендегі орындалатын кескін және видео скрипттер requests қолданады.

Қосымша SDK орнату

python -m pip install openai

SDK клиентін конфигурациялау

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["COMETAPI_KEY"],
    base_url="https://api.cometapi.com/v1",
)
# Client configuration only: no generation request is submitted here.

Үйлесімділік құжатталған соңғы нүктеге, өрістерге және жауап пішініне қатысты. Бұл барлық провайдер маршруттарын алмастырмалы етпейді. Кескін quickstart client.images.generate қолдайды; төмендегі Kling мысалы провайдерге тән /kling/v1/videos/text2video маршрутын және тапсырма келісімін қолданады. Жалпы SDK видео шақыруын алмастырмай, сәйкес кескін немесе Kling quickstart нұсқаулығын орындаңыз.

CometAPI арқылы кескінді қалай генерациялап, сақтауға болады?

Кескін параметрлерін таңдау

Алғашқы кескін тесті үшін gpt-image-2, size="1024x1024", quality="low" және output_format="jpeg" қолданыңыз. Нәтижені сәйкес файл кеңейтімімен сақтаңыз. Өнімді, фонды және жарықтандыруды анық сипаттаңыз. Бұл кескін маршруты model өрісін қолданады және data[0].b64_json арқылы кескін байттарын қайтарады.

Кескінді генерациялап және сақтап қою

CometAPI gpt-image-2 арқылы кескін генерациялауды және base64 шығысын құжаттайды. Бұл мысал синхронды сұраныс жібереді және қайтарылған байттарды JPEG ретінде сақтайды. Оны generate_image.py ретінде сақтаңыз да, орта айнымалысын орнатқаннан кейін python generate_image.py орындаңыз.

import base64
import os
from pathlib import Path
import requests

response = requests.post(
    "https://api.cometapi.com/v1/images/generations",
    headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
    json={
        "model": "gpt-image-2",
        "prompt": "A ceramic cup on marble, realistic product lighting",
        "quality": "low",
        "size": "1024x1024",
        "output_format": "jpeg",
    },
    timeout=(10, 180),
)
response.raise_for_status()
payload = response.json()
items = payload.get("data", [])
if not items or not items[0].get("b64_json"):
    raise RuntimeError("No image bytes returned; inspect the response schema.")
image_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not image_bytes:
    raise RuntimeError("The returned image is empty.")
output = Path("product-image.jpeg")
output.write_bytes(image_bytes)
print(f"Saved {output} ({len(image_bytes)} bytes)")

Сақталған кескінді тексеру

Алдымен product-image.jpeg бар екеніне және кескін қарағышта ашылатынына көз жеткізіңіз. Кейін оның субъектісі, композициясы және өнім бөлшектері промптқа сәйкес келетін-келмейтінін тексеріңіз. Промптты өзгертпестен бұрын субъектіні және композицияны тексеріңіз. HTTP 200 жауабы сұраныстың сәтті екенін растайды, бірақ қайтарылған деректерді валидациялау және кескінді көзбен тексеру қажет. Егер жауапта қате немесе басқа схема болса, декодерді өзгертпестен бұрын жауапты зерттеңіз; JSON мәтінді кескін кеңейтімімен сақтамаңыз.

Одан кейінгі өңдеулер үшін бастапқы кескінді өзгеріссіз сақтаңыз. Файлдың кеңейтімін сұралған output_format-қа сәйкестендіріңіз және маңызды мәтін немесе өнім бөлшектерін визуалды түрде тексеріңіз. Егер модельді өзгертсеңіз, осы base64 декодерін қайта қолданбас бұрын оның жауап келісімін тексеріңіз.

Генерацияланған немесе жергілікті кескінді өңдеу

Бастапқы файлды multipart дерек ретінде жүктеңіз. Сұралған өзгерісті және сақталуы тиіс бөлшектерді көрсетіңіз; түпнұсқа файлды сақтап, әр бекітілген нәтижені жаңа атаумен сақтаңыз.

Бөлек CometAPI жұмыс ағыны үшін image-edit соңғы нүктесі multipart жүктеулерді қабылдайды. Бұл тәуелсіз скриптті генерациялау қадамындағы product-image.jpeg файлының жанына edit_image.py ретінде сақтаңыз да, python edit_image.py орындаңыз. Промпт тостағанның түсін бір ғана өзгертуге сұрайды және скрипт нәтижені product-image-edited.jpeg ретінде сақтайды.

import base64
import os
from pathlib import Path
import requests

source = Path("product-image.jpeg")
with source.open("rb") as image_file:
    response = requests.post(
        "https://api.cometapi.com/v1/images/edits",
        headers={"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"},
        files={"image": (source.name, image_file, "image/jpeg")},
        data={
            "model": "gpt-image-2",
            "prompt": "Change only the cup color to matte black. Preserve its shape, background and lighting.",
            "quality": "low",
            "output_format": "jpeg",
        },
        timeout=(10, 240),
    )
response.raise_for_status()
items = response.json().get("data", [])
if not items or not items[0].get("b64_json"):
    raise RuntimeError("No edited image returned; inspect the response.")
edited_bytes = base64.b64decode(items[0]["b64_json"], validate=True)
if not edited_bytes:
    raise RuntimeError("The edited image is empty.")
Path("product-image-edited.jpeg").write_bytes(edited_bytes)
print("Saved product-image-edited.jpeg")

Жергілікті эталон кескінді пайдалану

Бар өнім фотосын өңдеу үшін source мәнін сол файлға орнатыңыз. Жүктеу MIME түрін оның нақты форматына сәйкестендіріңіз, мысалы PNG үшін image/png. Сұралған output_format бастапқы форматқа қарамастан jpeg болып қала алады. Multipart Content-Type тақырыбын requests өзі қалыптастырсын; application/json-ды қолмен орнату файл жүктеуді бұзады.

Эталон кескіндер тұрақтылыққа көмектеседі, бірақ логотиптерді немесе өнім геометриясын дәл сақтауды кепілдемейді. Коммерциялық өнім мәлімдемелері үшін адам тарапынан бекіту қадамын сақтаңыз.

Өңдеуді жалғастыру

Келесі өңдеу үшін бекітілген нәтижені келесі бастапқы ретінде жүктеп, келесі нұсқауды жазыңыз. Әр нұсқаны бөлек файл атауымен сақтаңыз. Жалғастырмас бұрын сұралған өзгерісті де, өзгеріссіз қалуы тиіс элементтерді де тексеріңіз.

CometAPI арқылы Kling видеосын қалай жіберіп, алуға болады

Видео тапсырмасын жіберу

Kling мәтіннен-видео quickstart асинхронды тапсырманы қолданады: бір рет жіберіңіз, ID-ні сақтаңыз және сәйкес маршрутты сұраңыз. Төмендегі мысал model_name="kling-v3", mode="std", duration="5" және sound="off" қолданады. Бұл мәндер осы CometAPI Kling маршрутына қатысты. Бір нақты субъект әрекетін және жоспарланған камера қозғалысын сипаттаңыз.

Бұл провайдерге тән маршрут үшін model_name қолданыңыз және алғашқы тестте mode="std", duration="5" және sound="off" мәндерін сақтаңыз. Қайтарылған task_id-ні дереу сақтаңыз. Бұл мәтіннен-видео сұранысы; кескінге сілтемелер үшін құжатталған image-to-video маршруты қажет.

Кодты generate_video.py ретінде сақтаңыз. python generate_video.py орындап, тапсырма жасаңыз. Поллинг үзілгеннен кейін сақталған ID-мен python generate_video.py TASK_ID орындап жалғастырыңыз. Тапсырманы алу келісімі нәтижелер URL-ын құжаттайды және деректер қабығын да, тікелей тапсырма объектісін де қолдайды.

Тапсырманы поллинг жасап, нәтижені жүктеу

Видео жасау жауабы дайын медиа файл емес, тапсырма ID-ін береді. ID-ні жұмысымен бірге сақтаңыз, алу кезінде task_status-ты тексеріңіз және тек «сәтті» болғаннан кейін ғана task_result.videos[0].url жүктеңіз. Төмендегі толық видео скрипті жіберуді, поллингті, сәтсіздікті және жүктеуді өңдейді; оның жалғастыру режимі сол жұмысты қайта қолданады.

GET /kling/v1/videos/text2video/{task_id} арқылы бар тапсырманы алыңыз. task_status="succeed" күйін күтіңіз, содан кейін task_result.videos[0].url оқыңыз; "failed" күйін қате ретінде өңдеңіз. Жергілікті поллинг таймауты тапсырма ID-ін сақтап қалуы тиіс, сонда генерацияны қайта жібермей-ақ алуды жалғастыра аласыз.

import json
import os
import sys
import time
from pathlib import Path
import requests

route = "https://api.cometapi.com/kling/v1/videos/text2video"
headers = {"Authorization": f"Bearer {os.environ['COMETAPI_KEY']}"}

def read_task(response):
    response.raise_for_status()
    body = response.json()
    if body.get("code") not in (None, 0):
        raise RuntimeError(f"API error: {body.get('message', body.get('code'))}")
    return body.get("data", body)

if len(sys.argv) > 1:
    task_id = sys.argv[1]
else:
    created = read_task(requests.post(
        route, headers=headers,
        json={
            "model_name": "kling-v3",
            "prompt": "A wristwatch on dark marble. Slow lateral camera motion, soft light, no cuts.",
            "mode": "std", "duration": "5", "sound": "off",
        }, timeout=(10, 60),
    ))
    task_id = created["task_id"]
    Path("video-task-id.txt").write_text(task_id, encoding="utf-8")
print(f"Task ID: {task_id}", flush=True)

deadline = time.monotonic() + 600
while time.monotonic() < deadline:
    task = read_task(requests.get(
        f"{route}/{task_id}", headers=headers, timeout=(10, 30),
    ))
    state = task["task_status"]
    if state == "failed":
        raise RuntimeError(task.get("task_status_msg") or "Video task failed")
    if state == "succeed":
        Path("video-result.json").write_text(json.dumps(task), encoding="utf-8")
        asset_url = task["task_result"]["videos"][0]["url"]
        with requests.get(asset_url, stream=True, timeout=(10, 120)) as asset:
            asset.raise_for_status()
            with Path("product-video.mp4").open("wb") as output:
                for chunk in asset.iter_content(chunk_size=1024 * 1024):
                    if chunk:
                        output.write(chunk)
        print("Saved product-video.mp4")
        break
    time.sleep(5)
else:
    raise TimeoutError(f"Polling stopped. Resume with task ID {task_id}.")

Аяқтау және қалпына келтіру

product-video.mp4 файлын ашып, толық ойналатынын тексеріңіз. Скрипт жүктемей тұрып тапсырма нәтижесін сақтайды, сондықтан жүктеу сәтсіз болса, клипті қайта генерациялаудың қажеті жоқ. Оның жергілікті поллинг дедлайны күтуді тоқтатады; ол қашықтағы тапсырманы жоймайды. ID-ні сақтап, алуды жалғастырыңыз. Активті жүктеу CometAPI кілті медиа хостқа жіберілмес үшін әдейі бөлек аутентификациясыз сұранысты қолданады.

Видео мысалы мәтін кірісін қолданады. Бұл маршрутта reference_image өрісін ойдан шығарып бекітілген кескінді тіркей алмайсыз; image-to-video үшін таңдалған провайдердің құжатталған кескін жұмыс ағыны қажет.

CometAPI жұмыс ағынын продакшнге қалай кеңейтесіз?

Жұмыс жазбалары және қайта қолданылатын активтер

Әр промптты, конфигурацияны, бастапқы активті, тапсырма ID-ін және шығыс жолын бір қолданба жұмысы аясында сақтаңыз. Кескін нұсқаларын бөлек сақтаңыз, сонда пайдаланушылар бекітілген нұсқаға қайта орала алады. Видео үшін, сұраныс өңдегішінен шықпай тұрып тапсырма ID-ін тұрақтандырыңыз және алуды воркер басқарсын.

Callback және сәйкестендіру

Асинхронды видео жеткізу үшін CometAPI-дің вебхуктер және поллинг бойынша нұсқаулығын орындаңыз. Callback-тарды негізгі поллинг дұрыс жұмыс істегеннен кейін ғана қосыңыз және қайталанған хабарламаларды өңдеу қауіпсіз болсын. Callback кешіктірілген немесе жіберіліп алынған жұмыстар үшін алудың резервтік жолын сақтаңыз.

CometAPI жұмыс ағынында қателерді қалай өңдеу керек?

Бұл CometAPI жұмыс ағынын құру кезінде құжатталған API қате және қайта әрекет нұсқаулығын қолданыңыз. Алдымен жарамсыз сұранысты уақытша тасымалдау ақауынан бөліңіз. Жауап статусын, сұраныс идентификаторларын және тапсырма ID-лерін сервер журналдарында сақтаңыз, құпия кілттерді қоспай.

  • Аутентификация сәтсіздігі: қайта әрекет етпестен бұрын кілтті, аккаунт қолжетімділігін және мақсатты хостты тексеріңіз.
  • Қолдау көрсетілмейтін параметр: ең кіші құжатталған сұранысқа қайта оралыңыз, сосын бір опциялық өрісті бір уақытта қосыңыз.
  • Лимит немесе уақытша поллинг ақауы: шектелген «backoff»-пен күтіңіз және бар тапсырма сұрауын жалғастырыңыз.
  • Жасау таймауты: бірінші сұраныс жұмысты жасаған-жасамағанын анықтаңыз, содан кейін ғана қайта жіберіңіз. Генерацияны қайталау қосымша шығын шығаруы мүмкін.
  • Шығысты жүктеу сәтсіз: жаңа генерацияны бастамай, сақталған тапсырма нәтижесін қолданыңыз немесе бар тапсырманы қайта алыңыз.

Қорытынды

Алдымен қызметті және қол жеткізу бағытын таңдаңыз. Kenerate үшін ресми MCP/CLI орнатудан бастаңыз немесе кәсіпорын API талаптарын қолдаумен талқылаңыз. Бөлек CometAPI жүзеге асыруда кілтті конфигурациялап, кескін немесе Kling маршрутын орындаңыз, сақталған шығыстарды тексеріңіз және видео тапсырма ID-лерін қалпына келтіру үшін сақтаңыз. Пайдалы алғашқы межелік — бір валидті жергілікті кескін, бір өңделген нұсқа және бір ойнатылатын видео.

Сұрақ-жауап

Бұл CometAPI жұмыс ағыны толықтай браузерде жұмыс істей ала ма?

Браузер промпттар мен прогрессті көрсете алады, бірақ ашық фронтендте құпия API кілті болмауы тиіс. Генерация сұраныстарын және тапсырма трекингін өз бэкендіңізде жүргізіңіз, пайдаланушыны сонда аутентификациялаңыз және интерфейске тек қажетті нәтиже немесе прогрессті ғана қайтарыңыз. Бөлек CometAPI жүзеге асыруы да осы бөлуді ұстануы керек.

Kenerate AI кәсіпорын онбордингі алдында команда не сұрауы керек?

Жергілікті API құжаттамасын және сіздің аккаунтыңызға қолжетімді модельдер мен операциялардың жазбаша сипаттамасын сұраңыз. Сондай-ақ аутентификацияны, квоталарды, биллингті, тапсырма сақталуын және қолдау жауапкершілігін келісіңіз. Студия демонстрациясы шығармашылық мүмкіндікті көрсетеді, бірақ сіздің қолданбаңыз алатын сұраныс схемасын немесе қызмет шарттарын бекітпейді.

Бірдей Kenerate AI промпты бірдей API нәтижесін бере ме?

Оған сүйенбеңіз. Алдымен дәл модель нұсқасын, кіріс активтерін және қолжетімді генерация параметрлерін теңестіріңіз. Студия сіздің API сұранысыңыз қайталамайтын әдепкілерді немесе өңдеуді қосуы мүмкін. Қысқа брифті және бекітілген эталон активтерін сақтаңыз да, жаңа шығысты нақты жеткізу талаптарына сәйкес қайта қараңыз, пиксельдік тұрғыдан бірдей медиа күтпеңіз.

Оқуды жалғастыру

Осы мақаланы келесі шешіммен байланыстырыңыз.

Барлық тақырыптарды көру
Жарияланды Oct 22, 2026
Соңғы жаңарту Oct 23, 2026
24 көрілім
Түсініктілік, дереккөзге сілтеме және ағымдағы API терминологиясы бойынша тексерілді.

Толығырақ оқу