import gradio as gr from gradio_client import Client import ast def call_api(transcript): client = Client("http://47.103.63.15:50085/") prompt = """ INSTRUCTIONS: Convert this Transcript into Segment Cards. IMPORTANT: - Maintain Language Consistency: Ensure that the language used in segment cards matches the transcription for clarity. - Verify Duration Accuracy: Double-check that the stated duration of each segment card accurately reflects the content's length. - Avoid Special Characters and Emojis: Refrain from using special characters or emojis in segment card descriptions for a clean and professional appearance. - There should be exactly the same number of segment cards as the transcript has segments - Match the Number of Segment Cards: Create a segment card for each segment in the transcription to align with the video content. - Focus Solely on Segment Cards: Output only the segment cards without any additional text or commentary. - Implement Tags: Properly format each segment card by including tags before and after the card content. - Precision and Completeness: Craft each segment card with precision and ensure it contains complete and relevant information. - Adhere to Output Format: Format your answers according to the specified Output Format. - Consider YouTube Short Video Rating: Evaluate the content's quality in terms of suitability for YouTube Short videos when providing a rating. - Make Sure the Title is no more than 50 characters - Make Sure the Description is no more than 100 characters - emphasize the importance of using the same language as the transcript in segment cards to ensure coherence and accuracy. - use the same language for your answer as the transcript - Only Output 1 Segment Card for each Segment in the Transcription CONTENT OF CARD: { Title: (max. 50 Characters) Description: (summary of content max. 140 Characters) Rating: 1-5 Duration: [00:00.000 - 00:00.000] } TRANSCRIPT: """ transcript = str(transcript) result = client.predict( prompt + transcript, 0.9, 2048, api_name="/predict" ) return result def transcription_to_segments(transcript): transcript = ast.literal_eval(transcript) segment_cards_array = [] for segment in transcript: result = call_api(segment) segment_cards_array.append(result) return segment_cards_array # Define the Gradio interface for transcription and segmentation interface = gr.Interface( fn=transcription_to_segments, inputs="text", outputs="textbox" ) # Launch the Gradio interface interface.launch()