tweaked avante, removed example, added generate_overview.bash
This commit is contained in:
		
							
								
								
									
										52
									
								
								generate_overview.bash
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								generate_overview.bash
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,52 @@ | ||||
| #!/usr/bin/env bash | ||||
| if [ $# -lt 1 ]; then | ||||
|   echo "Usage: $0 <Document>" | ||||
|   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" | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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", | ||||
|   | ||||
| @@ -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 | ||||
|       { | ||||
|         "<leader>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", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) | ||||
|           vim.keymap.set("n", "<leader>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<string, fun(server:string, opts:_.lspconfig.options):boolean?> | ||||
|       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", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
		Reference in New Issue
	
	Block a user