Как автоматизировать отправку запросов через API в звуковую нейросеть с использованием данных из Excel с помощью Python?

Как я могу автоматизировать процесс перевода, используя Python, чтобы извлекать значения из таблицы Excel и подставлять их в код для выполнения нескольких запросов? Я только начал изучать Python, и хотел бы понять, как это можно реализовать.
  • 9 февраля 2024 г. 18:40
Ответы на вопрос 2
Чтобы автоматизировать отправку запросов в звуковую нейросеть, используя данные из Excel, вам понадобится выполнить несколько шагов:

1. Изучить API нейросети: для начала вам нужно ознакомиться с документацией API, чтобы понять, как формировать запросы, какие параметры необходимы и какой метод использовать (GET, POST и т.д.).

2. Установить необходимые библиотеки: вам понадобится библиотека для работы с Excel файлами (например, `openpyxl` или `pandas`) и для отправки HTTP-запросов (`requests`).

```bash
pip install requests openpyxl pandas
```

3. Написать скрипт, который будет:
   - читать данные из Excel;
   - формировать и отправлять запросы на API;
   - обрабатывать ответы от API.

Примерный код на Python может выглядеть так:

```python
import pandas as pd
import requests

# Загрузка данных из Excel
excel_file = 'your_data.xlsx'  # Укажите путь к вашему файлу Excel
df = pd.read_excel(excel_file)

# Отправка запросов в API
api_url = 'https://api.neuralnetwork.com/sound'  # Примерный URL API

for index, row in df.iterrows():
    # Извлечение данных для запроса из строки Excel
    data_for_api = {
        'param1': row['Column1'],  # Замените 'Column1' на реальное имя столбца с нужными данными
        'param2': row['Column2'],
        # Добавьте другие необходимые параметры
    }

    # Отправка POST-запроса (или GET, если требуется)
    response = requests.post(api_url, json=data_for_api)

    if response.status_code == 200:
        # Обработка успешного ответа
        print(f"Успешно обработана строка {index + 1}: {response.json()}")
    else:
        # Обработка ошибки
        print(f"Ошибка при обработке строки {index + 1}: {response.status_code}")

# Можно добавить код для сохранения ответов обратно в Excel или в другом формате по вашему выбору
```

Вам нужно будет адаптировать этот код под реальный API и структуру вашего Excel файла, учитывая правильные имена столбцов и параметров API, а также обеспечить нужную обработку ответов.

Не забудьте, что для доступа к некоторым API может потребоваться аутентификация, например, с помощью токенов или ключей API. Информацию об этом тоже найдите в документации к API и включите в код, если это необходимо.

Помните о безопасности и не храните чувствительные данные (такие как ключи API) в коде напрямую. Используйте переменные окружения или зашифрованные файлы конфигурации.
import os
# import time

import requests
from openpyxl import load_workbook
from dotenv import load_dotenv

API_URL = 'https://api.edenai.run/v2/audio/text_to_speech'
HEADERS = {"Authorization": f"Bearer {os.getenv('API_KEY')}"}
DEFAULT_LANGUAGE = 'ru-RU'
DEFAULT_OPTION = 'MALE'
DEFAULT_VOICE = 'ru-RU_Alexei Syomin'


def convert_text_to_speech(row_number: int, _id: int, text: str):
    payload = {
        'providers': 'lovoai',
        'language': DEFAULT_LANGUAGE,
        'option': DEFAULT_OPTION,
        'lovoai': DEFAULT_VOICE,
        'text': text
    }

    response = requests.post(API_URL, json=payload, headers=HEADERS)
    result = response.json()

    audio_url = result.get('lovoai', {}).get('audio_resource_url')
    if audio_url:
        audio_content = requests.get(audio_url).content
        with open(f'row_{row_number}_ID_{_id}.ogg', 'wb') as audio_file:
            audio_file.write(audio_content)


def main(file_name: str):
    book = load_workbook(file_name)
    sheet = book.active
    for row in range(2, sheet.max_row + 1):
        _id = sheet[row][0].value
        text = sheet[row][1].value
        convert_text_to_speech(row, _id, text)

        # Установите задержку, если имеется ограничение на кол-во запросов в секунду
        # time.sleep(3)


if __name__ == '__main__':
    load_dotenv()
    main('name.xlsx')
Похожие вопросы