А АFriday, 18 April 2025

Що таке Batch API?

Привіт привіт.

Сьогодні для вас урок з безкоштовного курсу платформи Prometheus FRBTAI101 "Від початківця до експерта в ШІ". До речі курс надто цікавий, з великою кількістю практичних завдань, та гумором від авторів. Я вже склав тести з оцінкою 98% та отримав відповідний сертифікат, тому і вам його рекомендую.

Ок, що ж таке Batch API? 

Batch API – це інструмент для обробки великої кількості запитів до API OpenAI. Він дозволяє відправляти групи запитів. Це як ніби ви питали не одне питання у викладача, а одразу 100. Та й викладач відповідає на питання не по черзі, а одразу потроху на всі. Звісно, в світі людей таке неможливо, а в світі ШІ – ще й як! Це зветься асинхронність. Асинхронність дає можливість виконувати завдання незалежно одне від одного, без очікування завершення попередніх завдань. Замість того, щоб блокувати виконання запитів, що очікують на відповідь, асинхронність дозволяє перемикатися між різними завданнями, не перериваючи потік відповідей.

Основні переваги цієї платформи:

1. Економія коштів: на 50% дешевше, ніж звичайні API запити.

2. Більше лімітів: можливість обробляти більше запитів.

3. Ефективність: обробка великих обсягів даних без перевантаження системи.


12 задач, коли в пригоді стане Batch API

1. Аналіз відгуків клієнтів. Обробка тисяч відгуків для виявлення загальних тенденцій та настроїв.

2. Генерація контенту для блогу. Створення чернеток для багатьох статей одночасно.

3. Переклад документів. Пакетний переклад великої кількості текстів на різні мови.

4. Класифікація документів. Автоматична категоризація великої кількості документів.

5. Обробка наукових статей. Аналіз та узагальнення інформації з багатьох наукових публікацій.

6. Генерація описів продуктів. Створення описів для великого каталогу товарів.

7. Аналіз соціальних медіа. Обробка великої кількості постів для виявлення трендів.

8. Автоматизація відповідей на запитання. Генерація відповідей на часті запитання до служби підтримки.

9. Обробка юридичних документів. Аналіз та узагальнення інформації з великої кількості юридичних текстів.

10. Персоналізація рекомендацій. Генерація персоналізованих рекомендацій для великої бази користувачів.

11. Аналіз фінансових звітів. Обробка та узагальнення даних з багатьох фінансових документів.

12. Створення навчальних матеріалів. Генерація різноманітних вправ та прикладів для освітніх цілей.

Batch API дозволяє ефективно обробляти великі обсяги даних, але з економією часу та ресурсів, особливо коли миттєва відповідь не є критично важливою.


Працюємо з Batch API

Крок 1. Підготовка даних

1. Створіть файл формату JSONL з вашими запитами.

2. Можна як і в першому уроці цього модулю – створіть файл у текстовому редакторі й потім

замініть розширення на .jsonl. Нагадаємо, ви можете дати текст ШІ та попросити створити текст у форматі .jsonl. А далі зберегти в текстовому редакторі з потрібним розширенням.

3. Кожен рядок має виглядати так:

4. {"custom_id": "запит-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-4-

turbo-preview", "messages": [{"role": "user", "content": "Ваше запитання"}]}}

5. Збережіть файл, наприклад, як «batch_requests.jsonl».

6. Переходьте за посиланням та натискайте «Create». 

6. Завантажте підготовлений файл.

Обробка файлу триватиме десь 24 години, хоча напевно завершиться і швидше.


Як використовувати результати роботи з Batch API?

Припустимо, ви вже завантажили результати обробки та зберегли їх у змінну «output» вашого коду. Тепер ви зможете обробляти ці дані.

Для цього варто додати наступний код:

«python

import json

# Припустимо, що output.text містить ваші результати

results = output.text.split('\n')

for result in results:

if result strip(): # Перевіряємо чи рядок не пустий

  if result.strip(): # Перевіряємо, чи рядок не пустий

    data = json.loads(result)

 # Отримуємо custom_id та відповідь моделі

    custom_id = data['custom_id']

    response = data['response']['body']['choices'][0]['message']['content']

    

    print(f"ID запиту: {custom_id}")

    print(f"Відповідь: {response}")

    print("---")»


1. Використовуйте результати у вашому застосунку

Щоб використовувати дані одразу у вашому застосунку, можна додати, наприклад, такий код:

«python

def process_batch_results(output):

  results_dict = {}

  results = output.text.split('\n') # Припустимо, що output.text містить ваші результати

  for result in results:

    if result.strip():

      data = json.loads(result)

      custom_id = data['custom_id']

      response = data['response']['body']['choices'][0]['message']['content']

      results_dict[custom_id] = response

  return results_dict

# Використання результатів

batch_results = process_batch_results(output)

# Тепер ви можете використовувати результати у вашому коді

for custom_id, response in batch_results.items():

  # Наприклад, збереження в базу даних

  save_to_database(custom_id, response)

  # Або обробка результату

  processed_result = some_processing_function(response)

  # Або відображення на веб-сторінці

  display_on_webpage(custom_id, response)»


2. Інтеграція з web-застосунком

Якщо у вас є вебзастосунок, ви можете також одразу використовувати результати ваших запитів, наприклад, за допомогою такого кода:

«python

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/results/<custom_id>')

def get_result(custom_id):

  if custom_id in batch_results:

    return jsonify({'result': batch_results[custom_id]})

  else:

    return jsonify({'error': 'Result not found'}), 404

if __name__ == '__main__':

  app.run(debug=True)»


3. Асинхронна обробка

Якщо вам необхідно обробити велику кількість результатів, ви можете обробляти їх асинхронно. Для цього також є певний код:

«python

import asyncio

async def process_result(custom_id, response):

  # Асинхронна обробка кожного результату

  # Наприклад, збереження в базу даних або відправка по API

  await asyncio.sleep(0.1) # Імітація асинхронної операції

  print(f"Оброблено результат для {custom_id}")

async def process_all_results(batch_results):

  tasks = []

  for custom_id, response in batch_results.items():

    task = asyncio.create_task(process_result(custom_id, response))

    tasks.append(task)

  await asyncio.gather(*tasks)

# Використання

asyncio.run(process_all_results(batch_results))»

Ви можете адаптувати ці підходи відповідно до конкретних потреб вашого проєкту – аналіз даних, генерація контенту, або будь-якої іншої задачі. Тепер ви вмієте обробляти великі обсяги даних з Batch API та імплементувати результат.

Щасти.

1 comment:

Anonymous said...

Колега написала що зараз проходить аналогічний AI-курс, і коштує він 300 євро. Звісно там матеріалу більше і мабуть, до тебе як до учня, більше уваги. Але чесно, якщо маєте бажання та мету GenAI можно навчатися free, все доступно онлайн, і я так і роблю).

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное