Всем привет, я написал простой сервер на Flask, и он получает на вход аудиофайл, id и имя файла и должен запускать программу, которая транскрибирует аудиофайл в текст.
Но когда на сервер прилетает несколько запросов мой ПК виснет из-за большой нагрузки. Получается что сервер на каждый файл (из нового запроса), запускает мою программу по транскрибации.
Может кто знает, как настроить очередь на обработку файлов.
У меня на сервер может за один запрос прилетать сразу несколько файлов и тогда они корректно становятся в очередь, а если прилетает несколько запросов, то ПК сразу виснет.
Сервер установлен на windows 10.
Код сервера выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
from flask import Flask, request, jsonify, send_file import os import subprocess import time import threading app = Flask(__name__) directory = os.path.dirname(os.path.abspath(__file__)) directory = directory.replace('\\', '/') def delete_file(file_path): time.sleep(300) # 5 минут ожидания os.remove(file_path) @app.route('/api/process_audio', methods=['POST']) def process_audio(): try: start_time = time.time() # Получаем данные audio_file = request.files['audio'] audio_id = request.form['audio_id'] audio_name = request.form['audio_name'] # Сохраняем аудио audio_path = os.path.join('program_audio/audio', f'{audio_name}.mp3') audio_file.save(audio_path) # Запуск обработки аудио subprocess.run('starter.bat', shell=True) # Ждем результата text_file_path = os.path.join('program_audio/final_text', f'{audio_name}_final.txt') timeout = time.time() + 60 while not os.path.exists(text_file_path): if time.time() > timeout: return jsonify({'error': 'Timeout'}), 500 time.sleep(1) # Формируем ответ end_time = time.time() elapsed_time = end_time - start_time response_data = { 'audio_id': audio_id, 'elapsed_time': elapsed_time } # Отправляем результат response = send_file(text_file_path, as_attachment=True) # Запускаем удаление файла через 5 минут delete_thread = threading.Thread(target=delete_file, args=(text_file_path,)) delete_thread.start() return response, response_data except Exception as e: return jsonify({'error': str(e)}), 500 if __name__ == '__main__': app.run(debug=True, port=39588, host='0.0.0.0') |
Помогите разобрать код:
сама задача: нужно из переменной countries_temperature написать код, который рассчитает среднюю температуру за период в Цельсиях для каждой страны.
countries_temperature = [['Таиланд', [75.2, 77, 78.8, 73.4, 68, 75.2, 77]],
['Германия', [57.2, 55.4, 59, 59, 53.6]],
['Россия', [35.6, 37.4, 39.2, 41, 42.8, 39.2, 35.6]],
['Польша', [50, 50, 53.6, 57.2, 55.4, 55.4]]
]
for Country, Temperature in countries_temperature:
Tsum = 0
for T in Temperature:
Tsum += (T - 32)*5/9
print('%10s %5.1f' % (Country, Tsum/len(Temperature)))
Что означает '%10s %5.1f' % в конце ???
Вот так выглядит мой код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from telegram import ReplyKeyboardMarkup, ReplyKeyboardRemove from telegram.ext import Updater, CommandHandler, MessageHandler, Filters def start(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я бот, который выдаёт мемы и шутки про Юлианну Караулову. Напиши /mem или /joke, чтобы получить контент.") def send_mem(update, context): context.bot.send_photo(chat_id=update.effective_chat.id, photo=meme) def send_joke(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text=joke) def main(): updater = Updater(token='YOUR_TOKEN', use_context=True) dispatcher = updater.dispatcher start_handler = CommandHandler('start', start) mem_handler = CommandHandler('mem', send_mem) joke_handler = CommandHandler('joke', send_joke) dispatcher.add_handler(start_handler) dispatcher.add_handler(mem_handler) dispatcher.add_handler(joke_handler) updater.start_polling() updater.idle() if __name__ == '__main__': main() |
нужна помощь с python, почему то не идет чтение из файла, помогите понять в чем ошибка и как ее исправить (все библиотеки установлены)
выводит, что ошибка в 12 строке ( File "C:\Users\89625\PycharmProjects\pythonProject\Practice.py", line 12, in <module>
data = pd.read_csv('data.csv'))
не понимаю в чем проблема, файл (для чтения) находится в той же директории, что и код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt from yellowbrick.features import Rank2D from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression from sklearn.feature_selection import SelectKBest, f_regression from sklearn.neighbors import KNeighborsRegressor from sklearn.tree import DecisionTreeRegressor from sklearn.metrics import r2_score data = pd.read_csv('data.csv') features = data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']] visualizer = Rank2D(features=features, algorithm='pearson') visualizer.fit(features) visualizer.transform(features) visualizer.show() plt.figure(figsize=(10, 8)) sns.heatmap(data.corr(), annot=True, cmap='coolwarm') plt.show() scaler = StandardScaler() data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']] = scaler.fit_transform(data[['y', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6']]) X = data[['x1', 'x2', 'x3', 'x4', 'x5', 'x6']] y = data['y'] model = LinearRegression() model.fit(X, y) predicted_values = model.predict(X) selector = SelectKBest(score_func=f_regression, k=3) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] model_knn = KNeighborsRegressor() model_knn.fit(X, y) predicted_values_knn = model_knn.predict(X) model_tree = DecisionTreeRegressor() model_tree.fit(X, y) predicted_values_tree = model_tree.predict(X) r2_linear = r2_score(y, predicted_values) r2_knn = r2_score(y, predicted_values_knn) r2_tree = r2_score(y, predicted_values_tree) best_model = max(r2_linear, r2_knn, r2_tree) plt.figure(figsize=(10, 8)) plt.****ter(y, y - predicted_values, color='blue', label='Linear Regression') plt.axhline(y=0, color='r', linestyle='-') plt.xlabel('Actual values') plt.ylabel('Residuals') plt.legend() plt.show() if best_model == r2_linear: print("Best model: Linear Regression") elif best_model == r2_knn: print("Best model: K-Nearest Neighbors") else: print("Best model: Decision Tree") |
Всем привет! Я - молодой python разработчик. Я люблю делать свои программы и набираться опытом, но я не очень креативный от слова совсем. Я не знаю какую идею придумать для проекта, чтобы потом сравнить свой опыт. Вообщем я очень прошу чтобы вы накидали идей. Вы можете писать проекты по типу телеграм ботов, небольших сайтов или вообще GUI приложений(среднего уровня). Очень хочу чтобы вы мне помогли!
Помогите пожалуйста, как в pycharm исправить это?
у меня есть бот на aiogram 2.25.2, мне нужно при старте бота получить json который присылает телеграм боту, важно то, что мне нужен именно исходный вебхук от телеги, а я могу получить лишь его часть, которую беру из объекта Message
1 2 3 |
@dp.message_handler(commands=['start']) async def start(message: types.Message): print(message) |
Как интегрировать IronPython в Unity?
Что такое множества (sets) в Python?
Как удалить ключ из словаря Python
Как изменить значение в словаре Python
Как обращаться к элементам словаря Python
Что такое словарь (dictionary) Python
Чем кортеж отличается от списка Python
Что такое кортежи (tuples) Python