local M = {} M.load_api_key = function() local openai_api_key_path = vim.fn.expand('$XDG_CONFIG_HOME') .. '/openai/token' local openai_api_key = vim.fn.readfile(openai_api_key_path, '', 1) vim.fn.setenv('OPENAI_API_KEY', openai_api_key[1]) end local config = { -- welcome_message = WELCOME_MESSAGE, loading_text = "loading", question_sign = "", -- you can use emoji if you want e.g. 🙂 answer_sign = "ﮧ", -- 🤖 max_line_length = 120, yank_register = "+", chat_layout = { relative = "editor", position = "50%", size = { height = "80%", width = "80%", }, }, settings_window = { border = { style = "rounded", text = { top = " Settings ", }, }, }, chat_window = { filetype = "chatgpt", border = { highlight = "FloatBorder", style = "rounded", text = { top = " ChatGPT ", }, }, }, chat_input = { prompt = "  ", border = { highlight = "FloatBorder", style = "rounded", text = { top_align = "center", top = " Prompt ", }, }, }, openai_params = { model = "gpt-3.5-turbo", frequency_penalty = 0, presence_penalty = 0, max_tokens = 300, temperature = 0, top_p = 1, n = 1, }, openai_edit_params = { model = "code-davinci-edit-001", temperature = 0, top_p = 1, n = 1, }, keymaps = { close = { "" }, submit = "", yank_last = "", yank_last_code = "", scroll_up = "", scroll_down = "", toggle_settings = "", new_session = "", cycle_windows = "", -- in the Sessions pane select_session = "", rename_session = "r", delete_session = "d", }, } M.setup = function() local ok, chatgpt = pcall(require, 'chatgpt') if not ok then vim.notify("missing module chatgpt", vim.log.levels.WARN) return end chatgpt.setup(config) end return M