Skip to content

Commit

Permalink
Merge pull request #146 from hoomano/141-refacto-workflowstep-to-mana…
Browse files Browse the repository at this point in the history
…ge-deprecated-steps

141 refacto workflowstep to manage deprecated steps
  • Loading branch information
KellyRousselHoomano authored Jun 28, 2024
2 parents c06c8b9 + 6f08221 commit 780500a
Show file tree
Hide file tree
Showing 79 changed files with 544 additions and 655 deletions.
4 changes: 2 additions & 2 deletions backend/app/models/assistant/home_chat_assistant.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from datetime import datetime


from mojodex_core.knowledge_manager import KnowledgeManager
from mojodex_core.tag_manager import TagManager
Expand All @@ -14,7 +14,7 @@
from mojodex_core.entities.instruct_user_task import InstructUserTask
from mojodex_core.llm_engine.mpt import MPT
from mojodex_core.task_execution_title_summary_generator import TaskExecutionTitleSummaryGenerator

from datetime import datetime

class HomeChatAssistant(ChatAssistant):
mpt_file = "instructions/home_chat_run.mpt"
Expand Down
3 changes: 1 addition & 2 deletions backend/app/models/assistant/session_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,14 @@
from mojodex_core.entities.user_workflow_execution import UserWorkflowExecution
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import MdProducedTextVersion, MdUserTask, MdTask, MdUserTaskExecution
from datetime import datetime
from models.voice_generator import VoiceGenerator
from packaging import version
from functools import wraps
from sqlalchemy.orm.attributes import flag_modified
from mojodex_core.db import MojodexCoreDB
from mojodex_core.db import Session as DbSession
from mojodex_core.task_execution_title_summary_generator import TaskExecutionTitleSummaryGenerator

from datetime import datetime

class SessionController:

Expand Down
2 changes: 0 additions & 2 deletions backend/app/models/documents/document_manager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import os

from mojodex_core.entities.db_base_entities import *
from app import db
Expand All @@ -7,7 +6,6 @@
from mojodex_backend_logger import MojodexBackendLogger

from mojodex_core.llm_engine.providers.model_loader import ModelLoader
from mojodex_core.llm_engine.providers.openai_embedding import OpenAIEmbedding


class DocumentManager:
Expand Down
8 changes: 1 addition & 7 deletions backend/app/models/purchase_manager.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
import os
from datetime import datetime, timedelta

import pytz
import stripe
from mojodex_backend_logger import MojodexBackendLogger

from app import db
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *

from mojodex_core.mail import send_admin_email
from sqlalchemy import and_, func, or_, text
from sqlalchemy.sql.functions import coalesce
from packaging import version

from datetime import timedelta

class PurchaseManager:
logger_prefix = "Purchase Manager:: "
Expand Down
2 changes: 1 addition & 1 deletion backend/app/models/session_creator.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
from mojodex_core.db import with_db_session
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import MdUser, MdSession
from datetime import datetime
import hashlib
import random
import string
from datetime import datetime

class SessionCreator:
@staticmethod
Expand Down
1 change: 0 additions & 1 deletion backend/app/models/tasks/workflows/workflow_manager.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
from models.assistant.chat_assistant import ChatAssistant
from mojodex_core.tag_manager import TagManager
from app import server_socket, placeholder_generator
from models.workflows.workflow_process_controller import WorkflowProcessController
Expand Down
3 changes: 1 addition & 2 deletions backend/app/models/text_edit_action_manager.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import os
from datetime import datetime
from models.assistant.execution_manager import ExecutionManager
from mojodex_core.db import with_db_session
from mojodex_core.entities.db_base_entities import MdProducedTextVersion, MdMessage
Expand All @@ -9,7 +8,7 @@
from mojodex_core.llm_engine.providers.model_loader import ModelLoader
from mojodex_core.produced_text_managers.produced_text_manager import ProducedTextManager
from mojodex_core.produced_text_managers.task_produced_text_manager import TaskProducedTextManager

from datetime import datetime

class TextEditActionManager:
logger_prefix = "TextEditActionManager"
Expand Down
13 changes: 8 additions & 5 deletions backend/app/models/workflows/workflow_process_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,11 @@ def _get_next_step_execution_to_run(self):
self._current_step = self._generate_new_step_execution(self.workflow_execution.task.steps[0],
self.get_formatted_initial_parameters()) # of first step
return self._current_step

last_validated_step_execution = self.workflow_execution.past_valid_step_executions[-1]
if len(self.workflow_execution.past_valid_step_executions) > 1: # no dependency as it was the first step


if len(self.workflow_execution.past_valid_step_executions) > 1: # if it's not the 1st else no dependency as it was the first step
db_dependency_step = self.db_session.query(MdWorkflowStep) \
.join(MdUserTask, MdUserTask.task_fk == MdWorkflowStep.task_fk) \
.filter(MdUserTask.user_task_pk == self.workflow_execution.user_task_fk) \
Expand Down Expand Up @@ -84,10 +87,10 @@ def _get_next_step_execution_to_run(self):
.filter(
case(
# When `MdWorkflowStep.user_validation_required` is `True`, we check that `MdUserWorkflowStepExecution.validated` is also `True`
[

(MdWorkflowStep.user_validation_required == True,
UserWorkflowStepExecution.validated == True),
],

# if `user_validation_required` is `False`, we don't care about the `validated` status, and the `MdUserWorkflowStepExecution` will be included in the results regardless of its `validated` value.
else_=True
)) \
Expand Down Expand Up @@ -197,11 +200,11 @@ def _generate_produced_text(self):
.filter(
case(
# When `MdWorkflowStep.user_validation_required` is `True`, we check that `MdUserWorkflowStepExecution.validated` is also `True`
[

(
MdWorkflowStep.user_validation_required == True,
UserWorkflowStepExecution.validated == True),
],

# if `user_validation_required` is `False`, we don't care about the `validated` status, and the `MdUserWorkflowStepExecution` will be included in the results regardless of its `validated` value.
else_=True
)
Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/associate_free_product.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from datetime import datetime


from bs4 import BeautifulSoup
from jinja2 import Template
Expand All @@ -14,7 +14,7 @@
from sqlalchemy import or_

from mojodex_core.mail import mojo_mail_client

from datetime import datetime

class FreeProductAssociation(Resource):
welcome_email_dir = "mojodex_core/mails_templates/welcome"
Expand Down
8 changes: 3 additions & 5 deletions backend/app/routes/calendar_suggestion.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import os
import time
from flask import request
from flask_restful import Resource
Expand All @@ -7,7 +6,7 @@
from mojodex_core.entities.user import User
from mojodex_core.logging_handler import log_error

from datetime import datetime, timedelta

from jinja2 import Template
from mojodex_core.entities.db_base_entities import *

Expand All @@ -17,7 +16,7 @@
from mojodex_core.json_loader import json_decode_retry
from mojodex_core.logging_handler import on_json_error
from packaging import version

from datetime import datetime, timedelta, timezone

class CalendarSuggestion(Resource):

Expand All @@ -37,8 +36,7 @@ def __get_global_context(self, timezoneOffsetMinutes):
# TODO: with @kelly check how to mpt-ize this
with open("mojodex_core/prompts/knowledge/global_context.txt", 'r') as f:
template = Template(f.read())
timestamp = datetime.utcnow(
) - timedelta(minutes=timezoneOffsetMinutes if timezoneOffsetMinutes else 0)
timestamp = datetime.now(timezone.utc) - timedelta(minutes=timezoneOffsetMinutes if timezoneOffsetMinutes else 0)
return template.render(weekday=timestamp.strftime("%A"),
datetime=timestamp.strftime("%d %B %Y"),
time=timestamp.strftime("%H:%M"))
Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/calendar_suggestion_notification.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import os
from datetime import datetime


import requests
from flask import request
from flask_restful import Resource
from app import db
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *

from datetime import datetime

class CalendarSuggestionNotifications(Resource):

Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/check_expired_purchases.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@
from mojodex_core.entities.db_base_entities import *

from models.purchase_manager import PurchaseManager
from datetime import datetime


from sqlalchemy import func, text

from mojodex_core.mail import send_admin_email

from datetime import datetime

class ExpiredPurchasesChecker(Resource):

Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/company.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from datetime import datetime


import requests
from flask import request
Expand All @@ -13,7 +13,7 @@
from mojodex_core.logging_handler import on_json_error

from mojodex_core.llm_engine.mpt import MPT

from datetime import datetime

class Company(Resource):
correct_company_info_mpt_filename = "instructions/correct_company_infos.mpt"
Expand Down
9 changes: 4 additions & 5 deletions backend/app/routes/daily_emails.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import json
import os
from datetime import datetime, timedelta


import requests
from flask import request
Expand All @@ -12,7 +11,7 @@
from sqlalchemy.sql.functions import coalesce

from mojodex_core.mail import send_admin_email, admin_email_receivers

from datetime import datetime, timedelta

class DailyEmails(Resource):
reminder_email_type="reminder_email"
Expand Down Expand Up @@ -197,10 +196,10 @@ def post(self):
func.coalesce(
n_meeting_minutes_subquery.c.today_meeting_minutes_counts, 0
).label("n_meeting_minutes_today"),
case([(reminder_email_yesterday_subquery.c.user_id.is_(None), False)],
case((reminder_email_yesterday_subquery.c.user_id.is_(None), False),
else_=True).label(
"received_reminder_email_yesterday"),
case([(reminder_email_day_before_yesterday_subquery.c.user_id.is_(None), False)],
case((reminder_email_day_before_yesterday_subquery.c.user_id.is_(None), False),
else_=True).label(
"reminder_email_day_before_yesterday"),
func.coalesce(process_count_subquery.c.process_count_since_today, 0).label("n_processes_created_today"),
Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/daily_notifications.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import os
from datetime import datetime

import requests
from flask import request
from flask_restful import Resource
from app import db
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *
from sqlalchemy import func, text, extract

from datetime import datetime

class DailyNotifications(Resource):

Expand Down
3 changes: 2 additions & 1 deletion backend/app/routes/document.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import os
from datetime import datetime

from flask import request
from flask_restful import Resource
from app import db
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *
from datetime import datetime
class Document(Resource):

def put(self):
Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/document_chunk.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import os
from datetime import datetime


from flask import request
from flask_restful import Resource
from app import db, document_manager
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *

from datetime import datetime

class DocumentChunk(Resource):

Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/event.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from datetime import datetime


from flask import request
from flask_restful import Resource
Expand All @@ -8,7 +8,7 @@
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *
from mojodex_core.mail import mojo_mail_client

from datetime import datetime



Expand Down
4 changes: 2 additions & 2 deletions backend/app/routes/extract_todos.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import os
from datetime import datetime, timedelta

from operator import and_

import requests
Expand All @@ -9,7 +9,7 @@
from mojodex_core.logging_handler import log_error
from mojodex_core.entities.db_base_entities import *
from sqlalchemy import func, desc

from datetime import datetime, timedelta

class ExtractTodos(Resource):

Expand Down
6 changes: 3 additions & 3 deletions backend/app/routes/free_users_engagement.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

import os
from datetime import datetime, timedelta


from flask import request
from flask_restful import Resource
Expand All @@ -14,7 +14,7 @@
from mojodex_core.mail import send_admin_email

from models.purchase_manager import PurchaseManager

from datetime import datetime, timedelta, timezone

class FreeUsersEngagementChecker(Resource):
logger_prefix = "FreeUsersEngagementChecker::"
Expand Down Expand Up @@ -66,7 +66,7 @@ def post(self):

# Calculate the date before 2 working days (we don't count today)
# if today = monday, we check if user has done nothing thursday, friday and today
today = datetime.utcnow().date() - timedelta(days=3)
today =datetime.now(timezone.utc).date() - timedelta(days=3)
start_date_cutoff = self.calculate_previous_working_day(today)

# Query for users with active free and limited products and MdUser.creation_date before the start_date_cutoff
Expand Down
4 changes: 3 additions & 1 deletion backend/app/routes/home_chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from mojodex_core.entities.message import Message
from mojodex_core.llm_engine.mpt import MPT
from mojodex_core.logging_handler import log_error
from datetime import datetime, timedelta

from mojodex_core.entities.db_base_entities import MdHomeChat, MdMessage, MdUserTaskExecution, MdUserTask, MdTask
from packaging import version

Expand All @@ -20,6 +20,8 @@

from mojodex_core.entities.session import Session
from mojodex_core.entities.user import User
from datetime import datetime, timedelta

class HomeChat(Resource):
welcome_message_mpt_filename = "instructions/welcome_message.mpt"
message_header_start_tag, message_header_end_tag = "<message_header>", "</message_header>"
Expand Down
Loading

0 comments on commit 780500a

Please sign in to comment.