文章目录
- 一、AI 应用开发基础认知
- 1.1 学习 AI 应用开发的正确姿势
- 1.2 大语言模型(LLM)基础
- 1.3 提示词工程入门
- 1.4 LLM 的接入方式
- 1.5 嵌入模型(Embedding)详解
- 二、LangChain 开发框架
- 2.1 LangChain 软件包安装
- 2.2 使用 LangSmith 跟踪 LLM 应用
一、AI 应用开发基础认知
1.1 学习 AI 应用开发的正确姿势
保质期较短的部分:对特定框架(LangChain、LlamaIndex)的 API 熟悉程度——这些抽象层迭代很快,今天背的 API 明天可能就 deprecated 了。长线资产的部分:一是对系统设计的理解(怎么拆服务、怎么隔离状态、怎么处理异常);二是后端底层的工程能力,尤其是在做高性能检索、协议处理时不会被语言限制住;三是对 AI 系统评估的认知——不管框架怎么变,怎么判断一个 RAG 系统"好不好"这件事不会过时。
1.2 大语言模型(LLM)基础
什么是大语言模型:
大语言模型(Large Language Model, LLM)是指基于大规模神经网络(参数规模通常达数十亿至万亿级别,例如 GPT-3 包含 1750 亿参数),通过自监督或半监督方式,对海量文本进行训练的语言模型。
1.3 提示词工程入门
关于提示词的编写技巧:
1.采用CO-STAR结构化框架:
模块 说明 示例 Context 任务背景与上下文 “你是电商客服,需解答用户关于 iPhone 17 的咨询,知识库包含最新价格和库存” Objective 核心目标 “准确回答价格、发货时间,推荐适配配件” Steps 执行步骤 “1. 识别用户问题类型;2. 检索知识库;3. 用亲切语气整理回复” Tone 语言风格 “口语化,避免专业术语,使用‘亲~’‘呢’等语气词” Audience 目标用户 “20-35 岁年轻消费者,对价格敏感,关注性价比” Response 输出格式 “价格:XXX 元 \n 库存:XXX 件 \n 推荐配件:XXX(链接)” 2.采用少样本或者多示例提示:
先喂 1-5 个示例答案,让它照着例子的格式、语气、逻辑,来回答新问题
3.思维链提示:
也就是给出示例以及它的推导过程给ai,然后再让ai回答新问题
4.自动推理与零样本链式思考:
通过指令 “请一步步进行推理并得出结论”,强制 AI 在给出答案前先进行内部推理
5.自我批判与迭代:
要求ai在生成答案后,从特定角度对自己的答案进行审查和优化
1.4 LLM 的接入方式
LLM的接入方式:
常见的原生 LLM(不经过第三方平台或复杂的代理层,直接与大语言模型提供方进行交互的方法)接入方式有三种:
【API 远程调用】【开源模型本地部署】和【SDK 和官方客户端】
1.API远程调用:
注册账号并获取 API Key:在模型提供商的平台上注册,获得用于身份验证的密钥。(api key一般获取之后配置在环境变量里面,以此来保证api key的隐私性)
查阅 API 文档:了解请求的端点、参数(如模型名称、提示词、温度、最大生成长度等)和返回的数据格式。
构建 HTTP 请求:在你的代码中,使用 HTTP 客户端库(如 Python 的
requests)构建一个包含 API Key(通常在 Header 中)和请求体(JSON 格式,包含你的提示和参数)的请求。发送请求并处理响应:将请求发送到提供商指定的 API 地址,然后解析返回的 JSON 数据,提取生成的文本。
2.开源模型本地部署:
将下载模型的文件(权重和配置文件),使用专门的推理框架在本地服务器或 GPU 上加载并运行模型,然后通过类似 API 的方式进行交互
–注意:模型的参数量级越多 → 模型 “知识量” 越大 → 处理复杂任务的能力越强,硬件需求也越高
3.SDK和官方客户端库:
这属于是对第一种 API 接入的封装和简化。模型提供商通常会发布官方编程语言 SDK,为我们封装好了底层的 HTTP 请求细节,提供一个更符合编程习惯的、语言特定的函数库
1.5 嵌入模型(Embedding)详解
关于嵌入模型(也叫表示型模型):
ai里两个完全不同的模型:生成式模型和表示型模型
生成式模型就是给一段文本,它会给出答案
表示型模型就是给一段文本,它会为输入文本生成一个最佳的富含语义的数值表示
–由于文本经由嵌入模型生成了向量,所以可以用数学来度量语义:
1.欧式距离:直线距离越短,相似度越高
2.余弦相似度(这个更常用):方向代表含义,长度代表语义的信息量强度
–这俩的维度越高,能捕捉的语义的复杂度就越强
嵌入模型的应用场景:
1.根据语句进行搜索(不是关键词搜索)
2.检索增强生成(RAG):嵌入模型主要负责里面的检索部分
3.个性化推荐
嵌入模型的接入方式:
1.API接入:
注册账号并获取 API Key:在对应的云服务平台(如 OpenAI Platform, Google AI Studio/Vertex AI)上注册账号,获取用于身份验证的 API Key。
安装 SDK 或构造 HTTP 请求:使用官方提供的 SDK(如
openai,google-generativeai)或直接构造 HTTP 请求。调用 API 并处理响应:发送文本,接收返回的 JSON 格式的向量数据。
2.本地部署:
环境准备:准备一台有足够 GPU 显存的服务器(对于 Qwen3-Embedding-8B,需要至少 16GB 以上显存)。
模型下载:从 Hugging Face 等模型仓库下载模型权重文件和配置文件。
代码集成:使用像
transformers这样的库来加载模型并进行推理。
这俩个网站里面找ai模型很不错:
https://huggingface.co/(国外的)
https://www.modelscope.cn/home(国内的)
ai编程范式(vibe coding氛围编程):
现在属于是无需手动写代码,跟ai聊天就能完成了;现在身份更像代码的审核者和提示词开发者
–但是ai帮忙生成的复杂的应用的话大概率只是能用,而不是优秀
–而且ai生成代码对上下文长度的记忆很差劲,以及会有幻觉问题(这个问题最大)和它的训练数据有截止日期,而且ai写代码没有安全意识
所以现在ai开发框架是新的战略高地
–py生态搞ai应用开发是主流,然后业务层用其他的语言这样来构成混合架构去使用较为常见
关于模型的参数规模:
eg:
deepseek-r1:7b这个7b指的是70亿参数;参数越多,模型的能力通常越强,但是对电脑配置的要求会更高
二、LangChain 开发框架
六大使用原生LLM的场景问题:
1.幻觉问题:大模型会编造不存在的事实或错误信息 --用RAG或者智能体(比如豆包)可以减轻这种问题
2.统一提示词问题:需要手动唯一和统一管理提示词
3.多模型切换问题:每个模型的接入方式不统一,切换起来很麻烦
4.结构化数据输出问题:它不会提供结构化的数据,但是开发环境下需要结构化的数据
5.实时信息获取问题:大模型的训练数据存在截止日期,无法获取最新信息 --可以通过搜索引擎工具解决
6.对于专业知识的可靠性不够
Langchain的话可以解决上述所有的问题
Langchain是一个把零散的大模型、嵌入模型、向量库、文档工具打包在一起,进行快速搭建稳定、可用的 AI 应用的东西
Langchain的设计精髓就是以链式的方式整合多个组件,无需各个组件各自完成其功能,而是一次性执行这个链上的所有流程
Langchain框架提供了一系列标准化的模块与接口,主要包括以下方面:
1.统一的模型调用接口 2.灵活的提示词管理 3.可组合的任务链 4.上下文记忆机制 5.检索与向量存储集成
Langchain框架的局限性:
1.链式流程是单向的,有一步失败就会全链终止重头再来
2.流程非常僵化,没法动态调整
3.需要手动维护系统状态–Langchain不会去关注上下文+不会去记录执行过程的中间结果
4.在过程中想要进行人工干预很困难
–所以后来就推出了LangGraph
LangGraph是图结构的
eg:
但是LangGraph 并不是要取代 LangChain,而是对 LangChain 的扩展和补充。LangGraph 底层大量复用了 LangChain 的组件(如模型接口、工具、记忆等),开发者可以在 LangGraph 的节点中直接使用 LangChain 的链或代理作为子流程。因此,LangGraph 与 LangChain 是互补关系
2.1 LangChain 软件包安装
主langchain包的安装:
pip install langchain关于
langchain-core包:大部分情况下langchain会自动安装;只有特殊场景才需要手动安装pip install langchain-core(LangChain生态里几乎所有包都必须依赖langchain-core这个底层核心包)关于
LangSmith SDK(这个包不依赖于langchain-core):这个也是由langchain自动安装关于
langchain-community包:LangChain 把它支持的所有第三方工具 / 模型 / 数据库,都拆分成了独立的「专属包」,还没来得及拆分的那些,就暂时都放在 langchain-community 这个 “大杂烩” 包里了–需要手动安装:
pip install langchain-community关于
langgraph包:是一个库,用于使用LLM构建有状态的应用程序–需要手动安装:
pip install langgraphIntegrations集成包:Langchain中集成好的包可以去找里面找:LangChain Python integrations - Docs by LangChain
–对于所需的依赖项,需要单独进行安装
2.2 使用 LangSmith 跟踪 LLM 应用
使用 LangChain 构建的许多应用程序,可能会包含多个步骤和多次的 LLM 调用。随着这些应用程序变得越来越复杂,作为开发者,我们能够检查链或代理内部到底发生了什么变得至关重要。最好的方法是使用 LangSmith
LangSmith 与框架无关,它可以与 langchain 和 langgraph 一起使用,也可以不使用
平台地址:LangSmith