Fix video generation

This commit is contained in:
Cristiano Ferreira
2024-11-08 19:05:29 +00:00
parent a3ea91793e
commit b473b30a75
3 changed files with 12 additions and 11 deletions

View File

@@ -4,5 +4,5 @@ from abc import ABC, abstractmethod
class IVideoGeneratorService(ABC): class IVideoGeneratorService(ABC):
@abstractmethod @abstractmethod
async def create_video(self, text: str, avatar: str): async def create_video(self, text: str, avatar: str, title: str):
pass pass

View File

@@ -1,17 +1,17 @@
import logging import logging
import os import os
import random
import re import re
import uuid import uuid
import random
from typing import Dict, List, Optional from typing import Dict, List, Optional
from app.repositories.abc import IFileStorage, IDocumentStore
from app.services.abc import ISpeakingService, ILLMService, IVideoGeneratorService, ISpeechToTextService
from app.configs.constants import ( from app.configs.constants import (
FieldsAndExercises, GPTModels, TemperatureSettings, FieldsAndExercises, GPTModels, TemperatureSettings,
ELAIAvatars, FilePaths ELAIAvatars, FilePaths
) )
from app.helpers import TextHelper from app.helpers import TextHelper
from app.repositories.abc import IFileStorage, IDocumentStore
from app.services.abc import ISpeakingService, ILLMService, IVideoGeneratorService, ISpeechToTextService
class SpeakingService(ISpeakingService): class SpeakingService(ISpeakingService):
@@ -462,7 +462,8 @@ class SpeakingService(ISpeakingService):
result = await self._create_video( result = await self._create_video(
exercise["question"], exercise["question"],
avatar, avatar,
f'Failed to create video for part {part} question: {str(exercise["question"])}' f'Failed to create video for part {part} question: {str(exercise["question"])}',
req_id
) )
if result is not None: if result is not None:
template["exercises"][template_index]["prompts"] = exercise["prompts"] template["exercises"][template_index]["prompts"] = exercise["prompts"]
@@ -503,7 +504,8 @@ class SpeakingService(ISpeakingService):
avatar, avatar,
'POST - generate_video_{p} - {r} - Failed to create video for part {p} question: {q}'.format( 'POST - generate_video_{p} - {r} - Failed to create video for part {p} question: {q}'.format(
p=part, r=request_id, q=question p=part, r=request_id, q=question
) ),
request_id
) )
if result is not None: if result is not None:
self._logger.info(f'POST - generate_video_{part} - {request_id} - Video created') self._logger.info(f'POST - generate_video_{part} - {request_id} - Video created')

View File

@@ -14,19 +14,18 @@ class Heygen(IVideoGeneratorService):
def __init__(self, client: AsyncClient, token: str): def __init__(self, client: AsyncClient, token: str):
pass pass
"""
self._get_header = { self._get_header = {
'X-Api-Key': heygen_token 'X-Api-Key': token
} }
self._post_header = { self._post_header = {
'X-Api-Key': heygen_token, 'X-Api-Key': token,
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
self._http_client = client self._http_client = client
self._logger = logging.getLogger(__name__) self._logger = logging.getLogger(__name__)
"""
async def create_video(self, text: str, avatar: str, title="video_title": str):
async def create_video(self, text: str, avatar: str, title="video_title"):
pass pass
# POST TO CREATE VIDEO # POST TO CREATE VIDEO
create_video_url = 'https://api.heygen.com/v2/template/' + avatar + '/generate' create_video_url = 'https://api.heygen.com/v2/template/' + avatar + '/generate'