У меня Django проект. Celery, Python. Я создаю задачи "prompt" и делаю запрос с помощью groq_sdk к AI модели. Также я делаю вызываю эту задачу в shared_task "process_file", чтобы отправить текст для промпта (мой текст -- это транскрибация аудиофайла), подскажи, как мне отправить большой текст в промпт, если есть rate limits по использованию данной модели, а именно:
модель, которую я использую -- llama-3.1-70b-versatile;
кол-во запросов в минуту: 30;
кол-во токенов в минуту:	14 400;
запросов в день: 20 000;
кол-во токенов в день: 500 000;

**Главный Вопрос**:
Как мне передать большой текст на промпт, может, кусками (с помощью context window), чтобы не отругалась 429 ошибка на rate limits, ибо кол-во токенов в минуту 14 400;

**Мой код**:
@shared_task
def process_file(file_id, user_id, language_code):
    file_instance = get_object_or_404(File, id=file_id)
    user = User.objects.get(id=user_id)
    audio_file_path = convert_to_audio(file_instance.file.path)

    sentry_sdk.set_user({ # setting user for the sentry context
        "id": user.id,
        "email": user.email
    })

    if audio_file_path is None:
        return

    config = aai.TranscriptionConfig(
        speaker_labels=True,
        language_code=language_code,
    )
    transcriber = aai.Transcriber()

    try:
        audio_url = transcriber.upload_file(audio_file_path)
        transcript = transcriber.transcribe(audio_url, config=config)

        speakers = {}

        for utterance in transcript.utterances:
            if utterance.speaker not in speakers:
                speakers[utterance.speaker] = create_or_get_speaker(
                    utterance.speaker, file_instance
                )

        transcription_text = transcript.text

        process_transcription(transcript, file_instance, speakers)

        action_type_id = TranscriptionActionType.objects.get_or_create(
            name_en="Summary",
            defaults={
                "system_content": "You are a text summarization assistant that provides very concise summaries. "
                "The summary must be under 180 characters.",
                "user_content": "Provide a summary of the text '${text}' in ${language}. "
                                "You are a text summarization assistant that provides concise summaries. "
                                "Ensure the summary is under 180 characters and is written in the requested language.",
            },
        )[0].id

        transcription_action_id = prompt.delay(
            transcription_text, action_type_id, file_id, language_code
        ).get(disable_sync_subtasks=False)

        s3_client.upload_file(audio_file_path, file_instance.s3_key)

        file_instance.is_transcribed = True
        file_instance.summary = TranscriptionAction.objects.get(
            id=transcription_action_id
        ).content
        file_instance.save()

        FailedTranscriptionTask.objects.filter(file_id=file_id).delete()

        subject = "Транскрибация файла готова!"
        to_email = user.email
        link_to_transcription = f"{APP_URL}/transcription/{file_id}/"
        send_transcription_email.delay(
            to_email,
            re.match(r"^.{0,100}", transcription_text).group(0) + "...",
            link_to_transcription,
            file_instance.true_file_name,
            subject,
        )
    except Exception as e:
        error_message = f"An error occurred inside transcription: {e}"
        print(error_message)
        sentry_sdk.capture_message(f"Transcription has been failed: {e}", level="error")

        failed_task, created = FailedTranscriptionTask.objects.get_or_create(
            file=file_instance,
            defaults={
                'user': user,
                'language_code': language_code,
                'error_message': str(e),
                'retry_count': 0,
            }
        )
        if not created:
            failed_task.error_message = str(e)
            failed_task.retry_count += 1
            failed_task.last_attempted_at = timezone.now()
            failed_task.save()

        return "error"
    finally:
        sentry_sdk.set_user(None)
        cleanup_files([audio_file_path, file_instance.file.path])

@shared_task(name="prompt_queue", rate_limit="30/m")
def prompt(text, action_type_id, file_id, language_code, kit_id=None):
    try:
        action_type = TranscriptionActionType.objects.get(id=action_type_id)
        completion = client.chat.completions.create(
            model="llama-3.1-70b-versatile",
            messages=[
                {"role": "system", "content": action_type.system_content},
                {
                    "role": "user",
                    "content": action_type.user_content.format(
                        text=text, language=language_code
                    ),
                },
            ],
            temperature=0.1,
            max_tokens=6000,
            top_p=1,
            stream=False,
            stop=None,
        )
    
        content = completion.choices[0].message.content
    
        transcription_action = TranscriptionAction.objects.create(
            file_id=file_id, action_type_id=action_type_id, content=content, kit_id=kit_id
        )
        return transcription_action.id
    except Exception as e:
        error_message = f"An error occurred in the prompt function: {e}"
        print(error_message)
        sentry_sdk.capture_exception(e)
        return None