Vibe-koodaus on muuttanut ohjelmointia pysyvästi. Kyse ei ole enää syntaksin mekaanisesta kirjoittamisesta, vaan arkkitehtuurin ohjaamisesta, systeemien orkestroinnista ja koodausautomaation hallinnasta. Kun tähän yhdistetään uuden sukupolven LLM päättely, kehittäjän rooli muuttuu koodarista kapellimestariksi.

DeepSeek-R1 on markkinoiden kuumin avoimen lähdekoodin päättelymalli, joka haastaa OpenAI:n o1-mallin suorassa päättelykyvyssä. Mikä parasta, voit ajaa sitä joko täysin ilmaiseksi omalla koneellasi tai puoli-ilmaiseksi pilvessä.

Tämä opas näyttää, miten integroit DeepSeek-R1-mallin Cursor-tekoälyeditoriin ja otat siitä kaiken tehon irti.

---

Arkkitehtuuri: Paikallinen vs. Pilvipohjainen integraatio

Ennen kuin siirrytään asetuksiin, hahmotetaan kaksi eri tapaa rakentaa tämä kehitysympäristö. Valinta riippuu paikallisen laitteistosi tehosta ja projektisi vaatimuksista.

[ Cursor tekoäly ]
       │
       ├──► Vaihtoehto A: Paikallinen tekoäly (Ilmainen) ──► [ Ollama ] ──► [ DeepSeek-R1 Distill (8B-70B) ]
       │
       └──► Vaihtoehto B: Pilvi-API (Puoli-ilmainen) ─────► [ OpenRouter ] ──► [ DeepSeek-R1 Full (671B) ]

Vaihtoehto A: Paikallinen tekoäly (Ollama)

  • Kustannus: 0 € (rajaton käyttö).
  • Tietoturva: 100 % paikallinen. Koodisi ei koskaan poistu omalta koneeltasi.
  • Malli: DeepSeek-R1 tislatut (Distilled) versiot (Llama- tai Qwen-pohjaiset 8B, 14B tai 32B mallit).
  • Vaatimus: Moderni Mac (M-sarja) tai PC tehokkaalla näytönohjaimella (Nvidia RTX).

Vaihtoehto B: Pilvi-API (OpenRouter)

  • Kustannus: Muutama sentti per miljoona tokenia (lähes ilmaista).
  • Laatu: Käytössä on täysikokoinen DeepSeek-R1 (671B), joka kykenee syvällisimpään loogiseen päättelyyn.
  • Vaatimus: Internet-yhteys ja OpenRouter-tili.

---

Vaihtoehto A: Näin asennat DeepSeek-R1:n paikallisesti Ollaman avulla

Jos haluat ajaa koodausautomaatiota ilman kuukausimaksuja tai API-kustannuksia, paikallinen tekoäly on oikea valinta.

Vaihe 1: Ollaman asennus ja mallin lataus

1. Lataa ja asenna Ollama.

2. Avaa terminaali ja valitse laitteistollesi sopiva malli:

  • Kevyt laitteisto (esim. perus-Macbook): ollama run deepseek-r1:8b
  • Keskitehokas laitteisto (esim. M2/M3 Pro tai 16GB VRAM): ollama run deepseek-r1:14b
  • Tehokas laitteisto (esim. M-Max tai RTX 4090): ollama run deepseek-r1:32b

Vaihe 2: Cursor tekoäly -editorin konfigurointi

Cursor ei tue suoraan paikallisia malleja käyttöliittymän kautta ilman pientä kikkaa. Koska Ollama tarjoaa OpenAI-yhteensopivan rajapinnan, voimme syöttää sen Cursorille mukautettuna päätepisteenä (Custom Endpoint).

1. Avaa Cursor ja siirry asetuksiin: Settings -> Models.

2. Ota käyttöön OpenAI API -osio (vaikka käytämme paikallista mallia).

3. Syötä API-avaimeksi mikä tahansa merkkijono (esim. ollama).

4. Klikkaa Configure extra OpenAI-compatible models ja lisää seuraava päätepiste (Base URL):

  • http://localhost:11434/v1

5. Lisää mallilistaan tarkka mallin nimi, jonka latasit (esim. deepseek-r1:14b tai deepseek-r1:8b).

6. Poista muut mallit käytöstä Cursorin asetuksista, jotta varmistat editorin käyttävän vain paikallista malliasi.

---

Vaihtoehto B: Täysikokoinen DeepSeek-R1 OpenRouterin kautta

Jos tarvitset monimutkaisten ohjelmistoarkkitehtuurien suunnittelua, tislatut paikalliset mallit voivat jäädä lyhyiksi. Silloin kannattaa ottaa käyttöön täysikokoinen 671B DeepSeek-R1 pilvestä. OpenRouter tarjoaa tähän halvimman ja vakaimman reitin.

Vaihe 1: OpenRouter-rajapinnan käyttöönotto

1. Luo tili osoitteessa OpenRouter.

2. Talleta tilille muutama dollari (esim. 5 $ riittää viikoiksi aktiiviseen koodaukseen).

3. Luo uusi API-avain (API Key).

Vaihe 2: Cursorin yhdistäminen OpenRouteriin

1. Avaa Cursorin asetukset (Settings -> Models).

2. Etsi kohta OpenAI API tai Custom OpenAI-Compatible Endpoint.

3. Syötä seuraavat tiedot:

  • Base URL: https://openrouter.ai/api/v1
  • API Key: OpenRouter-avimesi (alkaa sk-or-...)

4. Lisää mallilistaan malli: deepseek/deepseek-r1

5. Varmista, että malli on aktivoituna Cursorin chat-ikkunassa.

---

Vibe-koodaus ja prompt-strategia: Miten hyödynnät päättelyä?

DeepSeek-R1 ei ole tavallinen LLM. Se käyttää sisäistä "Chain of Thought" (CoT) -päättelyä ennen vastaamista. Tämä tarkoittaa, että malli analysoi ongelmaa, testaa hypoteeseja mielessään ja korjaa omia virheitään ennen kuin se kirjoittaa riviäkään koodia.

Jotta saat tästä kaiken irti vibe-koodauksessa, älä pyydä mallia vain "kirjoittamaan funktiota". Anna sille tilaa ajatella.

Järjestelmäprompti (System Prompt) .cursorrules-tiedostoon

Luo projektisi juureen .cursorrules-tiedosto ja sijoita sinne seuraava ohjeistus. Tämä pakottaa Cursorin ja DeepSeek-R1:n toimimaan optimaalisesti yhdessä:

# DeepSeek-R1 Vibe Coding Blueprint

## Toimintatapa
1. Käytä aina sisäistä päättelyäsi (thinking phase) analysoidaksesi pyyntöä ennen koodin tuottamista.
2. Älä tee oletuksia. Jos arkkitehtuurissa on epäselvyyksiä, esitä tarkentavia kysymyksiä.
3. Priorisoi yksinkertaisuutta ja poistettavaa koodia (easy to delete, not easy to extend).

## Koodaustyyli
- Kirjoita modernia, tyypitettyä koodia.
- Vältä turhia välikerroksia tai abstrakteja wrappereita.
- Käytä suoria kirjastokutsuja ja raakaa suorituskykyä.

## Ulostulo
- Näytä ensin lyhyt arkkitehtuurihahmotelma tai logiikkavirta.
- Anna vasta sen jälkeen valmis, toimiva koodimuutos.
- Älä selitä itsestäänselvyyksiä koodin jälkeen.

Tämä yksinkertainen sääntökirja estää mallia tuottamasta geneeristä "boilerplate"-koodia ja ohjaa sen keskittymään olennaiseen.

---

Cursor vs. Windsurf Cascade: Kumpi sopii paremmin DeepSeek-R1:lle?

Kun puhutaan vibe-koodauksesta ja tekoälyohjelmoinnista, kaksi työkalua hallitsee markkinaa: Cursor ja Windsurf Cascade.

| Ominaisuus | Cursor tekoäly | Windsurf Cascade |

| :--- | :--- | :--- |

| Custom API-tuki | Erinomainen (helppo yhdistää Ollama & OpenRouter) | Rajoitetumpi mukautetuille päätepisteille |

| Agenttitoiminnot | Erittäin vahva (Composer-tila usean tiedoston muokkaukseen) | Erinomainen reaaliaikainen koodin luku ja suoritus |

| DeepSeek-R1 integraatio | Vaatii manuaalisen API-asetuksen, mutta toimii saumattomasti | Vaatii usein kolmannen osapuolen proxy-työkaluja |

Tuomio: Cursor vie voiton joustavuudessa. Sen kyky käsitellä mukautettuja OpenAI-yhteensopivia päätepisteitä tekee siitä täydellisen kumppanin DeepSeek-R1:n kaltaisille avoimille malleille.

---

Seuraava askel vibe-koodarille

Älä usko pelkkää puhetta. Kokeile sitä itse.

Asenna Ollama, lataa deepseek-r1:14b (tai ota käyttöön OpenRouterin täysi malli) ja syötä se Cursoriin. Anna mallille tehtäväksi rakentaa monimutkainen integraatio tai refaktoroida vanha, solmussa oleva kooditiedosto.

Huomaat nopeasti, että DeepSeek-R1 ei vain arvaile seuraavaa sanaa – se ymmärtää, mitä olet rakentamassa.