Skip to content

Commit

Permalink
Merge pull request #190 from amosproj/feature/175-improve-ai-accracy
Browse files Browse the repository at this point in the history
Feature 175 - improve ai accuracy
  • Loading branch information
garvinkon authored Jan 23, 2024
2 parents 16a734d + 96b2dfc commit 900d956
Show file tree
Hide file tree
Showing 54 changed files with 142,735 additions and 1,489 deletions.
4 changes: 2 additions & 2 deletions Backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
2. Train the model by running the following command:

```bash
python train_t5_model.py
python train.py
```

3. Test the trained model by running the following command:
Expand All @@ -112,7 +112,7 @@
4. Test the untrained T5 model by running the following command:

```bash
python train_t5_model.py
python train.py
```

## Run the Email Proxy
Expand Down
12 changes: 6 additions & 6 deletions Backend/app/api/dto/ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@

class Ticket(BaseModel):
id: str = ""
title: str
service: str
category: str
title: str | None
service: str | None
category: str | None
keywords: list
customerPriority: CustomerPrio
customerPriority: CustomerPrio | None
affectedPerson: str
description: str
priority: Prio
priority: Prio | None
attachmentNames: list[str] = []
requestType: str
requestType: str | None
22 changes: 11 additions & 11 deletions Backend/app/api/v1/ticket_api.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
from bson import ObjectId
from fastapi import APIRouter, HTTPException, UploadFile
from fastapi.params import Depends, File, Path, Body
from starlette import status
from app.service.email_service import EmailService
from app.dependency.email_service import get_email_service

from app.api.dto.text_input import TextInput
from app.api.dto.ticket import Ticket
from app.dependency.ai_service import get_ai_ticket_service
from app.dependency.db_service import get_ticket_db_service, get_user_db_service
from app.dependency.trained_t5_model import get_trained_t5_model
from app.model.t5.use_trained_t5_model import TrainedT5Model
from app.dependency.email_service import get_email_service
from app.model.ai_ticket_service.ai_ticket_service import AITicketService
from app.service.email_service import EmailService
from app.service.ticket_db_service import TicketDBService
from app.service.user_db_service import UserDBService
from app.util.logger import logger
from bson import ObjectId
from fastapi import APIRouter, HTTPException, UploadFile
from fastapi.params import Depends, File, Path, Body
from starlette import status

router = APIRouter()


@router.post("/ticket/text", status_code=status.HTTP_201_CREATED, response_model=Ticket)
async def process_text(
input: TextInput = Body(default=TextInput()),
trained_t5_model: TrainedT5Model = Depends(get_trained_t5_model),
ticket_db_service: TicketDBService = Depends(get_ticket_db_service),
email_service: EmailService = Depends(get_email_service),
user_db_service: UserDBService = Depends(get_user_db_service),
ticket_service: AITicketService = Depends(get_ai_ticket_service),
):
"""
Receive Text from the Frontend
Expand All @@ -49,14 +48,15 @@ async def process_text(

# Run the model to process the input text
logger.info("Running the model...")
received_dict = trained_t5_model.run_model(input.text)
received_dict = ticket_service.create_ticket(input.text)
logger.info("Model execution complete. Result: %s", received_dict)

# Set service based on user's location
if input.email:
user = user_db_service.get_user_by_email(input.email)
if user and user.location:
if not received_dict.get("service") or received_dict["service"] == "":
logger.info("Setting ticket's service to user's location...")
received_dict["service"] = user.location

# Save the ticket to the database using the TicketDBService
Expand Down
5 changes: 5 additions & 0 deletions Backend/app/dependency/ai_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from app.model.ai_ticket_service.ai_ticket_service import AITicketService


def get_ai_ticket_service() -> AITicketService:
return AITicketService()
4 changes: 3 additions & 1 deletion Backend/app/dependency/t5_for_conditional_generation.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@


def get_t5_for_conditional_generation() -> T5ForConditionalGeneration:
return T5ForConditionalGeneration.from_pretrained("TalkTix/t5-ticket-creator")
return T5ForConditionalGeneration.from_pretrained(
"TalkTix/text_generation_t5-ticket-creator"
)
2 changes: 1 addition & 1 deletion Backend/app/dependency/t5_tokenizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@


def get_t5_tokenizer() -> T5Tokenizer:
return T5Tokenizer.from_pretrained("TalkTix/t5-ticket-creator")
return T5Tokenizer.from_pretrained("TalkTix/text_generation_t5-ticket-creator")
2 changes: 1 addition & 1 deletion Backend/app/dependency/trained_t5_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
get_t5_for_conditional_generation,
)
from app.dependency.t5_tokenizer import get_t5_tokenizer
from app.model.t5.use_trained_t5_model import TrainedT5Model
from app.model.ai_service.t5.use_trained_t5_model import TrainedT5Model


def get_trained_t5_model(
Expand Down
8 changes: 4 additions & 4 deletions Backend/app/enum/customer_prio.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


class CustomerPrio(str, Enum):
can_work = "Stoerung aber kann arbeiten"
can_not_work = "Stoerung kann nicht arbeiten"
multiple_people_can_not_work = "Stoerung mehrere können nicht arbeiten"
department_can_not_work = "Stoerung Abteilung kann nicht arbeiten"
can_work = "Disruption but can work"
can_not_work = "Disruption cannot work"
multiple_people_can_not_work = "Disruption several cannot work"
department_can_not_work = "Disruption department cannot work"
8 changes: 4 additions & 4 deletions Backend/app/enum/prio.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


class Prio(str, Enum):
low = "Niedrig"
medium = "Mittel"
high = "Hoch"
very_high = " Sehr Hoch"
low = "Low"
medium = "Medium"
high = "High"
very_high = "Very High"
File renamed without changes.
Loading

0 comments on commit 900d956

Please sign in to comment.