
手把手教程:VSCode插件Roof Code让你轻松实现代码许愿
AI 大模型正引发编程领域的变革,带领开发者步入全新的 coding 时代。对话式编程工具 Cursor 已融入开发者日常,尽管当前它只是代码辅助工具,但基于大模型的快速发展,未来 AI 独立开发软件或许并非遥不可及,因此,投身 AI 编程浪潮刻不容缓。然而,Cursor 价格昂贵,这时 Visual Studio Code(简称 VS Code)就成为了绝佳选择。VS Code 界面简约却功能
1.前言
AI 大模型正引发编程领域的变革,带领开发者步入全新的 coding 时代。对话式编程工具 Cursor 已融入开发者日常,尽管当前它只是代码辅助工具,但基于大模型的快速发展,未来 AI 独立开发软件或许并非遥不可及,因此,投身 AI 编程浪潮刻不容缓。然而,Cursor 价格昂贵,这时 Visual Studio Code(简称 VS Code)就成为了绝佳选择。
VS Code 界面简约却功能强大,堪称全球最受欢迎的代码编辑器之一。它支持 Windows、macOS 和 Linux 等多种操作系统,具备语法高亮、智能代码补全(IntelliSense)、代码重构、内置调试器以及 Git 版本控制集成等丰富功能。并且,用户能够通过安装各类扩展来强化编辑器功能,以满足不同的开发需求。尤其值得一提的是,VS Code 拥有众多免费的 AI 编程插件,性能与 Cursor 相比毫不逊色。
2.关于插件Roo Code
Roo Code是Cline的升级版,大部分基础功能都差不多,只不过Roo Code会更加强大一些。Roo Code 是一款集成在编辑器中的人工智能自主编码助手,功能强大且灵活。它能够用自然语言交流,直接在工作区读写文件,运行终端命令,自动化浏览器操作,并与任何兼容 OpenAI 的 API 或自定义 API / 模型集成。 用户可通过自定义模式塑造其 “个性” 和功能,比如创建 QA 工程师、产品经理等不同角色的模式。它有多种交互模式,如默认的代码模式、架构师模式、询问模式,用户还能根据需求切换。其功能还包括:支持手动审批、自主执行或混合模式;可跟踪每个会话的令牌和成本使用情况;能根据特定文件类型或自定义规则限制模式的使用范围;自动响应代码错误;集成命令行,可运行多种命令并监控输出。
3.安装插件Roo Code
打开VS Code 的扩展页面 搜索"Roo Code" 然后看到如下界面,就是Roo Code了。
点击"安装"就可以完成安装了
4 申请英智DeepSeek 免费API KEY
进入英智API服务网站 注册登录并获取以下参数备用
- 服务地址: https://api.baystoneai.cn
- API-KEY: 打开获取API-KEY
- 模型: deepseek-r1-distill-qwen-32b
详细步骤可以参考 英智API快速上手
5.配置Roo Code的AI服务
Roo Code配置会更加简单些。
打开设置界面
输入API-KEY, Base URL以及模型即可。
可以根据需求设置模型相关的参数,以及系统权限配置。
其他主要设置还包括对话语言设置-选择中文,系统prompt设置,给它一个默认身份,比如Python专家。
6.使用DeepSeek-R1模型
配置好后,就可以直接和DeepSeek对话来编程了
验证服务是否可以使用, 输入"你好" 然后回车,看到如下图有信息回复说明服务是好的。
咱们让DeepSeek写一个简单的计算器,使用Python来实现。
在对话框中输入"使用python来写一个简单的计算器,使用tkinter来实现,保证界面简洁美观,代码可执行。"
ROO CODE生成的代码可以直接执行,并且没有报错,计算器界面如下:
这个时候界面有部分按钮被遮挡了,继续对话修改。
输入"计算器运行的结果看 右边部分的按钮被遮挡了 说明计算器的宽度没有控制好, 需要修改一下"
正在自动修改代码
修改后的界面
最终完成的代码
import tkinter as tk
def main():
root = tk.Tk()
root.title("简单计算器")
root.geometry("420x400") # 增加窗口宽度
root.configure(bg="#f0f8ff")
# 显示结果
result = tk.Entry(root, font=('Arial', 20), width=15, bd=5, state='readonly')
result.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
# 操作函数
def click(num):
current = result.get()
result.configure(state='normal')
result.delete(0, tk.END)
result.insert(0, current + str(num))
result.configure(state='readonly')
def clear():
result.configure(state='normal')
result.delete(0, tk.END)
result.insert(0, '0')
result.configure(state='readonly')
def calculate():
try:
current = result.get()
result.configure(state='normal')
result.delete(0, tk.END)
result.insert(0, eval(current))
result.configure(state='readonly')
except:
result.configure(state='normal')
result.delete(0, tk.END)
result.insert(0, '错误')
result.configure(state='readonly')
# 创建按钮
buttons = [
('7', 1, 0), ('8', 1, 1), ('9', 1, 2), ('/', 1, 3),
('4', 2, 0), ('5', 2, 1), ('6', 2, 2), ('*', 2, 3),
('1', 3, 0), ('2', 3, 1), ('3', 3, 2), ('-', 3, 3),
('0', 4, 0), ('.', 4, 1), ('=', 4, 2), ('+', 4, 3)
]
for (text, row, col) in buttons:
if text == '=':
btn = tk.Button(root, text=text, font=('Arial', 18), bg='lightblue',
command=calculate, width=6, height=2) # 增加按钮宽度
else:
btn = tk.Button(root, text=text, font=('Arial', 18), bg='white',
command=lambda t=text: click(t), width=6, height=2) # 增加按钮宽度
btn.grid(row=row, column=col, padx=5, pady=5)
# 清除按钮
clear_btn = tk.Button(root, text='C', font=('Arial', 18), bg='lightblue',
command=clear, width=6, height=2)
clear_btn.grid(row=4, column=3, padx=5, pady=5)
root.mainloop()
if __name__ == "__main__":
main()
更多推荐
所有评论(0)