From 41e10676472d8529c257c8d6dd83281a4b56d920 Mon Sep 17 00:00:00 2001 From: Nicole Dresselhaus Date: Tue, 1 Jul 2025 20:34:13 +0200 Subject: [PATCH] tweaked avante, removed example, added generate_overview.bash --- generate_overview.bash | 52 +++++++ nvim-config/lazyvim.json | 1 - nvim-config/lua/plugins/avante.lua | 40 +++--- nvim-config/lua/plugins/blink.cmp.lua | 18 +-- nvim-config/lua/plugins/example.lua | 197 -------------------------- 5 files changed, 81 insertions(+), 227 deletions(-) create mode 100755 generate_overview.bash delete mode 100644 nvim-config/lua/plugins/example.lua diff --git a/generate_overview.bash b/generate_overview.bash new file mode 100755 index 0000000..ce2fc06 --- /dev/null +++ b/generate_overview.bash @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +if [ $# -lt 1 ]; then + echo "Usage: $0 " + exit 1 +fi +MODEL="cogito:32b" +DOC=$(jq -Rs . <"$1" | sed 's/^"/"```json\\n/;s/"$/\\n```\\n"/') # Anführungszeichen escapen +SYSTEM=$( + jq -Rs . <<'EOF' +Enable deep thinking subroutine. + +We are reading a scientific paper. +Please create a conceptual graphviz-diagram (using sfdp for a mindmap-like layout, setting overlap=scale). You can also use a different style within a note (as subgraph) - but only if you have a good reason for it. Use as many depth-layers as neccessary and refrain from using visible subgraphs as "collection of nodes". Also make sure all nodes are connected, are roughly sqare (i.e. **break long labels of text**) and don't overlap. + +The root-node with the paper title should be a filled elipse in the center with a light gray filling. + +Then define distinct base-colors for all branches of the root-node (the "concepts"). Use subtle colors-shifts within those base-colors in the (grand-)child nodes according to their "feel" (i.e. reddish for negative connotations, greenish for positive connotation, blueish for technical things, purple for social things, etc.). Like in a blue theme (i.e. tech stack) only a reddish-blue or a greenish-blue (mix of target hue into the base-color, while keeping lightness the same). Only use one consistent mix for each base-color with feel-color. Do not use red/green/blue/purple as base-colors. All base-colors should be very distinct (i.e. differ in hue by at least 20%) + +Main result should be a **clear**, **concise** and **informative** graphic. You may also add a further level of leafs with more detailed information in smaller print (like cites, quotes, ...), as this is to be used as SVG and can be zoomed in, if needed. + +Return your result as plain graphviz code-block without explanations. It will be used by automatic processing and has to be perfect. Use at least 2 levels of nodes. +All in all: Think beforehand what nodes you want, how they connect and when generating use "r", "r_1", "r_2_1" etc for root->branch->branch to not have name conflicts with reserved keywords (i.e. "graph", "node", ..). Also put captions in boxes properly (i.e. ["foo"] for a box with label foo). +You have only one shot. Think extensively if need be. +EOF +) + +tmpfile=$(mktemp) +svgfile="$1.svg" + +curl -s http://gpu.dighist.geschichte.hu-berlin.de:11434/api/chat -d '{ + "model": "'"$MODEL"'", + "messages": [ + { "role": "system", "content": '"$SYSTEM"' }, + { "role": "user", + "content": "This is the document:" }, + { "role": "user", + "content": '"$DOC"' } + ], + "options": { + "num_ctx": 50000, + "num_predict": 20000, + "num_batch": 64, + "num_keep": 768 + }, + "stream": true +}' | stdbuf -oL jq -crj '.message.content' | tee "$tmpfile" + +dotfile=$(mktemp) +awk '/^```/{f = !f; next} f' "$tmpfile" >"$dotfile" +dot -Tsvg -o "$svgfile" "$dotfile" + +rm "$tmpfile" "$dotfile" diff --git a/nvim-config/lazyvim.json b/nvim-config/lazyvim.json index 40a4418..8b6ac03 100644 --- a/nvim-config/lazyvim.json +++ b/nvim-config/lazyvim.json @@ -12,7 +12,6 @@ "lazyvim.plugins.extras.editor.dial", "lazyvim.plugins.extras.editor.fzf", "lazyvim.plugins.extras.editor.inc-rename", - "lazyvim.plugins.extras.editor.mini-diff", "lazyvim.plugins.extras.editor.outline", "lazyvim.plugins.extras.editor.snacks_picker", "lazyvim.plugins.extras.editor.telescope", diff --git a/nvim-config/lua/plugins/avante.lua b/nvim-config/lua/plugins/avante.lua index 46419e8..f120b7b 100644 --- a/nvim-config/lua/plugins/avante.lua +++ b/nvim-config/lua/plugins/avante.lua @@ -9,26 +9,18 @@ return { behaviour = { enable_cursor_planning_mode = true, -- enable cursor planning mode! }, - ollama = { - endpoint = "http://gpu.dighist.geschichte.hu-berlin.de:11434", - model = "cogito:14b", -- your desired model (or use gpt-4o, etc.) - timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models - temperature = 0, - max_completion_tokens = 8192, -- Increase this to include reasoning tokens (for reasoning models) - stream = true, - thinking = true, - system_prompt = "Enable deep thinking subroutine.", - -- reasoning_effort = "high", -- low|medium|high, only used for reasoning models - }, - rag_service = { - enabled = true, -- Enables the RAG service - host_mount = os.getenv("HOME"), -- Host mount path for the rag service - provider = "ollama", -- The provider to use for RAG service (e.g. openai or ollama) - llm_model = "qwen3:32b", -- The LLM model to use for RAG service - embed_model = "nomic-embed-text", -- The embedding model to use for RAG service - endpoint = "http://gpu.dighist.geschichte.hu-berlin.de:11434", -- The API endpoint for RAG service - }, - vendors = { + providers = { + ollama = { + endpoint = "http://gpu.dighist.geschichte.hu-berlin.de:11434", + model = "cogito:32b", -- your desired model (or use gpt-4o, etc.) + timeout = 30000, -- Timeout in milliseconds, increase this for reasoning models + temperature = 0, + max_completion_tokens = 40000, -- Increase this to include reasoning tokens (for reasoning models) + stream = true, + thinking = true, + --system_prompt = "Enable deep thinking subroutine.", + -- reasoning_effort = "high", -- low|medium|high, only used for reasoning models + }, deepthink = { __inherited_from = "ollama", model = "qwen3:32b", @@ -36,6 +28,14 @@ return { reasoning_effort = "high", }, }, + rag_service = { + enabled = true, -- Enables the RAG service + host_mount = os.getenv("HOME"), -- Host mount path for the rag service + provider = "ollama", -- The provider to use for RAG service (e.g. openai or ollama) + llm_model = "cogito", -- The LLM model to use for RAG service + embed_model = "nomic-embed-text", -- The embedding model to use for RAG service + endpoint = "http://gpu.dighist.geschichte.hu-berlin.de:11434", -- The API endpoint for RAG service + }, }, -- if you want to build from source then do `make BUILD_FROM_SOURCE=true` build = "make", diff --git a/nvim-config/lua/plugins/blink.cmp.lua b/nvim-config/lua/plugins/blink.cmp.lua index c738719..d63b01a 100644 --- a/nvim-config/lua/plugins/blink.cmp.lua +++ b/nvim-config/lua/plugins/blink.cmp.lua @@ -1,7 +1,7 @@ return { "saghen/blink.cmp", dependencies = { - "Kaiser-Yang/blink-cmp-avante", + -- "Kaiser-Yang/blink-cmp-avante", -- ... Other dependencies }, opts = { @@ -15,15 +15,15 @@ return { }, }, sources = { - default = { "avante", "lsp", "path", "buffer", "minuet" }, + default = { "lsp", "path", "buffer", "minuet" }, providers = { - avante = { - module = "blink-cmp-avante", - name = "Avante", - opts = { - -- options for blink-cmp-avante - }, - }, + -- avante = { + -- module = "blink-cmp-avante", + -- name = "Avante", + -- opts = { + -- -- options for blink-cmp-avante + -- }, + -- }, minuet = { name = "minuet", module = "minuet.blink", diff --git a/nvim-config/lua/plugins/example.lua b/nvim-config/lua/plugins/example.lua deleted file mode 100644 index 17f53d6..0000000 --- a/nvim-config/lua/plugins/example.lua +++ /dev/null @@ -1,197 +0,0 @@ --- since this is just an example spec, don't actually load anything here and return an empty spec --- stylua: ignore -if true then return {} end - --- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim --- --- In your plugin files, you can: --- * add extra plugins --- * disable/enabled LazyVim plugins --- * override the configuration of LazyVim plugins -return { - -- add gruvbox - { "ellisonleao/gruvbox.nvim" }, - - -- Configure LazyVim to load gruvbox - { - "LazyVim/LazyVim", - opts = { - colorscheme = "gruvbox", - }, - }, - - -- change trouble config - { - "folke/trouble.nvim", - -- opts will be merged with the parent spec - opts = { use_diagnostic_signs = true }, - }, - - -- disable trouble - { "folke/trouble.nvim", enabled = false }, - - -- override nvim-cmp and add cmp-emoji - { - "hrsh7th/nvim-cmp", - dependencies = { "hrsh7th/cmp-emoji" }, - ---@param opts cmp.ConfigSchema - opts = function(_, opts) - table.insert(opts.sources, { name = "emoji" }) - end, - }, - - -- change some telescope options and a keymap to browse plugin files - { - "nvim-telescope/telescope.nvim", - keys = { - -- add a keymap to browse plugin files - -- stylua: ignore - { - "fp", - function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, - desc = "Find Plugin File", - }, - }, - -- change some options - opts = { - defaults = { - layout_strategy = "horizontal", - layout_config = { prompt_position = "top" }, - sorting_strategy = "ascending", - winblend = 0, - }, - }, - }, - - -- add pyright to lspconfig - { - "neovim/nvim-lspconfig", - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- pyright will be automatically installed with mason and loaded with lspconfig - pyright = {}, - }, - }, - }, - - -- add tsserver and setup with typescript.nvim instead of lspconfig - { - "neovim/nvim-lspconfig", - dependencies = { - "jose-elias-alvarez/typescript.nvim", - init = function() - require("lazyvim.util").lsp.on_attach(function(_, buffer) - -- stylua: ignore - vim.keymap.set( "n", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) - vim.keymap.set("n", "cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) - end) - end, - }, - ---@class PluginLspOpts - opts = { - ---@type lspconfig.options - servers = { - -- tsserver will be automatically installed with mason and loaded with lspconfig - tsserver = {}, - }, - -- you can do any additional lsp server setup here - -- return true if you don't want this server to be setup with lspconfig - ---@type table - setup = { - -- example to setup with typescript.nvim - tsserver = function(_, opts) - require("typescript").setup({ server = opts }) - return true - end, - -- Specify * to use this function as a fallback for any server - -- ["*"] = function(server, opts) end, - }, - }, - }, - - -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, - -- treesitter, mason and typescript.nvim. So instead of the above, you can use: - { import = "lazyvim.plugins.extras.lang.typescript" }, - - -- add more treesitter parsers - { - "nvim-treesitter/nvim-treesitter", - opts = { - ensure_installed = { - "bash", - "html", - "javascript", - "json", - "lua", - "markdown", - "markdown_inline", - "python", - "query", - "regex", - "tsx", - "typescript", - "vim", - "yaml", - }, - }, - }, - - -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above - -- would overwrite `ensure_installed` with the new value. - -- If you'd rather extend the default config, use the code below instead: - { - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - -- add tsx and treesitter - vim.list_extend(opts.ensure_installed, { - "tsx", - "typescript", - }) - end, - }, - - -- the opts function can also be used to change the default opts: - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function(_, opts) - table.insert(opts.sections.lualine_x, { - function() - return "😄" - end, - }) - end, - }, - - -- or you can return new options to override all the defaults - { - "nvim-lualine/lualine.nvim", - event = "VeryLazy", - opts = function() - return { - --[[add your custom lualine config here]] - } - end, - }, - - -- use mini.starter instead of alpha - { import = "lazyvim.plugins.extras.ui.mini-starter" }, - - -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc - { import = "lazyvim.plugins.extras.lang.json" }, - - -- add any tools you want to have installed below - { - "williamboman/mason.nvim", - opts = { - ensure_installed = { - "stylua", - "shellcheck", - "shfmt", - "flake8", - }, - }, - }, -}