summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/chat.py2
-rw-r--r--py/complete.py2
-rw-r--r--py/utils.py8
3 files changed, 10 insertions, 2 deletions
diff --git a/py/chat.py b/py/chat.py
index e2ef6b1..93d31bf 100644
--- a/py/chat.py
+++ b/py/chat.py
@@ -2,7 +2,7 @@
plugin_root = vim.eval("s:plugin_root")
vim.command(f"py3file {plugin_root}/py/utils.py")
-config = vim.eval("l:config")
+config = normalize_config(vim.eval("l:config"))
config_options = config['options']
config_ui = config['ui']
prompt = vim.eval("l:prompt").strip()
diff --git a/py/complete.py b/py/complete.py
index fed66c4..c8d45fe 100644
--- a/py/complete.py
+++ b/py/complete.py
@@ -2,7 +2,7 @@
plugin_root = vim.eval("s:plugin_root")
vim.command(f"py3file {plugin_root}/py/utils.py")
-config = vim.eval("l:config")
+config = normalize_config(vim.eval("l:config"))
engine = config['engine']
config_options = config['options']
openai_options = make_openai_options(config_options)
diff --git a/py/utils.py b/py/utils.py
index 8539347..76ae1e4 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -26,6 +26,14 @@ def load_api_key():
raise Exception("Missing OpenAI API key")
return api_key.strip()
+def normalize_config(config):
+ normalized = { **config }
+ # 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
+
+
def make_openai_options(options):
max_tokens = int(options['max_tokens'])
return {