Ostatnio pisałem o Ollamie – tym małym cudzie, które pozwala odpalić “mózg w pudełku” na własnym biurku. Ale bądźmy szczerzy: gadanie z AI w terminalu jest super, dopóki nie musisz napisać 500 linii kodu w Pythonie. Przełączanie się między oknami, kopiowanie, wklejanie… to nie jest “workflow”, to jest męczarnia.

Potrzebujemy czegoś, co wejdzie w nasz edytor (VS Code), zrozumie nasz kod i będzie podpowiadać szybciej, niż myślimy. I tu wchodzi on, cały na biało (lub czarno, zależnie od motywu): Continue.

Wyzwanie: Hardware z rozdwojeniem jaźni

Zanim przejdziemy do instalacji, musimy porozmawiać o słoniu w salonie. A właściwie o moim laptopie. Moja konfiguracja to podręcznikowy przykład “nierównowagi”:

  • GPU: RTX 2060 (6GB VRAM) – Szybki, ale ciasny.
  • RAM: 48 GB – Lotnisko. Można tu parkować Boeingi.

W świecie AI to problem. Dlaczego?

  1. Żeby model był szybki (np. do autouzupełniania w trakcie pisania), musi siedzieć w całości w VRAM (GPU).
  2. Żeby model był mądry (np. do refaktoryzacji i architkektury), musi być duży. A duży model (np. 32B parametrów) nie wejdzie do 6GB VRAM, choćbyś go smarował masłem.

Większość ludzi albo kupuje RTX 4090, albo płacze i używa małych, głupich modeli. My zrobimy inaczej. My zrobimy hybrydę.

Continue: Mózg operacji

Continue to rozszerzenie open-source do VS Code, które działa jak Copilot, ale pozwala Ci wybrać własny backend. I co najważniejsze – pozwala zdefiniować różne modele do różnych zadań.

Strategia “Mały i Duży”

Skonfigurujemy dwa modele działające równolegle:

  1. Tab Autocomplete (Mały): Qwen 2.5 Coder 1.5B.
    • Gdzie: Całość w GPU (zajmie ok. 1-2 GB VRAM).
    • Zadanie: Dokańczanie linii kodu, kiedy piszesz.
    • Dlaczego: Musi reagować w milisekundach. Tutaj liczy się refleks, nie filozofia.
  2. Chat (Duży): Qwen 2.5 Coder 32B.
    • Gdzie: Hybryda. Trochę w GPU, reszta w CPU/RAM (Ollama to ogarnie).
    • Zadanie: Odpowiadanie na pytania, analiza błędów, generowanie testów.
    • Dlaczego: 32B to potwór. Jest na poziomie GPT-4 w kodowaniu. Będzie działał wolniej (kilka słów na sekundę), ale odpowiedzi będą genialne.

Konfiguracja (Mięsko)

Zainstaluj rozszerzenie Continue w VS Code. Następnie otwórz plik konfiguracyjny (kliknij zębatkę w panelu Continue lub ~/.continue/config.json).

Oto nasza “złota konfiguracja”:

{
  "models": [
    {
      "title": "Qwen 2.5 Coder (32B) - Mózg",
      "provider": "ollama",
      "model": "qwen2.5-coder:32b",
      "apiBase": "http://localhost:11434"
    },
    {
      "title": "Qwen 2.5 Coder (14B) - Szybki",
      "provider": "ollama",
      "model": "qwen2.5-coder:14b",
      "apiBase": "http://localhost:11434"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Autouzupełnianie",
    "provider": "ollama",
    "model": "qwen2.5-coder:1.5b",
    "apiBase": "http://localhost:11434"
  },
  "allowAnonymousTelemetry": false
}

UWAGA: Upewnij się, że masz pobrane modele w Ollama! ollama pull qwen2.5-coder:32b ollama pull qwen2.5-coder:1.5b Bez tego Continue będzie milczeć wymownie.

Slash Commands: Automatyzacja lenistwa

Samo gadanie jest fajne, ale wpisywanie w kółko “Sprawdź ten kod pod kątem bezpieczeństwa” jest nudne. Continue pozwala definiować własne komendy (/).

Dodałem do konfigu sekcję customCommands, która zamienia mnie w jednoosobowy dział IT:

  "slashCommands": [
    {
      "name": "security",
      "description": "Audyt bezpieczeństwa",
      "prompt": "Act as a Senior Security Auditor. Look for: SQL Injection, XSS, CSRF. Provide fixes."
    },
    {
      "name": "arch",
      "description": "Analiza architektury",
      "prompt": "Act as a Software Architect. Evaluate SOLID principles, Design Patterns usage and Scalability."
    },
    {
      "name": "qa",
      "description": "Generuj testy brzegowe",
      "prompt": "Act as a QA Automation Engineer. Identify edge cases and generate unit tests."
    }
  ]

Teraz zaznaczam funkcję, wpisuję /security i czuję się jak w serialu Mr. Robot.

MCP: Wyjście poza pudełko

Na koniec wisienka na torcie. Protokół MCP (Model Context Protocol). Brzmi groźnie, ale chodzi o to, żeby dać AI narzędzia. W moim przypadku dodałem serwer fetch.

Dlaczego? Bo modele AI mają “odcięcie wiedzy”. Nie wiedzą, co wyszło wczoraj. Dzięki MCP, mogę wkleić link do dokumentacji nowej biblioteki w czacie, a model:

  1. Użyje narzędzia fetch.
  2. Pobierze treść strony.
  3. Nauczy się jej w locie.
  4. Odpisze mi na podstawie aktualnej wiedzy.

W konfiguracji wygląda to tak:

  "mcpServers": [
    {
      "name": "fetch",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-fetch"]
    }
  ]

Podsumowanie

Mamy to. System, który:

  1. Działa w 100% lokalnie (prywatność!).
  2. Podpowiada kod w ułamku sekundy (dzięki małemu modelowi w GPU).
  3. Rozwiązuje skomplikowane problemy architektury (dzięki dużemu modelowi w RAM).
  4. Potrafi czytać internet.

I to wszystko na sprzęcie, który teoretycznie “nie powinien dać rady”. Kto powiedział, że do AI trzeba mieć farmę serwerów? Wystarczy trochę sprytu i dużo RAMu.

Pobierz gotową konfigurację

Jeśli chcesz mieć pełny plik konfiguracyjny z wszystkimi definicjami komend i serwerami MCP, przygotowałem osobną stronę z dokumentacją techniczną.

Zasoby

Pełna, gotowa do skopiowania konfiguracja config.json oraz instrukcja instalacji modeli:

📄 Zobacz pełną konfigurację

Podsumowanie