From 946ac0d45d4dab7c80d4e2a96957cd6dc87a75ba Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Sat, 7 Dec 2024 21:39:34 +0100 Subject: fixed options normalization --- py/utils.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'py/utils.py') diff --git a/py/utils.py b/py/utils.py index 264c0c4..7f8fa90 100644 --- a/py/utils.py +++ b/py/utils.py @@ -44,12 +44,21 @@ def load_api_key(config_token_file_path): return (api_key, org_id) -def normalize_config(config): - normalized = { **config } +def load_config_and_prompt(): + prompt, role_options = parse_prompt_and_role(vim.eval("l:prompt")) + config = vim.eval("l:config") + config['options'] = { + **normalize_options(config['options']), + **normalize_options(role_options['options_default']), + **normalize_options(role_options['options_chat']), + } + return prompt, config + +def normalize_options(options): # initial prompt can be both a string and a list of strings, normalize it to list - if 'initial_prompt' in config['options'] and isinstance(config['options']['initial_prompt'], str): - normalized['options']['initial_prompt'] = normalized['options']['initial_prompt'].split('\n') - return normalized + if 'initial_prompt' in options and isinstance(options['initial_prompt'], str): + options['initial_prompt'] = options['initial_prompt'].split('\n') + return options def make_openai_options(options): max_tokens = int(options['max_tokens']) -- cgit v1.2.3