Merge pull request #2 from presenton/edit-with-prompt

fixes for edit with prompt
This commit is contained in:
Suraj Jha 2025-05-11 00:26:49 +05:45 committed by GitHub
commit 12f2baa6a3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 20 additions and 13 deletions

View file

@ -21,6 +21,7 @@ from ppt_generator.slide_generator import (
from ppt_generator.slide_model_utils import SlideModelUtils
from api.sql_models import PresentationSqlModel, SlideSqlModel
from api.services.database import get_sql_session
from ppt_generator.models.other_models import SlideType
class PresentationEditHandler:
@ -47,19 +48,20 @@ class PresentationEditHandler:
with get_sql_session() as sql_session:
presentation = sql_session.get(PresentationSqlModel, self.presentation_id)
slide_to_edit = sql_session.exec(
slide_to_edit_sql = sql_session.exec(
select(SlideSqlModel).where(SlideSqlModel.index == self.slide_index)
).first()
slide_to_edit = SlideModel.from_dict(slide_to_edit.model_dump(mode="json"))
slide_to_edit = SlideModel.from_dict(slide_to_edit_sql.model_dump(mode="json"))
new_slide_type = await get_slide_type_from_prompt(
self.prompt, slide_to_edit
)
edited_content = await get_edited_slide_content_model(
self.prompt,
new_slide_type.slide_type,
SlideType(new_slide_type.slide_type),
slide_to_edit,
presentation.theme,
presentation.language,
@ -68,7 +70,7 @@ class PresentationEditHandler:
new_slide_model = SlideModel(
id=slide_to_edit.id,
index=slide_to_edit.index,
type=new_slide_type.slide_type,
type=SlideType(new_slide_type.slide_type),
design_index=slide_to_edit.design_index,
images=None,
icons=None,
@ -141,9 +143,18 @@ class PresentationEditHandler:
slide_to_edit.images = new_slide_model.images
slide_to_edit.icons = new_slide_model.icons
slide_to_edit.content = new_slide_model.content
slide_to_edit.type = new_slide_type.slide_type
slide_to_edit.type = SlideType(new_slide_type.slide_type)
slide_to_edit_sql.index = slide_to_edit.index
slide_to_edit_sql.type = slide_to_edit.type.value
slide_to_edit_sql.design_index = slide_to_edit.design_index
slide_to_edit_sql.images = slide_to_edit.images
slide_to_edit_sql.icons = slide_to_edit.icons
slide_to_edit_sql.content = slide_to_edit.content.model_dump(mode="json")
slide_to_edit_sql.properties = slide_to_edit.properties
slide_to_edit_sql.presentation = slide_to_edit.presentation
sql_session.commit()
sql_session.refresh(slide_to_edit)
sql_session.refresh(slide_to_edit_sql)
logging_service.logger.info(
logging_service.message(slide_to_edit.model_dump(mode="json")),

View file

@ -62,8 +62,6 @@ async def get_validated_response(
if response and type(response) is list:
response = response[0]["args"]
print(response)
validated_response = response_model(**response)
return validated_response
except ValidationError as e:

View file

@ -1,5 +1,5 @@
from enum import Enum
from pydantic import BaseModel
from pydantic import BaseModel, Field
# """
@ -25,9 +25,7 @@ class SlideType(Enum):
type7 = 7
type8 = 8
type9 = 9
type10 = 10
type11 = 11
class SlideTypeModel(BaseModel):
slide_type: SlideType
slide_type: int = Field(default=1, gte=1, lte=9, description="Slide type from 1 to 9")

View file

@ -109,7 +109,7 @@ async def get_edited_slide_content_model(
"language": language or "English",
"theme": theme,
"slide_data": slide_data,
"notes": content_type_model_type.get_notes(),
"notes": "",
},
content_type_model_type,
)