Jupyter Notebook与VS Code高效开发配置
8.1 开发环境概述
8.1.1 为什么需要高效的开发环境?
在智能体开发过程中,一个高效的开发环境可以:
- 提高开发效率:减少重复操作,加快代码编写和测试
- 增强调试能力:提供更好的代码调试和错误定位功能
- 改善代码质量:通过代码提示、格式化等功能提高代码质量
- 方便协作:便于团队成员之间的代码共享和协作
- 简化环境管理:更好地管理依赖和环境配置
8.1.2 Jupyter Notebook vs VS Code
| 特性 | Jupyter Notebook | VS Code |
|---|---|---|
| 交互性 | 强,支持交互式代码执行 | 中,需要配置才能实现类似功能 |
| 可视化 | 强,内置图表渲染 | 中,需要安装扩展 |
| 代码编辑 | 中,基础编辑功能 | 强,丰富的代码编辑功能 |
| 调试能力 | 弱,调试功能有限 | 强,强大的调试工具 |
| 项目管理 | 弱,适合单文件开发 | 强,适合大型项目管理 |
| 扩展性 | 中,通过插件扩展 | 强,丰富的扩展生态 |
8.2 Jupyter Notebook配置
8.2.1 安装Jupyter Notebook
使用pip安装:
pip install jupyter使用conda安装:
conda install jupyter安装JupyterLab(推荐):
pip install jupyterlab
8.2.2 启动Jupyter Notebook
启动命令:
# 启动Jupyter Notebook jupyter notebook # 启动JupyterLab jupyter lab配置启动目录:
jupyter notebook --notebook-dir=/path/to/your/project配置端口:
jupyter notebook --port=8888
8.2.3 插件安装与配置
安装nbextensions:
pip install jupyter_contrib_nbextensions jupyter contrib nbextension install --user常用nbextensions:
- **Table of Contents (2)**:生成目录
- Code prettify:代码格式化
- ExecuteTime:显示代码执行时间
- ** Hinterland**:代码自动补全
- Snippets:代码片段管理
配置Jupyter主题:
pip install jupyterthemes jt -t monokai -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T
8.2.4 Jupyter Notebook实用技巧
快捷键:
Shift + Enter:运行单元格并移到下一个Ctrl + Enter:运行单元格Alt + Enter:运行单元格并插入新单元格Esc:进入命令模式Enter:进入编辑模式A:在上方插入单元格B:在下方插入单元格D, D:删除单元格M:转换为Markdown单元格Y:转换为代码单元格
魔法命令:
%run:运行外部Python文件%load:加载外部Python文件%pwd:显示当前工作目录%ls:列出当前目录文件%env:显示环境变量%time:测量代码执行时间%timeit:多次执行并测量平均执行时间%%writefile:将单元格内容写入文件
数据可视化:
import matplotlib.pyplot as plt %matplotlib inline # 绘制图表 plt.plot([1, 2, 3, 4]) plt.ylabel('some numbers') plt.show()
8.3 VS Code配置
8.3.1 安装VS Code
- 下载安装:访问VS Code官网下载并安装
- 系统要求:
- Windows 7及以上
- macOS 10.11及以上
- Linux (Debian/Ubuntu, Red Hat/Fedora, Arch)
8.3.2 安装Python扩展
安装Python扩展:
- 打开VS Code
- 点击左侧扩展图标
- 搜索"Python"
- 安装Microsoft官方的Python扩展
Python扩展功能:
- 代码补全和智能提示
- 代码 linting 和格式化
- 调试支持
- 测试支持
- Jupyter Notebook集成
8.3.3 配置Python环境
选择Python解释器:
- 点击VS Code左下角的Python版本
- 选择合适的Python解释器
- 或使用命令面板(Ctrl+Shift+P)运行"Python: Select Interpreter"
配置虚拟环境:
- 自动检测已有的虚拟环境
- 可以直接选择Poetry或Conda创建的环境
设置默认环境:
- 在项目根目录创建
.vscode/settings.json文件 - 添加以下配置:
{ "python.pythonPath": "/path/to/your/venv/bin/python" }
- 在项目根目录创建
8.3.4 安装智能体开发相关扩展
必装扩展:
- Python:核心Python支持
- Jupyter:Jupyter Notebook集成
- Pylance:增强的Python语言服务器
- GitHub Copilot:AI辅助编程(可选)
- GitLens:增强的Git功能
推荐扩展:
- Code Spell Checker:代码拼写检查
- Prettier:代码格式化
- Bracket Pair Colorizer:括号颜色标识
- Path Intellisense:路径自动补全
- Error Lens:内联错误显示
- Todo Tree:TODO注释管理
8.3.5 VS Code配置文件
用户设置:
- 打开设置(File > Preferences > Settings)
- 搜索并配置以下选项:
python.linting.enabled:启用代码检查python.formatting.provider:设置代码格式化工具editor.formatOnSave:保存时自动格式化editor.codeActionsOnSave:保存时自动修复问题
工作区设置:
- 在项目根目录创建
.vscode/settings.json文件 - 配置项目特定的设置:
{ "python.pythonPath": "/path/to/venv/bin/python", "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.formatting.provider": "black", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true } }
- 在项目根目录创建
8.3.6 VS Code实用技巧
快捷键:
Ctrl + Shift + P:打开命令面板Ctrl + P:快速打开文件Ctrl + Shift + N:打开新窗口Ctrl + Shift + W:关闭窗口Ctrl + F:查找Ctrl + H:替换F5:开始调试Shift + F5:停止调试F10:单步跳过F11:单步进入
代码编辑技巧:
- 多行编辑:按住Alt键并点击鼠标
- 代码折叠:点击代码左侧的折叠图标
- 代码跳转:按住Ctrl键并点击函数或变量
- 代码重构:选中代码后右键选择"重构"
- 代码片段:输入片段前缀后按Tab键
终端集成:
- `Ctrl + ``:打开/关闭集成终端
- `Ctrl + Shift + ``:创建新终端
- 支持多个终端标签
- 可以在终端中直接运行Python代码
8.4 Jupyter Notebook与VS Code集成
8.4.1 在VS Code中使用Jupyter Notebook
创建Jupyter Notebook:
- 点击"文件 > 新建文件"
- 选择"Jupyter Notebook"
- 或直接创建
.ipynb文件
编辑和运行代码:
- 在代码单元格中输入代码
- 点击单元格左侧的运行按钮
- 或使用快捷键
Shift + Enter
查看输出:
- 代码执行结果会显示在单元格下方
- 支持图表和交互式输出
8.4.2 在VS Code中调试Jupyter Notebook
- 设置断点:点击代码行号左侧设置断点
- 开始调试:右键点击单元格,选择"调试单元格"
- 单步执行:使用调试工具栏进行单步执行
- 查看变量:在调试面板中查看变量值
8.4.3 导出和共享Notebook
导出格式:
- HTML
- Markdown
- Python文件
导出方法:
- 在Jupyter Notebook中:"文件 > 下载为"
- 在VS Code中:右键点击Notebook文件,选择"导出"
共享方法:
- GitHub:直接上传
.ipynb文件 - nbviewer:通过URL分享Notebook
- Binder:创建可交互的Notebook环境
- GitHub:直接上传
8.5 智能体开发的项目结构
8.5.1 推荐的项目结构
ai-agent-project/
├── .vscode/ # VS Code配置
│ └── settings.json # 工作区设置
├── notebooks/ # Jupyter Notebook文件
│ ├── 01-exploration.ipynb # 探索性分析
│ ├── 02-prototype.ipynb # 原型开发
│ └── 03-evaluation.ipynb # 模型评估
├── src/ # 源代码
│ ├── agent/ # 智能体核心代码
│ │ ├── __init__.py
│ │ ├── base_agent.py # 基础智能体类
│ │ ├── memory.py # 记忆系统
│ │ └── tools.py # 工具定义
│ ├── utils/ # 工具函数
│ │ ├── __init__.py
│ │ └── helpers.py
│ └── __init__.py
├── tests/ # 测试代码
│ ├── test_agent.py
│ └── test_tools.py
├── .env # 环境变量
├── .gitignore # Git忽略文件
├── README.md # 项目说明
├── pyproject.toml # Poetry配置
└── requirements.txt # 依赖列表8.5.2 配置文件管理
.gitignore文件:
# 环境文件 .env .venv/ # IDE文件 .vscode/ .idea/ # 操作系统文件 .DS_Store Thumbs.db # 日志文件 logs/ *.log # 数据文件 data/ # 构建文件 dist/ build/ *.egg-info/README.md模板:
# AI智能体项目 项目简介 ## 环境要求 - Python 3.10+ - 依赖见requirements.txt ## 安装 ```bash # 克隆仓库 git clone https://github.com/yourusername/ai-agent-project.git cd ai-agent-project # 安装依赖 pip install -r requirements.txt # 或使用Poetry poetry install配置
- 复制
.env.example为.env - 填写API密钥等配置
使用
# 运行示例 python src/example.py # 启动Jupyter Notebook jupyter notebook项目结构
src/:源代码notebooks/:Jupyter Notebook文件tests/:测试代码
- 复制
8.6 开发工作流优化
8.6.1 开发流程建议
探索阶段:
- 使用Jupyter Notebook进行快速原型开发
- 测试不同的模型和参数
- 可视化数据和结果
开发阶段:
- 在VS Code中编写模块化代码
- 使用版本控制管理代码变更
- 编写单元测试
测试阶段:
- 运行测试套件
- 进行集成测试
- 性能评估
部署阶段:
- 打包代码
- 配置部署环境
- 监控和维护
8.6.2 代码质量保证
代码风格:
- 遵循PEP 8编码规范
- 使用Black进行代码格式化
- 使用isort整理导入语句
代码检查:
- 使用pylint进行代码分析
- 使用mypy进行类型检查
- 使用flake8进行代码风格检查
测试覆盖率:
- 使用pytest进行测试
- 使用coverage.py测量测试覆盖率
- 目标覆盖率:80%以上
8.6.3 效率提升技巧
使用代码片段:
- 在VS Code中创建自定义代码片段
- 快速插入常用代码模板
使用快捷键:
- 学习和使用常用快捷键
- 提高代码编辑速度
使用多光标编辑:
- 同时编辑多个位置
- 减少重复操作
使用Git集成:
- 在VS Code中直接使用Git功能
- 定期提交代码变更
使用扩展工具:
- 安装和使用适合的扩展
- 提高开发效率
8.7 实用案例:智能体开发环境搭建
8.7.1 案例目标
搭建一个完整的智能体开发环境,包括Jupyter Notebook和VS Code配置。
8.7.2 实现步骤
创建项目目录:
mkdir -p ai-agent-dev/notebooks ai-agent-dev/src/agent ai-agent-dev/src/utils ai-agent-dev/tests cd ai-agent-dev初始化Poetry项目:
poetry init poetry add langchain openai python-dotenv jupyter matplotlib poetry add --group dev pytest black isort flake8 mypy配置VS Code:
- 创建
.vscode/settings.json:{ "python.pythonPath": ".venv/bin/python", "python.linting.enabled": true, "python.linting.pylintEnabled": true, "python.formatting.provider": "black", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true } }
- 创建
创建Jupyter Notebook:
- 在
notebooks/目录中创建01-agent-prototype.ipynb:# 导入必要的库 from langchain.chat_models import ChatOpenAI from langchain.prompts import ChatPromptTemplate import os from dotenv import load_dotenv # 加载环境变量 load_dotenv() # 初始化模型 llm = ChatOpenAI( model="gpt-3.5-turbo", temperature=0.7 ) # 创建提示模板 prompt = ChatPromptTemplate.from_template( "你是一个友好的AI助手,请回答以下问题:{question}" ) # 测试模型 response = llm(prompt.format_messages(question="什么是AI智能体?")) print(response.content)
- 在
创建Python模块:
- 在
src/agent/base_agent.py中创建基础智能体类:from langchain.chat_models import ChatOpenAI from langchain.prompts import ChatPromptTemplate class BaseAgent: def __init__(self, model="gpt-3.5-turbo", temperature=0.7): self.llm = ChatOpenAI( model=model, temperature=temperature ) def generate_response(self, prompt, **kwargs): """生成响应""" chat_prompt = ChatPromptTemplate.from_template(prompt) response = self.llm(chat_prompt.format_messages(**kwargs)) return response.content
- 在
测试开发环境:
- 在VS Code中运行测试脚本
- 在Jupyter Notebook中测试智能体功能
8.7.3 案例分析
- 环境搭建:创建了完整的项目结构和开发环境
- 工具配置:配置了Jupyter Notebook和VS Code
- 代码组织:采用模块化的代码组织方式
- 工作流:建立了从探索到开发的完整工作流
8.8 小结与展望
8.8.1 本集要点回顾
- 介绍了Jupyter Notebook和VS Code的安装与配置
- 详细讲解了智能体开发相关的扩展和工具
- 提供了推荐的项目结构和开发工作流
- 分享了代码质量保证和效率提升的技巧
- 实践了完整的智能体开发环境搭建
8.8.2 后续学习方向
- 学习使用Git进行版本控制
- 了解LangSmith和LangFuse等智能体调试工具
- 开始实际的智能体开发实践
- 学习提示词工程技巧,优化模型输出
- 探索智能体的高级功能和应用场景