Extract conversation processor from config into separate function

- Only pass processor config arg required by configure_processor. Not
  the unused full config object
- Type arguments passed to methods configure processors
- Import json for use by conversation processor to load logs
This commit is contained in:
Debanjum Singh Solanky 2022-08-10 22:30:13 +03:00
parent 62eb66b8ca
commit 9628ca073c

View file

@ -1,5 +1,6 @@
# External Packages # External Packages
import torch import torch
import json
# Internal Packages # Internal Packages
from src.processor.ledger.beancount_to_jsonl import beancount_to_jsonl from src.processor.ledger.beancount_to_jsonl import beancount_to_jsonl
@ -9,7 +10,7 @@ from src.search_type import image_search, text_search
from src.utils.config import SearchType, SearchModels, ProcessorConfigModel, ConversationProcessorConfigModel from src.utils.config import SearchType, SearchModels, ProcessorConfigModel, ConversationProcessorConfigModel
from src.utils import state from src.utils import state
from src.utils.helpers import get_absolute_path from src.utils.helpers import get_absolute_path
from src.utils.rawconfig import FullConfig from src.utils.rawconfig import FullConfig, ProcessorConfig
def configure_server(args): def configure_server(args):
@ -26,7 +27,7 @@ def configure_server(args):
state.model = configure_search(state.model, args.config, args.regenerate, device=state.device, verbose=state.verbose) state.model = configure_search(state.model, args.config, args.regenerate, device=state.device, verbose=state.verbose)
# Initialize Processor from Config # Initialize Processor from Config
state.processor_config = configure_processor(args.config, verbose=state.verbose) state.processor_config = configure_processor(args.config.processor, verbose=state.verbose)
return args.host, args.port, args.socket return args.host, args.port, args.socket
@ -60,28 +61,34 @@ def configure_search(model: SearchModels, config: FullConfig, regenerate: bool,
return model return model
def configure_processor(config: FullConfig, verbose: int): def configure_processor(processor_config: ProcessorConfig, verbose: int):
if not config.processor: if not processor_config:
return return
processor_config = ProcessorConfigModel() processor = ProcessorConfigModel()
# Initialize Conversation Processor # Initialize Conversation Processor
processor_config.conversation = ConversationProcessorConfigModel(config.processor.conversation, verbose) processor.conversation = configure_conversation_processor(processor_config.conversation, verbose)
conversation_logfile = processor_config.conversation.conversation_logfile return processor
if processor_config.conversation.verbose:
def configure_conversation_processor(conversation_processor_config, verbose: int):
conversation_processor = ConversationProcessorConfigModel(conversation_processor_config, verbose)
conversation_logfile = conversation_processor.conversation_logfile
if conversation_processor.verbose:
print('INFO:\tLoading conversation logs from disk...') print('INFO:\tLoading conversation logs from disk...')
if conversation_logfile.expanduser().absolute().is_file(): if conversation_logfile.expanduser().absolute().is_file():
# Load Metadata Logs from Conversation Logfile # Load Metadata Logs from Conversation Logfile
with open(get_absolute_path(conversation_logfile), 'r') as f: with open(get_absolute_path(conversation_logfile), 'r') as f:
processor_config.conversation.meta_log = json.load(f) conversation_processor.meta_log = json.load(f)
print('INFO:\tConversation logs loaded from disk.') print('INFO:\tConversation logs loaded from disk.')
else: else:
# Initialize Conversation Logs # Initialize Conversation Logs
processor_config.conversation.meta_log = {} conversation_processor.meta_log = {}
processor_config.conversation.chat_session = "" conversation_processor.chat_session = ""
return processor_config return conversation_processor