langchain开发-AI通识
AI通识
一、人工智能
1.发展历程

2.AI核心制约因素

二、神经网络

1.AI神经网络

2.深度神经网络
深度神经网络(DNN)的核心在于层——数据在层与层之间流动,每一层都在做一件事:提取更抽象的特征

“深度”指的就是隐藏层的层数多。传统神经网络可能只有 1 层,而深度神经网络有几十甚至几百层。层数越多,能学到的特征越抽象:
1 | 输入层 → 隐藏层1 → 隐藏层2 → 输出层 |
2.1、单独的神经元

也就是这个公式
具体场景
权重就是模型对世界的认知——它编码了”哪个特征重要、重要多少”。负权重意味着”这个信号反而让我不激活”
2.2、反向传播
反向传播——它就是在回答一个问题:权重差在哪儿,往哪个方向改?
无数神经元的权重参数那么多,手动调整一定不可能实现,于是出现反向传播
流程如下
1 | ① 正向传播:输入数据 → 按当前权重逐层计算 → 得到预测值 |
反向传播的核心数学是链式法则——一个复合函数求导的规则。因为网络是层层嵌套的函数,所以最终的梯度可以从输出往输入”一层一层乘回来”,而不需要对每个权重单独重算,极大地节省了计算量
三、大语言模型
1.词向量
计算机只认识数字,不认识”猫”、”狗”这些字。最原始的做法是给每个词分配一个编号(one-hot 编码),比如”猫”= [1,0,0,...],”狗”= [0,1,0,...] 但这种表示有个致命问题:所有词之间的距离都一样,计算机无法感知”猫”和”狗”比”猫”和”汽车”更相似

词向量解决了这个问题:把每个词映射到一个高维空间中的实数向量(比如 300 维),语义相似的词,向量也相近
空间可视化

向量运算 = 语义运算

2.Transformer
Transformer 是 2017 年 Google 论文《Attention Is All You Need》提出的模型

注意力机制

向量加减实现注意力
四、大模型与大模型应用
1.GPT

2.ChatGPT
大模型与传统web应用相结合

具体实现

五、大模型服务
1.云服务api开放平台

注册即送大量额度,但是有过期时间
1 | 创建apikey |
更多使用api在代码中实现

2.api服务
1 | https://platform.deepseek.com/usage |

调用时兼容 openAI 格式

3.私有部署
1 | https://ollama.com/ |

六、大模型API
1.接口规范
model — 指定要调用的模型名称,比如 gpt-4o、gpt-4o-mini、deepseek-chat 等,不同提供商字段名相同,只是值不同,这也是”OpenAI 兼容格式”能通用的原因
messages — 对话历史数组,每条消息是一个对象,包含两个字段:
role:身份,固定三种值——system(系统提示词)、user(用户输入)、assistant(模型历史回复)content:消息内容字符串1
2
3
4
5
6"messages": [
{ "role": "system", "content": "你是一个专业的 Java 开发助手" },
{ "role": "user", "content": "什么是缓存雪崩?" },
{ "role": "assistant", "content": "缓存雪崩是指..." },
{ "role": "user", "content": "怎么解决?" }
]多轮对话靠的就是把完整历史塞进
messages,模型本身没有记忆,每次请求都要带完整上下文
其他参数
1 | { |

请求头设置如上
2.会话记忆
模型本身无状态,”会话记忆”完全靠客户端维护 messages 数组来实现

每轮都把完整历史带上,模型才能”记住”前面说了什么
常见策略
3.开发环境
UV包管理工具
1 | https://uv.doczh.com/getting-started/installation/ |
创建uv项目
1 | pip install uv |
添加镜像源
1 | setx UV_DEFAULT_INDEX "https://pypi.tuna.tsinghua.edu.cn/simple" |
pyproject.toml 文件
1 | name = "agent": 项目的名称。当你之后运行项目或将其打包时,这就是它的标识。 |
结合 pycharm 工具创建项目

4.原生调用大模型api
用 OpenAI SDK 兼容接口调用 Claude / 其他模型
很多平台(Claude、DeepSeek、千问等)都提供 OpenAI 兼容接口,只需改 base_url 和 api_key:
1 | from openai import OpenAI |
流式输出(Streaming)方式
1 | from openai import OpenAI |
环境变量获取依赖
读取环境变量需要用到python-dotenv,先安装依赖
安装命令:
1 | uv add python-dotenv |
再创建.env文件,并写入api_key
1 | DEEPSEEK_API_KEY=sk-f36d |
接着就可以可以从环境变量中获取api_key了
1 | from dotenv import load_dotenv |