Сьогодні для вас урок з безкоштовного курсу платформи 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» вашого коду. Тепер ви зможете обробляти ці дані.
Для цього варто додати наступний код:
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:
Колега написала що зараз проходить аналогічний AI-курс, і коштує він 300 євро. Звісно там матеріалу більше і мабуть, до тебе як до учня, більше уваги. Але чесно, якщо маєте бажання та мету GenAI можно навчатися free, все доступно онлайн, і я так і роблю).
Post a Comment
А что вы думаете по этому поводу?