atareao gist felülvizsgálása 18 hours ago. Revízióhoz ugrás
2 files changed, 92 insertions
aresumen.sh(fájl létrehozva)
| @@ -0,0 +1,65 @@ | |||
| 1 | + | #!/usr/bin/env bash | |
| 2 | + | # aresumen — busca en notas .md y pregunta a Ollama | |
| 3 | + | # Episodio 824 — atareao con Linux | |
| 4 | + | # | |
| 5 | + | # Uso: aresumen <concepto> | |
| 6 | + | # Requiere: fd, rg, jq, Ollama (http://localhost:11434) | |
| 7 | + | ||
| 8 | + | # Aliases básicos | |
| 9 | + | alias f='fd' | |
| 10 | + | alias rg='rg --smart-case' | |
| 11 | + | alias rga='rg -uuu' # Búsqueda nuclear | |
| 12 | + | ||
| 13 | + | # Función 1: buscar en notas Markdown | |
| 14 | + | buscar_notas() { | |
| 15 | + | local patron="$1" | |
| 16 | + | fd -e md -X rg -C 2 --smart-case "$patron" | |
| 17 | + | } | |
| 18 | + | # Uso: buscar_notas ollama | |
| 19 | + | ||
| 20 | + | # Función 2: buscar por extensión y texto | |
| 21 | + | btexto() { | |
| 22 | + | local ext="$1" | |
| 23 | + | local texto="$2" | |
| 24 | + | fd -e "$ext" -X rg --smart-case "$texto" | |
| 25 | + | } | |
| 26 | + | # Uso: btexto py "def test_" | |
| 27 | + | ||
| 28 | + | # Función 3: aresumen — el pipeline IA completo | |
| 29 | + | # Busca contexto en tus notas y lo envía a Ollama | |
| 30 | + | aresumen() { | |
| 31 | + | local concepto="$1" | |
| 32 | + | if [ -z "$concepto" ]; then | |
| 33 | + | echo "Uso: aresumen <concepto>" | |
| 34 | + | return 1 | |
| 35 | + | fi | |
| 36 | + | local contexto | |
| 37 | + | contexto=$(fd -e md -X rg -C 5 "$concepto" 2>/dev/null) | |
| 38 | + | if [ -z "$contexto" ]; then | |
| 39 | + | echo "No se encontró información sobre: $concepto" | |
| 40 | + | return 1 | |
| 41 | + | fi | |
| 42 | + | echo "$contexto" | curl -s http://localhost:11434/api/generate \ | |
| 43 | + | -d "{\"model\": \"llama3.2\", | |
| 44 | + | \"prompt\": \"Resume el siguiente contenido sobre $concepto:\n$(cat)\n\", | |
| 45 | + | \"stream\": false}" \ | |
| 46 | + | | jq -r '.response' | |
| 47 | + | } | |
| 48 | + | # Uso: aresumen fd | |
| 49 | + | ||
| 50 | + | # Función 4: rfb — buscador interactivo (rg + fzf + bat) | |
| 51 | + | # Como vimos en el episodio 810 | |
| 52 | + | rfb() { | |
| 53 | + | if [ -z "$1" ]; then | |
| 54 | + | echo "Uso: rfb <texto_a_buscar>" | |
| 55 | + | return 1 | |
| 56 | + | fi | |
| 57 | + | rg --line-number --no-heading --color=always --smart-case "$1" | \ | |
| 58 | + | fzf --ansi \ | |
| 59 | + | --color="ansi" \ | |
| 60 | + | --delimiter=":" \ | |
| 61 | + | --preview="bat --color=always --highlight-line={2} {1}" \ | |
| 62 | + | --preview-window="right:60%:wrap" \ | |
| 63 | + | --bind="enter:become(${EDITOR:-nano} +{2} {1})" | |
| 64 | + | } | |
| 65 | + | # Uso: rfb ollama — busca, previsualiza con bat, abre editor en la línea exacta | |
pregunta.fish(fájl létrehozva)
| @@ -0,0 +1,27 @@ | |||
| 1 | + | # pregunta — versión Fish del pipeline IA | |
| 2 | + | # Episodio 824 — atareao con Linux | |
| 3 | + | # | |
| 4 | + | # Uso: pregunta <texto> | |
| 5 | + | # Requiere: fd, rg, jq, Ollama | |
| 6 | + | ||
| 7 | + | # Aliases básicos para Fish | |
| 8 | + | alias f "fd" | |
| 9 | + | alias rg "rg --smart-case" | |
| 10 | + | alias rga "rg -uuu" | |
| 11 | + | ||
| 12 | + | # Función principal: pregunta a tus notas | |
| 13 | + | function pregunta | |
| 14 | + | if test (count $argv) -eq 0 | |
| 15 | + | echo "Uso: pregunta <texto>" | |
| 16 | + | return 1 | |
| 17 | + | end | |
| 18 | + | set contexto (fd -e md -X rg -C 5 $argv[1] 2>/dev/null) | |
| 19 | + | if test -z "$contexto" | |
| 20 | + | echo "No encontré información sobre: $argv[1]" | |
| 21 | + | return 1 | |
| 22 | + | end | |
| 23 | + | echo $contexto | curl -s http://localhost:11434/api/generate \ | |
| 24 | + | -d "{\"model\": \"llama3.2\", \"prompt\": \"Contexto:\n$(cat)\n\nBasándote en el contexto, responde: $argv[1]\", \"stream\": false}" \ | |
| 25 | + | | jq -r '.response' | |
| 26 | + | end | |
| 27 | + | # Uso: pregunta "¿qué es fd?" | |