
释放你的创造力:使用 Deepseek-r1 在 60 秒内构建游戏并自动执行任务
Image Source: https://ollama.com/library/deepseek-r1
介绍:认识 DeepSeek-R1 — 你的新人工智能强者
想象一下拥有一个 编码天才、一个 创意设计师 和一个 数据魔法师 融合在一个工具中 — 而且完全免费。这就是 DeepSeek-R1,这个人工智能模型正在改变我们构建、创造和自动化的方式。
今天你将学习什么
到最后,你将知道如何:
- 在 60 秒内构建游戏/网站
- 本地运行人工智能(无需互联网!)
- 自动化任务,如电子邮件回复
- 创建你自己的类似 Jarvis 的人工智能代理
让我们开始吧。
什么让 DeepSeek-R1 特别?
由中国人工智能公司 DeepSeek Inc. 开发,该模型专注于 逻辑推理、编码和 逐步解决问题。可以把它看作是 技术项目的瑞士军刀:
- 免费且可访问:没有订阅或隐藏费用。
- 闪电般快速:优化以快速、准确的响应。
- 离线超能力:可以在你的笔记本电脑上本地运行(无需互联网!)。
DeepSeek-R1 与竞争对手
让我们分析一下它与流行模型如 GPT-4o、O1 和 O1-Pro 的对比:
-
GPT-4o (OpenAI):
- 优势:在创意写作、一般知识和复杂对话方面表现出色。
- 劣势:API 成本高,需连接互联网,处理编码任务时过于强大。
- 类比:一辆豪华跑车(快速而引人注目,但维护成本高)。
-
O1 和 O1-Pro (较小模型):
- 优势:轻量级,适合基本任务。
- 劣势:准确性较低,推理能力有限。
- 类比:一辆自行车(能带你到达某地,但上坡时会出汗)。
-
DeepSeek-R1:
- 优势:在 编码准确性 和 任务规划 上超过竞争对手(见下方基准测试)。
- 额外优势:免费、离线工作,使用的计算能力比 GPT-4o 少 10 倍。
- 类比:一辆自动驾驶电动车(高效、强大且具备未来适应性)。
DeepSeek-R1 在编码任务中优于 O1-Pro,并以 1/10 的成本匹配 GPT-4o 的逻辑。
图片来源:https://ollama.com/library/deepseek-r1
为什么这对您很重要
无论您是学生、创业者还是爱好者,DeepSeek-R1 消除了两个巨大的障碍:
- 成本:无需每月 $20 或每月 $200 的订阅
- 复杂性:无需编程学位。
现实世界的例子:上周,我在乘坐信号不稳定的火车时使用 DeepSeek-R1 构建了一个 利润跟踪仪表板。离线模式拯救了我——GPT-4o 在第一个隧道就会退出。
第1节:在60秒内构建游戏、应用和网站
步骤1:访问 chat.deepseek.com
把这里当作你的 数字工作坊。选择“DeepSeek-R1”,并切换“网页搜索”以获取实时数据。
尝试这个: 输入:“使用 Python 和 Pygame 创建一个太空入侵者游戏。”
这是生成的 Python 代码:
import pygame
import random
import math
pygame.init()
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Space Invaders")
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
PLAYER_SPEED = 5
BULLET_SPEED = 7
MAX_BULLETS = 3
ALIEN_SPEED = 1
ALIEN_DROP = 10
pygame.mixer.init()
shoot_sound = pygame.mixer.Sound("shoot.wav")
explosion_sound = pygame.mixer.Sound("explosion.wav")
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((50, 30))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.centerx = SCREEN_WIDTH // 2
self.rect.bottom = SCREEN_HEIGHT - 10
self.speed = PLAYER_SPEED
self.bullets = pygame.sprite.Group()
self.shoot_delay = 300
self.last_shot = pygame.time.get_ticks()
def update(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] or keys[pygame.K_a]:
self.rect.x -= self.speed
if keys[pygame.K_RIGHT] or keys[pygame.K_d]:
self.rect.x += self.speed
self.rect.clamp_ip(screen.get_rect())
def shoot(self):
now = pygame.time.get_ticks()
if now - self.last_shot > self.shoot_delay:
self.last_shot = now
bullet = Bullet(self.rect.centerx, self.rect.top)
self.bullets.add(bullet)
shoot_sound.play()
class Bullet(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.image = pygame.Surface((5, 10))
self.image.fill(WHITE)
self.rect = self.image.get_rect()
self.rect.centerx = x
self.rect.bottom = y
self.speed = -BULLET_SPEED
def update(self):
self.rect.y += self.speed
if self.rect.bottom < 0 or self.rect.top > SCREEN_HEIGHT:
self.kill()
class Alien(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.image = pygame.Surface((40, 30))
self.image.fill(RED)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.speed = ALIEN_SPEED
self.drop = ALIEN_DROP
self.direction = 1
self.shoot_prob = 0.001
def update(self):
self.rect.x += self.speed * self.direction
if random.random() < self.shoot_prob:
self.shoot()
def shoot(self):
bullet = AlienBullet(self.rect.centerx, self.rect.bottom)
alien_bullets.add(bullet)
class AlienBullet(Bullet):
def __init__(self, x, y):
super().__init__(x, y)
self.image.fill(RED)
self.speed = BULLET_SPEED
class Barrier(pygame.sprite.Sprite):
def __init__(self, x, y):
super().__init__()
self.image = pygame.Surface((80, 30))
self.image.fill(BLUE)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.health = 3
def hit(self):
self.health -= 1
if self.health <= 0:
self.kill()
all_sprites = pygame.sprite.Group()
aliens = pygame.sprite.Group()
player_bullets = pygame.sprite.Group()
alien_bullets = pygame.sprite.Group()
barriers = pygame.sprite.Group()
player = Player()
all_sprites.add(player)
def create_aliens():
for row in range(4):
for col in range(10):
alien = Alien(100 + col * 60, 50 + row * 40)
aliens.add(alien)
all_sprites.add(alien)
def create_barriers():
for x in range(4):
barrier = Barrier(100 + x * 200, SCREEN_HEIGHT - 150)
barriers.add(barrier)
all_sprites.add(barrier)
create_aliens()
create_barriers()
score = 0
lives = 3
game_over = False
clock = pygame.time.Clock()
running = True
font = pygame.font.Font(None, 36)
def show_game_over():
text = font.render("游戏结束!按 R 重新开始", True, WHITE)
text_rect = text.get_rect(center=(SCREEN_WIDTH/2, SCREEN_HEIGHT/2))
screen.blit(text, text_rect)
def reset_game():
global score, lives, game_over
aliens.empty()
alien_bullets.empty()
player_bullets.empty()
barriers.empty()
all_sprites.empty()
player.rect.centerx = SCREEN_WIDTH // 2
all_sprites.add(player)
create_aliens()
create_barriers()
score = 0
lives = 3
game_over = False
while running:
screen.fill(BLACK)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and not game_over:
player.shoot()
if event.key == pygame.K_r and game_over:
reset_game()
if not game_over:
all_sprites.update()
hits = pygame.sprite.groupcollide(aliens, player_bullets, True, True)
for hit in hits:
score += 10
explosion_sound.play()
pygame.sprite.groupcollide(aliens, barriers, True, True)
barrier_hits = pygame.sprite.groupcollide(barriers, alien_bullets, False, True)
for barrier in barrier_hits:
barrier.hit()
if pygame.sprite.spritecollide(player, alien_bullets, True):
lives -= 1
if lives <= 0:
game_over = True
for alien in aliens:
if alien.rect.bottom >= SCREEN_HEIGHT - 50:
lives = 0
game_over = True
move_down = False
for alien in aliens:
if alien.rect.right >= SCREEN_WIDTH or alien.rect.left <= 0:
for a in aliens:
a.direction *= -1
a.rect.y += a.drop
break
if len(aliens) == 0:
create_aliens()
ALIEN_SPEED += 0.5
all_sprites.draw(screen)
player.bullets.draw(screen)
score_text = font.render(f"得分: {score}", True, WHITE)
lives_text = font.render(f"生命: {lives}", True, WHITE)
screen.blit(score_text, (10, 10))
screen.blit(lives_text, (SCREEN_WIDTH - 120, 10))
if game_over:
show_game_over()
pygame.display.flip()
clock.tick(60)
pygame.quit()
**发生了什么?**
1. **计划**:DeepSeek 规划游戏的结构(玩家控制、敌人、碰撞检测)。
2. **编码**:它自动编写 Python 代码。
3. **游戏**:点击“运行 HTML”立即测试你的游戏。
_现实世界示例_:我在3分钟内构建了一个可玩的 _太空入侵者_ 克隆。敌人向下涌来,子弹精准发射——没有错误,没有压力。
**这有什么重要性**:
* **民主化创造力**:现在任何人都可以构建应用。
* **速度**:原本需要几周的项目现在只需几分钟。
## 第2节:在本地运行DeepSeek-R1(无需互联网)
## 第2步:下载Ollama并安装DeepSeek-R1
想要离线工作的人工智能吗?**Ollama**让您可以直接在笔记本电脑上运行DeepSeek-R1。
**操作方法**:
1. 访问 [Ollama.ai](https://ollama.com/library/deepseek-r1) → 下载 → 安装。
2. 打开终端 → 输入:`ollama run deepseek-r1`。

图像:在本地下载和安装DeepSeek-R1 7B模型
**类比**:就像在您的笔记本电脑上拥有一个迷你Jarvis。没有订阅,没有广告——只有纯粹的人工智能力量。
**现实世界示例**:我使用本地版本构建了一个**简单的** **计算器**。DeepSeek生成了HTML/CSS代码——全部离线且免费。

图像:查询:草莓中有多少个r
**专业提示**:使用**7B模型**(更小,更快),除非您拥有NASA级别的计算机😳
## 第3节:Bolt DIY — 你的应用工厂
## 第3步:将 DeepSeek-R1 与 Bolt DIY 结合
Bolt DIY 就像 **乐高应用**。拖放,让人工智能处理其余的。
**操作步骤**:
1. 通过终端安装 Bolt DIY:
```bash
git clone https://github.com/stackblitz-labs/bolt.diy
cd bolt.diy && ./install.sh
- 在设置中选择“DeepSeek-R1” → 开始构建。
项目创意:提示: “创建一个带有霓虹视觉效果的合成键盘应用。”
结果:
- DeepSeek 编写 HTML/CSS/JavaScript 代码。
- Bolt 将其编译成可下载的应用。
为什么这很棒:
- 无代码:非常适合原型设计商业想法。
- 免费托管:只需一键即可在 Netlify 上部署应用。
第4节:自动化一切(像老板一样)
第4步:将DeepSeek连接到Make.com
使用Make.com(提供免费套餐)自动化电子邮件、内容或数据分析。
工作流程示例:
- 输入:包含关键词的Google表格。
- 处理:DeepSeek-R1撰写SEO优化的文章。
- 输出:自动发布到WordPress。
实际应用:您的团队可以自动化80%的博客内容。文章自动生成,内部链接,甚至添加_“预约通话”_。
费用:使用OpenRouter的API,每篇文章仅需$0.01。
第5节:构建您自己的人工智能代理(类似于 GPT-4o)
第5步:浏览器 Web UI + DeepSeek-R1
创建您自己的人工智能代理:
操作步骤:
- 安装 Browser Web UI。
- 通过 Ollama 连接到 DeepSeek-R1。
任务示例:提示: “在 YouTube 上研究人工智能趋势并总结它们。”
结果:
- 代理打开 Chrome,搜索 YouTube,观看视频,并撰写报告。
为什么更好:
- 隐私:没有数据离开您的笔记本电脑。
- 定制:教它处理小众任务(例如,股票交易)。
结论:你的创造魔法的时刻
关键要点:
- chat.deepseek.com: 创建游戏/应用的最快方式。
- Ollama: 用于离线、私密项目。
- Bolt DIY: 将想法转化为应用,无需编码。
- Make.com: 轻松自动化工作流程。
- Browser Web UI: 你的个人人工智能工作团队。
最后的想法:
“种树的最佳时机是20年前。第二好的时机是现在。”
Shobhit Agarwal 首席数据科学家