📚 课程概览

本系列课程共3节,介绍AI大模型应用开发所需的工具环境搭建和Jupyter Notebook的使用方法:

课程编号 课程标题 时长 核心内容
052 工具安装 | 做AI大模型应用开发,需要些啥? 3分43秒 Python环境、Anaconda、必要库安装
053 Jupyter Notebook使用 | 上手金刚钻 4分54秒 Jupyter基础操作、Cell类型、运行代码
054 Jupyter Notebook使用 | 更多上手金刚钻 4分3秒 进阶功能、魔法命令、快捷键、调试技巧

第一课:AI大模型应用开发工具安装

1.1 开发环境概述

AI大模型应用开发需要以下核心组件:

┌─────────────────────────────────────────┐
│         AI大模型应用开发环境             │
├─────────────────────────────────────────┤
│  Python 3.8+                            │
│  ├── Anaconda/Miniconda(环境管理)      │
│  ├── Jupyter Notebook(开发工具)        │
│  └── 必要Python库                        │
│      ├── openai / anthropic            │
│      ├── langchain                      │
│      ├── transformers                   │
│      └── torch / tensorflow             │
└─────────────────────────────────────────┘

1.2 Python环境安装

方案一:Anaconda(推荐初学者)

Anaconda是数据科学和AI开发的完整发行版,包含:

  • Python解释器
  • 常用科学计算库(NumPy, Pandas, Matplotlib等)
  • conda包管理器
  • Jupyter Notebook

安装步骤:

  1. 下载Anaconda

    • 官网:https://www.anaconda.com/download
    • 选择对应操作系统的版本(Windows/macOS/Linux)
    • 推荐下载Python 3.10+版本
  2. 安装Anaconda

    # Windows: 双击安装程序,勾选"Add to PATH"
    # macOS: 双击.pkg文件安装
    # Linux: 运行bash脚本
    bash Anaconda3-2024.xx-Linux-x86_64.sh
    
  3. 验证安装

    conda --version
    python --version
    
方案二:Miniconda(轻量级)

Miniconda只包含conda和Python,体积更小:

# 下载并安装Miniconda
# 然后手动安装所需包
conda install python=3.11
conda install jupyter
conda install numpy pandas matplotlib

1.3 必要Python库安装

核心AI/ML库
# OpenAI API
pip install openai

# LangChain框架
pip install langchain
pip install langchain-openai

# Hugging Face Transformers
pip install transformers
pip install datasets

# 深度学习框架(二选一或都装)
pip install torch
# 或
pip install tensorflow

# 向量数据库(可选)
pip install chromadb
pip install faiss-cpu
实用工具库
# 环境变量管理
pip install python-dotenv

# HTTP请求
pip install requests

# 数据处理
pip install pandas
pip install numpy

# 可视化
pip install matplotlib
pip install plotly

1.4 环境配置最佳实践

使用Conda创建隔离环境
# 创建新环境
conda create -n ai-dev python=3.11

# 激活环境
conda activate ai-dev

# 在环境中安装包
pip install openai langchain jupyter

# 退出环境
conda deactivate

# 删除环境
conda remove -n ai-dev --all
使用requirements.txt管理依赖

创建requirements.txt文件:

openai>=1.0.0
langchain>=0.1.0
langchain-openai>=0.0.5
python-dotenv>=1.0.0
jupyter>=7.0.0
pandas>=2.0.0
numpy>=1.24.0
matplotlib>=3.7.0

安装依赖:

pip install -r requirements.txt

1.5 API密钥配置

使用环境变量管理密钥
  1. 创建.env文件(在项目根目录)

    # .env文件
    OPENAI_API_KEY=sk-your-api-key-here
    ANTHROPIC_API_KEY=sk-ant-your-key-here
    
  2. 在代码中加载

    from dotenv import load_dotenv
    import os
    
    load_dotenv()  # 加载.env文件
    
    openai_key = os.getenv('OPENAI_API_KEY')
    
  3. 添加到.gitignore

    # .gitignore
    .env
    *.key
    api_keys.txt
    

⚠️ 安全提醒:永远不要将API密钥提交到Git仓库!


第二课:Jupyter Notebook基础使用

2.1 Jupyter Notebook简介

Jupyter Notebook是交互式编程环境,特点:

  • 📝 支持代码、文本、图表混合编写
  • ▶️ 代码分块(Cell)执行,便于调试
  • 📊 直接在浏览器中显示图表和可视化结果
  • 💾 保存为.ipynb文件,可分享和复现

2.2 启动Jupyter Notebook

# 激活环境
conda activate ai-dev

# 启动Jupyter
jupyter notebook

# 或指定端口
jupyter notebook --port 8888

# 不自动打开浏览器
jupyter notebook --no-browser

启动后会显示:

http://localhost:8888/?token=your_token_here

2.3 Jupyter界面介绍

┌─────────────────────────────────────────────────────┐
│  Jupyter Notebook 界面                               │
├─────────────────────────────────────────────────────┤
│  📁 文件浏览器(左侧/首页)                          │
│     - 新建Notebook                                   │
│     - 上传文件                                       │
│     - 文件夹导航                                     │
├─────────────────────────────────────────────────────┤
│  📝 Notebook编辑界面                                 │
│  ┌───────────────────────────────────────────────┐ │
│  │ 菜单栏:File Edit View Insert Cell Kernel...  │ │
│  ├───────────────────────────────────────────────┤ │
│  │ 工具栏:保存 添加Cell 剪切 复制 运行...        │ │
│  ├───────────────────────────────────────────────┤ │
│  │ Cell 1 [In]: import pandas as pd              │ │
│  │              df = pd.DataFrame(...)           │ │
│  ├───────────────────────────────────────────────┤ │
│  │ Cell 2 [Out]: 输出结果显示在这里               │ │
│  ├───────────────────────────────────────────────┤ │
│  │ Cell 3 [In]: # 下一个代码块                     │ │
│  └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────┘

2.4 Cell类型详解

Jupyter中有三种主要Cell类型:

1. Code Cell - 代码单元格
# 这是Code Cell
import openai

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

运行快捷键

  • Shift + Enter:运行当前Cell并跳到下一个
  • Ctrl + Enter:运行当前Cell并停留在当前
  • Alt + Enter:运行当前Cell并在下方插入新Cell
2. Markdown Cell - 文本单元格

用于编写说明文档,支持Markdown语法:

# 一级标题
## 二级标题

**粗体文字** 和 *斜体文字*

- 列表项1
- 列表项2

[链接文字](https://example.com)

![图片说明](image.png)

`行内代码`

```python
# 代码块
print("Hello")

**切换Cell类型**:
- 选中Cell后按 `Y` → 切换为Code Cell
- 选中Cell后按 `M` → 切换为Markdown Cell

#### 3. Raw Cell - 原始单元格

用于保存原始文本,不会被渲染,常用于:
- 导出为其他格式时的特殊标记
- 保留原始代码片段

### 2.5 常用菜单功能

| 菜单 | 功能 | 常用操作 |
|-----|------|---------|
| **File** | 文件操作 | New Notebook, Save, Download as |
| **Edit** | 编辑操作 | Cut Cells, Copy Cells, Merge Cells |
| **View** | 视图操作 | Toggle Line Numbers, Toggle Toolbar |
| **Insert** | 插入操作 | Insert Cell Above/Below |
| **Cell** | Cell操作 | Run Cells, Cell Type, Current Outputs |
| **Kernel** | 内核操作 | Restart, Interrupt, Change kernel |

### 2.6 内核(Kernel)管理

**什么是Kernel?**
- Kernel是执行代码的后台进程
- 每个Notebook对应一个独立的Kernel
- Kernel重启会清空所有变量

**常用Kernel操作**:

Kernel菜单:
├── Interrupt # 中断当前执行(Ctrl+C效果)
├── Restart # 重启Kernel(清空所有变量)
├── Restart & Clear Output # 重启并清空输出
├── Restart & Run All # 重启并运行所有Cell
└── Shutdown # 关闭Kernel


---

## 第三课:Jupyter Notebook进阶使用(054)

### 3.1 魔法命令(Magic Commands)

魔法命令以`%`(行魔法)或`%%`(单元魔法)开头,提供特殊功能。

#### 常用行魔法命令

```python
# 查看所有魔法命令
%lsmagic

# 查看变量信息
%who          # 列出所有变量
%whos         # 列出变量详细信息
%who_ls       # 以列表形式返回变量名

# 时间测量
%time x = sum(range(1000000))        # 测量单次执行时间
%timeit x = sum(range(1000000))      # 多次测量取平均

# 系统命令
%pwd          # 显示当前目录
%ls           # 列出文件
%cd /path     # 切换目录
%mkdir dir    # 创建目录

# 运行外部脚本
%run script.py
%load script.py  # 将脚本内容加载到Cell

# 性能分析
%prun function()  # 代码性能分析
常用单元魔法命令
# %%time - 测量整个Cell的执行时间
%%time
import time
time.sleep(1)
print("Done")

# %%writefile - 将Cell内容写入文件
%%writefile hello.py
print("Hello, World!")
def greet(name):
    return f"Hello, {name}!"

# %%bash - 运行bash命令(Linux/macOS)
%%bash
echo "Current directory:"
pwd
ls -la

# %%html - 渲染HTML
%%html
<h3 style="color: blue;">蓝色标题</h3>

# %%latex - 渲染LaTeX公式
%%latex
$$E = mc^2$$

# %%javascript - 运行JavaScript
%%javascript
alert('Hello from Jupyter!');

3.2 快捷键大全

命令模式快捷键(按Esc进入)
快捷键 功能
Enter 进入编辑模式
/ 选择上下Cell
A 在当前Cell上方插入新Cell
B 在当前Cell下方插入新Cell
DD 删除当前Cell(按两次D)
Z 撤销删除
Y 切换为Code Cell
M 切换为Markdown Cell
R 切换为Raw Cell
Shift + ↑/↓ 选中多个Cell
Shift + M 合并选中的Cell
Ctrl + Shift + - 在光标处拆分Cell
L 显示/隐藏行号
O 显示/隐藏输出
Shift + O 切换输出滚动
II 中断Kernel(按两次I)
00 重启Kernel(按两次0)
Shift + Space 向上滚动
Space 向下滚动
S 保存Notebook
F 查找替换
编辑模式快捷键(按Enter进入)
快捷键 功能
Esc 进入命令模式
Tab 代码补全或缩进
Shift + Tab 显示函数帮助文档
Ctrl + ] 缩进
Ctrl + [ 取消缩进
Ctrl + A 全选
Ctrl + Z 撤销
Ctrl + Shift + Z 重做
Ctrl + Home 跳到Cell开头
Ctrl + End 跳到Cell末尾
Ctrl + Left/Right 按词移动光标
Ctrl + Shift + - 拆分Cell

3.3 数据可视化集成

Matplotlib集成
# 在Notebook中显示图表
%matplotlib inline

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b-', label='sin(x)')
plt.title('Sine Wave')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
plt.grid(True)
plt.show()
交互式图表(ipywidgets)
# 安装ipywidgets
# pip install ipywidgets

import ipywidgets as widgets
from IPython.display import display

# 创建滑块
slider = widgets.IntSlider(
    value=50,
    min=0,
    max=100,
    step=1,
    description='数值:'
)

display(slider)

# 获取滑块值
print(f"当前值: {slider.value}")

3.4 调试技巧

使用pdb调试器
# 在代码中设置断点
import pdb

def calculate(x, y):
    result = x + y
    pdb.set_trace()  # 在这里暂停
    result = result * 2
    return result

calculate(5, 3)

pdb常用命令

  • n (next):执行下一行
  • s (step):进入函数
  • c (continue):继续执行
  • p variable:打印变量值
  • l (list):显示当前代码
  • q (quit):退出调试
使用%debug魔法命令
# 当代码抛出异常时,使用%debug进入事后调试
def divide(a, b):
    return a / b

divide(10, 0)  # 这里会抛出ZeroDivisionError
# 在下一个Cell中运行
%debug
# 进入调试模式,可以查看变量和堆栈

3.5 Notebook扩展功能

安装Jupyter扩展
# 安装jupyter_contrib_nbextensions
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

# 安装nbextensions配置界面
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user
推荐扩展
扩展名 功能
Table of Contents 自动生成目录
Codefolding 代码折叠
ExecuteTime 显示Cell执行时间
Variable Inspector 变量检查器
Hinterland 自动代码补全
Snippets 代码片段

3.6 Notebook导出与分享

导出格式
# 导出为Python脚本
jupyter nbconvert --to script notebook.ipynb

# 导出为HTML
jupyter nbconvert --to html notebook.ipynb

# 导出为PDF(需要安装LaTeX)
jupyter nbconvert --to pdf notebook.ipynb

# 导出为Markdown
jupyter nbconvert --to markdown notebook.ipynb

# 导出为幻灯片
jupyter nbconvert --to slides notebook.ipynb
在线分享
  1. GitHub:直接上传.ipynb文件,GitHub会自动渲染
  2. nbviewer:https://nbviewer.jupyter.org/
    输入Notebook URL即可在线查看
  3. Google Colab:https://colab.research.google.com/
    免费GPU/TPU,适合深度学习
  4. Binder:https://mybinder.org/
    从GitHub仓库生成可运行的环境

📝 综合实践案例

案例1:AI对话应用开发流程

# Cell 1: 导入库
import os
from dotenv import load_dotenv
from openai import OpenAI

# Cell 2: 加载API密钥
load_dotenv()
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))

# Cell 3: 定义对话函数
def chat_with_gpt(prompt, model="gpt-3.5-turbo"):
    """与GPT模型对话"""
    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "system", "content": "你是一个 helpful 助手。"},
            {"role": "user", "content": prompt}
        ]
    )
    return response.choices[0].message.content

# Cell 4: 测试对话
result = chat_with_gpt("请用一句话解释什么是机器学习")
print(result)

# Cell 5: 批量处理
topics = ["机器学习", "深度学习", "神经网络", "自然语言处理"]
for topic in topics:
    explanation = chat_with_gpt(f"请用一句话解释什么是{topic}")
    print(f"{topic}: {explanation}\n")

案例2:数据分析与可视化

# Cell 1: 导入库
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

%matplotlib inline

# Cell 2: 创建示例数据
np.random.seed(42)
data = {
    '月份': ['1月', '2月', '3月', '4月', '5月', '6月'],
    '销售额': np.random.randint(100, 500, 6),
    '用户数': np.random.randint(1000, 5000, 6)
}
df = pd.DataFrame(data)
df

# Cell 3: 数据分析
print("数据统计:")
print(df.describe())

# Cell 4: 可视化
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 5))

# 销售额柱状图
ax1.bar(df['月份'], df['销售额'], color='skyblue')
ax1.set_title('月度销售额')
ax1.set_ylabel('销售额(万元)')

# 用户数折线图
ax2.plot(df['月份'], df['用户数'], marker='o', color='green')
ax2.set_title('月度用户数')
ax2.set_ylabel('用户数')

plt.tight_layout()
plt.show()

# Cell 5: 保存结果
df.to_csv('sales_data.csv', index=False)
print("数据已保存到 sales_data.csv")

案例3:使用Jupyter进行模型实验

# Cell 1: 实验配置
EXPERIMENT_NAME = "gpt-prompt-optimization"
MODEL = "gpt-3.5-turbo"
TEMPERATURE = 0.7

# Cell 2: 定义不同的prompt模板
templates = {
    "direct": "{question}",
    "with_context": "请基于以下背景回答问题:\n背景:{context}\n问题:{question}",
    "step_by_step": "请逐步思考并回答问题:\n{question}\n请按步骤分析:"
}

# Cell 3: 测试问题
test_questions = [
    "如何提高Python代码性能?",
    "解释递归函数的工作原理"
]

# Cell 4: 运行实验并记录结果
results = []

for template_name, template in templates.items():
    for question in test_questions:
        prompt = template.format(question=question, context="一般编程场景")
        
        # 调用API
        response = chat_with_gpt(prompt)
        
        # 记录结果
        results.append({
            'template': template_name,
            'question': question,
            'prompt': prompt,
            'response': response
        })

# Cell 5: 查看结果
results_df = pd.DataFrame(results)
results_df[['template', 'question', 'response']]

# Cell 6: 导出实验记录
results_df.to_json(f'{EXPERIMENT_NAME}_results.json', orient='records', force_ascii=False, indent=2)

⚠️ 常见问题与解决方案

问题1:Kernel无法启动

现象Kernel Error 或一直显示 Kernel Starting

解决方案

# 1. 重启Jupyter服务
# 2. 检查环境配置
conda activate ai-dev
pip install --upgrade ipykernel

# 3. 重新安装kernel
python -m ipykernel install --user --name=ai-dev --force

问题2:模块找不到

现象ModuleNotFoundError: No module named 'xxx'

解决方案

# 确保在正确的环境中安装
conda activate ai-dev
pip install xxx

# 或在Notebook中直接安装
!pip install xxx

问题3:Notebook无法保存

现象Notebook changed on disk

解决方案

  • 检查文件权限
  • 关闭其他编辑器中的同名文件
  • 使用 File → Save As 另存为

问题4:输出太长导致卡顿

解决方案

# 限制输出行数
from IPython.display import clear_output

# 清除输出
clear_output(wait=True)

# 或在Cell菜单中选择 "Clear Output"

问题5:内存不足

解决方案

# 查看内存使用
import sys
print(f"当前内存使用: {sys.getsizeof(data) / 1024 / 1024:.2f} MB")

# 删除大变量释放内存
del large_variable
import gc
gc.collect()

# 重启Kernel(会清空所有变量)

💡 学习要点总结

环境搭建要点

  1. 使用Conda管理环境:每个项目独立环境,避免包冲突
  2. requirements.txt记录依赖:便于环境复现和团队协作
  3. .env管理敏感信息:API密钥等不要硬编码
  4. Python版本选择:AI开发推荐Python 3.10+

Jupyter使用要点

  1. Cell类型灵活切换:Y(Code), M(Markdown), R(Raw)
  2. 善用魔法命令:%timeit, %run, %load等提高效率
  3. 快捷键熟练:Esc进入命令模式,Enter进入编辑模式
  4. 及时保存:Ctrl+S或S键保存
  5. Kernel管理:出现问题时重启Kernel

最佳实践清单

  • ✅ 使用conda创建隔离环境
  • ✅ 用requirements.txt管理依赖
  • ✅ API密钥存储在.env文件
  • ✅ 使用with语句管理文件
  • ✅ 添加异常处理增强健壮性
  • ✅ 用Markdown Cell写文档说明
  • ✅ 定期保存Notebook
  • ✅ 使用%timeit测试代码性能
  • ✅ 大项目使用目录结构组织Notebook

📖 延伸阅读

官方文档

推荐资源

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐