From 88ab0c75e4cf4ef15d806da215ec79461dc5920e Mon Sep 17 00:00:00 2001 From: Barak Michener Date: Sat, 21 Sep 2024 13:42:04 -0700 Subject: [PATCH] ollama setup for neovim --- dot_vim/lua/avante_setup.lua | 37 +++++++++++++++++++++++++++++++++++++ dot_vim/lua/ollama_setup.lua | 13 ++++++++----- dot_vim/nvim.lua | 4 +++- dot_vimrc | 16 ++++++++++------ 4 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 dot_vim/lua/avante_setup.lua diff --git a/dot_vim/lua/avante_setup.lua b/dot_vim/lua/avante_setup.lua new file mode 100644 index 0000000..5c51fbf --- /dev/null +++ b/dot_vim/lua/avante_setup.lua @@ -0,0 +1,37 @@ +require("avante_lib").load() +require("avante").setup({ + provider = "ollama", + auto_suggestions_provider = "ollama", + behavior = { + auto_suggestions = false, + }, + hints = { + enabled = false, + }, + vendors = { + ---@type AvanteProvider + ollama = { + ["local"] = true, + endpoint = "127.0.0.1:11434/v1", + model = "qwen2.5-coder:7b", + parse_curl_args = function(opts, code_opts) + return { + url = opts.endpoint .. "/chat/completions", + headers = { + ["Accept"] = "application/json", + ["Content-Type"] = "application/json", + }, + body = { + model = opts.model, + messages = require("avante.providers").copilot.parse_message(code_opts), -- you can make your own message, but this is very advanced + max_tokens = 2048, + stream = true, + }, + } + end, + parse_response_data = function(data_stream, event_state, opts) + require("avante.providers").openai.parse_response(data_stream, event_state, opts) + end, + }, + }, +}) diff --git a/dot_vim/lua/ollama_setup.lua b/dot_vim/lua/ollama_setup.lua index a134b82..c3ae490 100644 --- a/dot_vim/lua/ollama_setup.lua +++ b/dot_vim/lua/ollama_setup.lua @@ -1,7 +1,10 @@ require("ollama").setup({ - model = "codellama", - url = "http://ollama.ollama.svc.k8s.barakmich.com", - serve = { - on_start = false, - }, + model = "codellama:34b", + url = "http://daystrom.home.0b100.net:11434", + serve = { + on_start = false, + }, }) + +vim.keymap.set("n", ",,", ":lua require('ollama').prompt()", { silent = true }) +vim.keymap.set("v", ",,", ":lua require('ollama').prompt()", { silent = true }) diff --git a/dot_vim/nvim.lua b/dot_vim/nvim.lua index bf34091..4185b4e 100644 --- a/dot_vim/nvim.lua +++ b/dot_vim/nvim.lua @@ -624,6 +624,8 @@ end require("hoversplit").setup({}) --require("murdock") -require("ollama_setup") +--require("ollama_setup") +--require("gen_setup") require("lir_setup") require("lualine_setup") +require("avante_setup") diff --git a/dot_vimrc b/dot_vimrc index 349fa6e..6119f49 100644 --- a/dot_vimrc +++ b/dot_vimrc @@ -233,7 +233,6 @@ Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/plenary.nvim' Plug 'nvim-telescope/telescope.nvim' Plug 'sindrets/diffview.nvim' -Plug 'nomnivore/ollama.nvim' Plug 'kyazdani42/nvim-web-devicons' " for file icons "Plug 'kyazdani42/nvim-tree.lua' @@ -275,7 +274,12 @@ Plug 'Shougo/echodoc.vim' "Plug 'python-rope/ropevim' Plug 'windwp/nvim-autopairs' Plug 'danymat/neogen' +"Plug 'David-Kunz/gen.nvim' +"Plug 'nomnivore/ollama.nvim' Plug 'stevearc/dressing.nvim' +Plug 'MunifTanjim/nui.nvim' +Plug 'zbirenbaum/copilot.lua' +Plug 'yetone/avante.nvim', {'branch': 'main', 'do': 'make'} " Unclear "Plug 'ncm2/float-preview.nvim' @@ -1046,7 +1050,7 @@ call denite#custom#var('grep', { \ }) "nnoremap g :Denite -buffer-name=search-buffer grep "nnoremap aa :RipGrep! -nnoremap aa :RgRoot! +"nnoremap aa :RgRoot! "nnoremap aw :RgRoot! "nnoremap :Files! `git rev-parse --show-toplevel` "nnoremap :GFiles @@ -1118,7 +1122,7 @@ map command! -nargs=0 Syn call Syn() hi link @type.rust TSCSecondaryTypeParam -let s:gptool_temp = expand($HOME . '/src/gptool/bindings.vim') -if filereadable(s:gptool_temp) - exec ':so ' . s:gptool_temp -endif +"let s:gptool_temp = expand($HOME . '/src/gptool/bindings.vim') +"if filereadable(s:gptool_temp) + "exec ':so ' . s:gptool_temp +"endif