AI Agent 入门:让大模型自己干活
前言到目前为止我们讲的大模型用法——不管是普通对话还是 RAG——本质上都是”你问一句,它答一句”。 Agent(智能体)让模型更进一步:给一个目标,它自己规划步骤、调用工具、检查结果、修正错误,直到把事办成。就像你交代下属一个任务,不需要把每个细节都告诉他怎么做。 一、Agent 和普通 Chat 的区别12345678910普通 Chat:你: "今天北京天气怎么样?"模型: "抱歉,我无法获取实时天气信息。"Agent:你: "帮我查一下北京今天的天气,如果下雨就提醒我带伞"Agent 做了三件事:1. 调用天气 API: get_weather("北京") → "多云转小雨,15-22°C"2. 分析结果:有小雨3. "今天北京多云转小雨,15-22°C,出门记得带伞。" Agent 本质上是 LLM + 工具 + 循环 的组合。LLM 负责思考规划,工具负责执行实际操作,循环负责检查修正。 二、ReAct 模式这是目前 Agent 最主流的实现模...
基于 RAG 架构构建企业内网文档问答机器人
前言前面那篇 RAG 入门讲了基本原理和最小 Demo。这篇从实际部署的角度,做一个能真正给团队用的文档问答机器人。 完整的流程包括:多种格式文档导入 → 智能切片 → 向量化存储 → 检索优化 → 大模型回答 → Web 界面。 一、项目架构12345678docs/ (PDF/Word/Markdown/TXT) → 文档加载器 → 文本切片器 → Embedding 模型 → ChromaDB 向量库 → 检索器 (混合检索: 向量+BM25) → LLM (DeepSeek/通义千问) → Gradio Web UI 二、环境与依赖123pip install langchain langchain-community langchain-openaipip install chromadb pypdf docx2txt unstructured rank-bm25pip install gradio # Web UI 三、文档加载(支持多种格式)12345678910111213141516171819202122232...
RAG 入门:给大模型接上你的知识库
前言大模型的知识截止于训练数据的时间点,而且不知道你公司内部的产品文档、技术手册、规章制度。 RAG(Retrieval-Augmented Generation,检索增强生成)解决了这个问题:先把你的文档”喂”给系统,用户提问时,系统先检索最相关的文档片段,再把片段和问题一起发给大模型。这样模型就能基于你的私有知识来回答了。 这篇文章用最小的代码量,跑通一个完整的 RAG 流程。 一、RAG 的核心流程12345文档 → 切片 → Embedding → 向量数据库 ↓ (用户提问时)用户提问 → 向量化 → 相似度检索 → Top-K 文档片段 ↓ 拼进 Prompt → 发给 LLM → 返回答案 四个关键步骤: 加载文档:读入 PDF、TXT、Markdown、网页等 文本切片:大文档切成小段落(chunk) 向量化存储:把每个 chunk 转成向量,存入向量数据库 检索 + 生成:查询...
Function Calling 进阶:让 AI 调用你的函数
前言前面的 OpenAI API 文章演示了基本的对话。这篇讲 API 中最重要也最容易被低估的功能:Function Calling——让模型不仅能”说话”,还能”做事”。 Function Calling 不是让模型执行你的代码,而是让模型决定什么时候该调用哪个函数,以及用什么参数。模型返回函数名和参数,你的代码负责执行,然后把结果返回给模型。 一、基本机制1234567用户: "今天北京天气怎么样?"1. 你的代码发送请求,同时告诉模型有哪些工具可用2. 模型分析用户意图,返回: {"function": "get_weather", "arguments": {"city": "北京"}}3. 你的代码执行 get_weather("北京"),拿到结果 "晴,22°C"4. 你的代码把结果发给模型5. 模型生成最终回复: "北京今天晴朗,气温22°C,适合户外活动...
用一套代码适配与调用多模型 API
前言OpenAI 的 API 格式已经成为事实标准。国内的主流模型平台——DeepSeek、通义千问、豆包、硅基流动、零一万物——全都兼容这套格式。 这意味着写一次代码,换个 base_url 就能切模型。这篇文章讲清楚各平台的接入方式,以及如何封装一个统一的调用工具。 一、主流平台接入速查OpenAI12345from openai import OpenAIclient = OpenAI( api_key="sk-xxxxxxxx", base_url="https://api.openai.com/v1" # 这是默认值,可省略) DeepSeekplatform.deepseek.com 注册充值,费用极低(约 OpenAI 的 1/10)。 1234client = OpenAI( api_key="sk-xxxxxxxx", base_url="https://api.deepseek.com") 可用模型:deepseek-chat(V3 通用)...
Node.js 异步编程模型与核心模块应用
前言Node.js 的出现打破了传统的“一个连接一个线程”的网络服务模型,依托 V8 引擎与 libuv 库,开创了单线程异步非阻塞 I/O 的开发模式。 许多开发者常被“单线程”和“异步”的概念绕晕,在面对复杂的业务流程时容易陷入代码失控。这篇文章剥离底层概念,从事件循环架构出发,讲透 Node.js 异步编程的演进逻辑与高频核心模块的实际应用。 一、 单线程事件循环与非阻塞 I/O 的本质在传统的后端服务(如 Java 的 Tomcat 线程池模型)中,每一个并发网络请求都需要分配一个独立的系统线程去处理。如果该请求涉及到读取磁盘文件或查询数据库,线程就会进入阻塞状态,直到数据返回。这种模式对系统内存的消耗极大(每个线程通常需要分配 1MB 的栈空间)。 1.1 单线程与多线程的协作Node.js 采取了完全不同的策略:JavaScript 代码在单个主线程上运行,但底层的 I/O 操作并不是单线程的。 12345678910111213141516┌───────────────────────────────────────────────...
OpenAI API 入门:从申请 Key 到第一个 Chat 应用
前言用 ChatGPT 的网页版聊天很简单,但如果想把 AI 能力集成到自己的应用里——比如做个客服机器人、自动写周报的工具、代码审查助手——就需要通过 API。 OpenAI 的 API 是目前最成熟的大模型接口,而且很多国产模型(DeepSeek、通义千问、豆包)都兼容它的格式,学一次到处能用。 一、申请 API Key 打开 platform.openai.com 注册账号(需要海外手机号验证,可以用虚拟号平台) 进入 Dashboard → API Keys → Create new secret key 复制 Key(只显示一次,保存好) 充值:OpenAI 是预付费制,在 Billing 页面绑定信用卡或使用充值额度。个人开发者先充 5-10 美元足够玩很久了。 如果 OpenAI 用不了怎么办? 国内的替代方案(都兼容 OpenAI API 格式,只改 base_url 和 key): 平台 base_url 获取 Key DeepSeek https://api.deepseek.com platform.deepseek.com 通义千问 h...
Open WebUI + Ollama:搭建私人 ChatGPT
前言Ollama 能让你在本地跑模型,但命令行聊天的体验毕竟有限。Open WebUI 是一个开源的 ChatGPT 风格前端,配合 Ollama 可以实现: 和 ChatGPT 几乎一样的聊天界面 多模型随时切换对比 上传文档建知识库(RAG),让 AI 基于你的文件回答 多用户管理(给团队用) 对话记录搜索 这套组合部署在内网服务器上,就是团队自己的私有 AI 平台。 一、前提条件 已安装 Ollama 并拉取了至少一个模型 已安装 Docker(部署 Open WebUI 用) 验证 Ollama 运行中: 1234ollama list# 应该能看到至少一个模型curl http://localhost:11434/api/tags# 返回模型列表 JSON 二、部署 Open WebUI123456docker run -d \ --name open-webui \ --restart unless-stopped \ -p 3000:8080 \ -v open-webui-data:/app/backend/data \ ghcr.io/op...
Ollama 入门:一行命令跑起本地大模型
前言想在自己电脑上跑大模型,但看到”CUDA””量化””显存”这些词就头疼?Ollama 把这个门槛降到了最低——安装、下载模型、开始对话,三步搞定,不需要配置任何环境。 它在后台自动处理了模型量化、GPU 加速、内存管理这些脏活累活,对用户来说就是在终端里敲几行命令。 一、安装macOS:下载 Ollama.app,拖到 Applications 即可。 Linux: 1curl -fsSL https://ollama.com/install.sh | sh Windows:从 ollama.com/download 下载安装包,双击安装。 验证安装: 12ollama --version# ollama version is 0.9.0 二、拉取并运行第一个模型12# 拉取并直接运行(没下载会自动先下载)ollama run llama3.2 下载完成后会直接进入对话模式: 12345678>>> 你好,请做一下自我介绍我是 Llama,由 Meta 开发的 AI 助手……>>> 用 Python 写一个斐波那契函数d...
Flask Web 应用的模块化开发与生产环境部署
前言Flask 是一个轻量级 Web 框架,但微框架(Micro-framework)不意味着只能写玩具应用。很多开发者在面临中大型项目时,因为缺乏工程化架构规范,导致代码耦合严重、循环导入报错频发。 这篇文章以工程实践为主线,讲透 Flask 从模块化分层设计到生产环境高可用部署的完整链路。 一、 模块化架构设计:工厂模式与蓝图在单文件 Flask 应用中,我们通常直接创建全局 app 并将路由和数据库实例绑定其上。但随着业务扩张,这种做法会引发严重的**循环导入(Circular Imports)**灾难。例如,数据库模型类需要导入全局 db,而全局 db 的初始化又需要 app,这就形成了死锁。 彻底解决这一问题的标准方案是采用 工厂模式(Application Factory) 配合 蓝图(Blueprint)。 1.1 项目目录结构规划一个标准且解耦的 Flask 项目结构应当如下设计: 123456789101112131415my_flask_project/│├── app/│ ├── __init__.py # 应用工厂函数,初始化所有插...