File size: 1,364 Bytes
478dec6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
028a629
478dec6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
028a629
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# import os, sys
# from typing import List

# from externals.databases.pg_crud import create_profile, get_profile_by_id

# from services.models.data_model import RawProfile, Profile, AIProfile, Profiles, ResponseExtractOne, ResponseExtractBulk
# from services.knowledge.extract_profile import extract_one_profile as extract_one, extract_bulk_profile as extract_bulk


from utils.logger import get_logger
logger = get_logger("knowledge setup")

from sqlalchemy.ext.asyncio import AsyncSession
from externals.databases.pg_models import CVUser
from services.knowledge.upload_file import KnowledgeFileService
from services.knowledge.get_profile import KnowledgeGetProfileService
from services.knowledge.delete_file import KnowledgeDeleteService
from services.knowledge.extract_profile import KnowledgeExtractService
from services.knowledge.score_card import KnowledgeScoreCardService


class KnowledgeService:
    """
    Facade / Orchestrator for all Knowledge services
    """

    def __init__(self, db: AsyncSession, user: CVUser):
        self.db = db
        self.user = user

        self.file = KnowledgeFileService(db, user)
        self.profile = KnowledgeGetProfileService(db, user)
        self.delete = KnowledgeDeleteService(db, user)
        self.extract = KnowledgeExtractService(db, user)
        self.score_card = KnowledgeScoreCardService(db, user)