Spaces:
Sleeping
Sleeping
File size: 4,346 Bytes
d691ef9 b794c07 d691ef9 |
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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
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
|