tweaked avante, removed example, added generate_overview.bash

This commit is contained in:
Nicole Dresselhaus
2025-07-01 20:34:13 +02:00
parent ace703ea1d
commit 41e1067647
5 changed files with 81 additions and 227 deletions

52
generate_overview.bash Executable file
View 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"

View File

@ -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",

View File

@ -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",

View File

@ -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",

View File

@ -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",
},
},
},
}