1_full_demo_webinarium / src /mainFunctions.py
MrSimple01's picture
Update src/mainFunctions.py
b794c07 verified
raw
history blame contribute delete
4.35 kB
import os
import gradio as gr
import tempfile
from src.video_processing import process_video_file
from src.documentProcessing import process_pdf_file, process_docx_file
from src.audioProcessing import process_audio_file
from src.quiz_processing import analyze_document
def combined_process_video_file(video_file, output_format, elevenlabs_api_key, model_id,
gemini_api_key, claude_api_key, course_name, section_name,
lesson_name, language):
result = process_video_file(
video_file, output_format, elevenlabs_api_key, model_id
)
audio_path = result[0]
audio_msg = result[1]
transcript_file = result[2]
transcript_msg = result[3]
transcript_text = result[4]
if not transcript_text:
return audio_path, audio_msg, transcript_file, transcript_msg, "No transcript text to analyze", None, None
enriched_transcript = f"""
COURSE: {course_name}
SECTION: {section_name}
LESSON: {lesson_name}
TRANSCRIPT:
{transcript_text}
"""
formatted_quiz, quiz_file, json_file = analyze_document(
enriched_transcript,
gemini_api_key,
claude_api_key,
course_name,
section_name,
lesson_name,
language
)
return audio_path, audio_msg, transcript_file, transcript_msg, formatted_quiz, quiz_file, json_file
def process_pdf_document(pdf_file, gemini_api_key, claude_api_key, course_name,
section_name, lesson_name, language):
if not pdf_file:
return "No file uploaded", None, None, None
text_file, text_content = process_pdf_file(pdf_file)
if not text_content or text_file is None:
return f"Error: {text_content}", None, None, None
extraction_msg = f"Text extracted from PDF successfully. Length: {len(text_content)} characters."
enriched_content = f"""
COURSE: {course_name}
SECTION: {section_name}
LESSON: {lesson_name}
CONTENT:
{text_content}
"""
formatted_quiz, quiz_file, json_file = analyze_document(
enriched_content,
gemini_api_key,
claude_api_key,
course_name,
section_name,
lesson_name,
language
)
return extraction_msg, text_file, formatted_quiz, quiz_file, json_file
def process_docx_document(docx_file, gemini_api_key, claude_api_key, course_name,
section_name, lesson_name, language):
if not docx_file:
return "No file uploaded", None, None, None
text_file, text_content = process_docx_file(docx_file)
if not text_content or text_file is None:
return f"Error: {text_content}", None, None, None
extraction_msg = f"Text extracted from Word document successfully. Length: {len(text_content)} characters."
enriched_content = f"""
COURSE: {course_name}
SECTION: {section_name}
LESSON: {lesson_name}
CONTENT:
{text_content}
"""
formatted_quiz, quiz_file, json_file = analyze_document(
enriched_content,
gemini_api_key,
claude_api_key,
course_name,
section_name,
lesson_name,
language
)
return extraction_msg, text_file, formatted_quiz, quiz_file, json_file
def process_audio_document(audio_file, elevenlabs_api_key, model_id, gemini_api_key,
claude_api_key, course_name, section_name, lesson_name, language):
if not audio_file:
return "No file uploaded", None, None, None, None
transcript_file, transcript_msg, transcript_text = process_audio_file(
audio_file, elevenlabs_api_key, model_id
)
if not transcript_text or transcript_file is None:
return transcript_msg, None, None, None, None
enriched_content = f"""
COURSE: {course_name}
SECTION: {section_name}
LESSON: {lesson_name}
TRANSCRIPT:
{transcript_text}
"""
formatted_quiz, quiz_file, json_file = analyze_document(
enriched_content,
gemini_api_key,
claude_api_key,
course_name,
section_name,
lesson_name,
language
)
return transcript_msg, transcript_file, formatted_quiz, quiz_file, json_file