当前位置:首页>学习笔记>LangChain学习笔记第一讲-从安装到Agent实战

LangChain学习笔记第一讲-从安装到Agent实战

  • 2026-04-19 10:24:38
LangChain学习笔记第一讲-从安装到Agent实战
从环境安装,到快速入门,再到 Agent 进阶。不是“看懂文档”,而是“真的能跑起来、真的知道为什么这样设计”。
如果你最近也在学 LangChain,大概率经历过这几个阶段:
  • 看官方文档时感觉“好像也不难”
  • 一到本地环境就开始报错
  • 勉强跑通一个 demo,又不明白 Agent 到底比普通调用强在哪
  • 听过工具调用、结构化输出、记忆、中间件、动态模型,但脑子里一直像一锅粥
我最近正好用 3 个 Notebook,把这条链路完整走了一遍:【具体代码后续推送公网】
1.0.install.ipynb:先把环境装明白
2.1.入门.ipynb:先跑通一个最小 LangChain 应用
3.2.agent.ipynb:再去理解 Agent、工具、记忆、中间件、动态模型
走完之后我最大的感受是:

LangChain 真正难的不是 API,而是你是否建立了“从模型调用到 Agent 工作流”的整体认知。

这篇文章,我就按这个顺序,把这 3 份 Notebook 串起来讲清楚。

一、别急着写 Agent,先把环境这件事搞对

很多人一上来就复制官方代码:

fromlangchain.agentsimportcreate_agent

然后开始遇到一连串问题:
  • 安装失败
  • 版本冲突
  • Notebook kernel 不对
  • 明明装了包,Jupyter 还是 import 不到
  • 代理环境变量导致网络异常
所以 0.install.ipynb 做的第一件事很对:
1. 先清理代理环境变量

```python

import os

for key in ['http_proxy''https_proxy''HTTP_PROXY''HTTPS_PROXY']:

    os.environ.pop(key, None)

```

这一步看起来不起眼,但很实用。

因为很多机器上默认挂了代理,结果 pip、API 请求、Jupyter 内核通信都可能被影响。你以为是 LangChain 有问题,实际上是网络链路在给你使绊子。

2. 安装 LangChain 和 OpenAI 集成
Notebook 里用了两种方式:
·pip install
·uv add
例如:

!pip install -U langchain -i https://pypi.tuna.tsinghua.edu.cn/simple

!pip install -U langchain-openai

!uv add langchain

!uv add langchain-openai

这里的思路非常适合初学者:
·pip 适合先快速装起来
·uv 适合把依赖真正纳入项目管理
如果你只是临时试验,pip 很快; 如果你希望这个项目能长期维护,uv 会更舒服。
3. 一定要给虚拟环境单独注册 Jupyter Kernel
这是整套流程里最容易被忽略、但最关键的一步。

Notebook 中的做法是:

```python

!python -m venv learn-python

!./learn-python/bin/python -m pip install ipykernel

!./learn-python/bin/python -m ipykernel install --user --name learn-python --display-name "Python (learn-python)"

```

然后在 Jupyter 里切换到这个内核。

为什么这一步重要?

因为很多人嘴上说“我已经在 venv 里安装过了”,但 Notebook 实际运行的还是系统 Python。

结果就是:

·终端里 pip list 有这个包
·Notebook 里 import 却报错
这时候不是包没装好,而是内核没切对。
这一部分可以总结成一句话
学 LangChain 的第一步,不是写代码,而是把 Python 环境、依赖管理、Notebook 内核统一起来。

不然你后面遇到的很多“LangChain 问题”,本质上都不是 LangChain 的问题。

二、快速入门:先跑一个最小可用的 Agent

到了 1.入门.ipynb,重点就从“装环境”切到了“让 LangChain 真正跑起来”。

这部分最先做的事,是初始化模型。

1. 用 init_chat_model() 初始化模型
Notebook 里用了这样的写法:

```python

from langchain.chat_models import init_chat_model

model = init_chat_model(

model="gpt-4o-mini",

base_url="http://",

api_key="sk-",

temperature=0.5,

max_tokens=1000,

timeout=30,

)

```

这里有一个很实用的点:它不是死绑 OpenAI 官方接口,而是保留了:
·base_url
·api_key
·路由模型名
这意味着你可以接:
·One API
·OpenAI 兼容网关
·自己的中转层
·其他兼容 OpenAI 风格的服务
这对于国内开发环境尤其友好。
2. 定义一个最简单的工具
比如天气工具:

```python

defget_weather(citystr) -> str:

returnf"{city}阳光明媚,晴,东风1级!"

```

然后直接创建 Agent:

```python

from langchain.agents import create_agent

agent = create_agent(

    model,

tools=[get_weather],

system_prompt="你是一个查询天气的助手",

)

```

调用:

```python

agent.invoke(

    {"messages": [{"role""user""content""北京的天气怎么样"}]}

)

```

这一步很关键,因为它让你第一次真正看到:

LangChain 不是只包了一层模型调用,而是在“模型 + 工具 + 提示词”之上,给你一个可扩展的交互框架。

3. 这里最值得建立的认知
很多人第一次写 LangChain,会觉得它和直接调 OpenAI SDK 差别不大。

其实差别在于:

·直接调用模型:你是在“问模型”
·用 LangChain:你是在“搭一个可扩展的 AI 应用骨架”
这个骨架一开始可能只是天气查询,后面却可以慢慢长成:
·带上下文的助手
·带结构化输出的业务流程
·带记忆的多轮对话
·带工具调用的 Agent
所以“快速入门”的价值,不是做一个天气 demo,而是先把骨架搭起来。

三、LangChain 不只是“能问问题”,还可以接上下文

在 1.入门.ipynb 里,后面开始往上叠能力了。

这里最重要的一步是:引入运行时上下文。

1. 用 context_schema 传用户上下文
Notebook 里定义了:

```python

from dataclasses import dataclass

from langchain.tools import ToolRuntime

@dataclass

classUserInfo:

    local_code: str

```

然后做了一个工具:

```python

@tool

defget_user_location(runtimeToolRuntime[UserInfo]) -> str:

    local_code = runtime.context.local_code

if local_code == "bj":

return"北京"

elif local_code == "sh":

return"上海"

return"北京"

```

创建 Agent 时加上:

```python

agent = create_agent(

model=model,

system_prompt="你是查询天气的助手,客户可以指定你的名字",

tools=[get_user_location, get_weather],

context_schema=UserInfo,

)

```

调用时再传:

```python

response = agent.invoke(

    {"messages": [{"role""user""content""今天的天气怎么样?"}]},

config={"configurable": {"thread_id""1"}},

context=UserInfo(local_code="sh")

)

```

2. 这一步意味着什么?
它意味着 Agent 的能力不再只是“看用户当前说了什么”,而是还能利用:
·用户身份
·用户地区
·用户偏好
·业务上下文
·会话配置
这就让 AI 不再是一个“公共大喇叭”,而更像一个“带上下文意识的应用”。
大白话理解
如果说前面的模型调用像是在跟一个陌生客服聊天, 那加了 context_schema 之后,就像客服系统里已经弹出了你的资料卡:
·你在哪个城市
·你是什么类型用户
·你当前在哪个会话线程里
所以回答会更贴近你的实际情况。

四、结构化输出:别让模型只会“说人话”,要让它会“交数据”

很多人刚开始用大模型时,最常见的麻烦是:

模型回答了一大段,内容看起来很像你要的,但程序不好接。

比如你真正想要的是:

·城市
·天气
·建议
结果模型给你写了一段小作文。

这时就需要结构化输出。

1. Notebook 里的写法

```python

@dataclass

classResponseFormat:

    punny_response: str

    weather_conditions: str | None = None

```

然后调用时加:

```python

response = agent.invoke(

    {"messages": [{"role""user""content""今天的天气怎么样?"}]},

config=config,

context=UserInfo(local_code="sh"),

response_format=ResponseFormat

)

2. 结构化输出的价值
它最大的价值不是“让输出更好看”,而是:

让模型返回的结果更像后端接口,而不是一段散文。

这对于真实业务特别重要,因为你的程序后面可能要继续做:

·存数据库
·调下游接口
·生成报表
·渲染前端页面
·做审批流判断
如果输出不稳定,你后面的整个链路都容易崩。
3. 一个非常实用的判断标准
·给人看:自然语言就够了
·给程序接:尽量结构化输出
这是我学 LangChain 之后一个很深的体会。

五、记忆:Agent 到底怎样“记住你说过的话”?

到了 1.入门.ipynb 的后半段,开始进入很多人最感兴趣的一部分:记忆。
1. 先准备 checkpointer
Notebook 里用了:

```python

from langgraph.checkpoint.memory import InMemorySaver

memory = InMemorySaver()

```

创建 Agent 时带上:

```python

agent = create_agent(

model=model,

system_prompt="你是查询天气的助手,客户可以指定你的名字",

tools=[get_user_location, get_weather],

context_schema=UserInfo,

checkpointer=memory,

)

```

然后在调用时传入同一个 `thread_id`

```python

config = {"configurable": {"thread_id""two"}}

```

2. 为什么 thread_id 这么重要?
因为它决定了“你是不是还在同一段对话里”。

如果没有一致的 thread_id,Agent 根本不知道两次调用是不是同一个会话。

所以很多人说“为什么我加了 memory,模型还是记不住?”

答案往往是:

·你没有加 checkpointer
·或者你每次请求用的 thread_id 不一样
3. 大白话理解
checkpointer 像聊天记录数据库, thread_id 像这个聊天窗口的会话编号。

缺一个都不行。

4. 这也是 LangChain 和“裸模型调用”的一个关键区别
普通模型调用,通常是“来一问答一问”; Agent + Memory,才开始有点像真正的助手:
·记住你刚才说过什么
·记住你之前定过的规则
·记住你们当前处于哪一段对话上下文
这才是“应用”而不是“单轮问答”。

六、真正难的部分:Agent 到底是什么?

到了 2.agent.ipynb,整件事才真正进入“从会用,到理解”的阶段。

这部分我最喜欢的一句话总结是:

Agent = 模型(Model) + 工具(Tools) + 循环(Loop)

很多人第一次接触 Agent,会把它想得特别神秘。

其实官方文档的核心意思非常朴素:

1.用户提问
2.模型判断要不要调用工具
3.如果要,就调用工具
4.读取工具结果
5.再决定下一步
6.一直循环到能给出最终答案
这就是 Agent。
1. Agent 和普通调用的本质区别
普通调用像这样:
·你问一句
·模型答一句
Agent 像这样:
·你问一句
·模型先想“我该不该查工具?”
·调工具
·看结果
·再决定要不要继续调
·最后再给你答案
所以它不是更“玄学”,而是更“流程化”。
2. 用一个比喻来理解 Agent
可以把 Agent 想成一个项目经理:
·模型:项目经理的大脑
·工具:项目经理手下的不同部门
·中间件:公司的制度、审批、风控、日志系统
·状态/记忆:项目管理系统中的任务记录
·流式传输:项目进度实时播报
这个比喻特别适合初学者,因为它一下子把抽象概念落到了真实场景里。

七、工具调用:为什么 Agent 比普通模型更像“能干活的人”

Agent 最大的意义,不是让模型更会聊天,而是让模型具备“行动能力”。

在文档里,这种模式通常会被归纳为 ReAct:

·Reason(推理)
·Act(行动)
·Observation(观察)
用大白话说就是:
·先想一下
·再干一下
·再看一下结果
·再继续想
为什么这件事重要?
因为很多问题,模型只靠脑内知识是不够的。

比如:

·当前天气
·某个库存状态
·某条数据库记录
·某个接口返回值
如果不能调用工具,它就只能“猜”; 如果能调用工具,它才开始真正“查”。

这也是为什么 Agent 更适合真实业务。

八、动态模型:这才是很多人真正想学的 Agent 进阶能力

2.agent.ipynb 里最进阶、也最值得反复体会的一部分,是动态模型。
1. 动态模型不是 prompt 花活
这是一个特别容易误解的点。

很多人以为动态模型是:

·在提示词里写“如果任务复杂就用更强模型”
其实不是。

LangChain 官方的意思非常明确:

动态模型是在运行时,通过中间件改 request.model。

也就是说,它是代码层面的路由逻辑,不是提示词暗示。

2. 一个更真实的动态模型例子应该长什么样?
更好的示例应该考虑:
·问题是否复杂
·是否已经进入多步工具调用
·是否需要更强推理
·是否想控制成本
比如:
·简单问题:用 gpt-4o-mini
·复杂任务:用 gpt-4o
·如果已经多轮工具调用:升级到更强模型做综合判断
这才像真实项目,而不是课堂上那种“消息数大于 10 就切换”。
3. 为什么动态模型值得学?
因为它能同时解决两个现实问题:
成本问题
不是每个请求都值得上最贵模型。
性能问题
简单问题没必要让强模型慢慢想。

所以动态模型本质上是:

在质量、速度、成本之间做运行时权衡。

一句话记忆
动态模型不是模型自己变聪明了,而是你在运行时决定该派谁上场。

九、中间件:为什么 LangChain 的 Agent 不只是“能调工具”

在 Agent 这部分,另一个非常重要的概念是:中间件(Middleware)。

中间件的作用,可以理解成“在流程节点之间插手”。

它能做的事包括:

·动态切换模型
·修改提示词
·限制工具调用次数
·给工具调用加重试
·做日志与监控
·做风控与人工审批
所以如果说:
·模型是大脑
·工具是手脚
那中间件就是整个系统的:

调度器 + 审计员 + 安全员 + 交通警察

这也是 LangChain Agent 真正强大的地方:

它不是只让模型“更会回答”,而是让你可以把 AI 放进一个可控的工作流里。

十、把这 3 个 Notebook 串起来,你会发现真正的学习路径是这样的

回头看这 3 份 Notebook,它们其实对应了一条非常合理的学习路线。
第一阶段:先装起来
对应 0.install.ipynb

你要解决的是:

·环境管理
·包安装
·内核切换
·网络与代理
这个阶段别追求“酷”,追求的是“稳定”。
第二阶段:先跑起来
对应 1.入门.ipynb

你要掌握的是:

·初始化模型
·创建最小 Agent
·调用工具
·传上下文
·做结构化输出
·用 thread_id + checkpointer 做记忆
这个阶段的目标是:

把 LangChain 从“听说过”变成“本地能跑”。

第三阶段:再理解为什么这样设计
对应 2.agent.ipynb

你要建立的是:

·Agent loop 的概念
·ReAct 的思维方式
·工具调用的本质
·中间件的作用
·动态模型的路由思路
·为什么 LangChain v1 本质是基于 LangGraph 的工作流系统
这个阶段的目标是:

把 demo 思维升级成系统思维。

十一、我学完之后,最大的三个收获

1. 别把 LangChain 学成“API 背诵”
真正重要的不是记住几个函数名, 而是知道:
·什么时候该直接调模型
·什么时候该加工具
·什么时候该加记忆
·什么时候该做结构化输出
·什么时候该引入动态模型和中间件
2. LangChain 的价值不是“替你调一次模型”
而是帮你搭建一个:
·可扩展
·可维护
·可观测
·可插拔
·可流程化
的 AI 应用框架。
3. Agent 不神秘,真正重要的是 Loop
如果你最后只记住一个词,我建议就是:

Loop(循环)

因为 Agent 真正比普通模型调用多出来的,就是:

·会判断
·会调用工具
·会读取结果
·会继续执行
·会在合适的时候停下并给出答案
这层循环能力,才是它和普通问答最大的差异。

十二、如果你也想学 LangChain,我建议这样开始

如果你刚开始,不要一上来就冲复杂 Agent。

更推荐下面这个顺序:

第一步:把环境跑顺
·能安装
·能切对 kernel
·能正常 import
第二步:跑一个最小 Agent
·一个模型
·一个工具
·一次 invoke()
第三步:加上下文和结构化输出
·context_schema
·response_format
第四步:加记忆
·checkpointer
·thread_id
第五步:再去学 Agent 进阶
·中间件
·动态模型
·多工具协作
·流式传输
这样走下来,你会稳很多。
结尾
学 LangChain 最容易掉进的坑,不是“不会写代码”,而是“太早追求复杂”。

先把安装跑顺, 再把最小 demo 跑通, 再把上下文、结构化输出、记忆这些基础能力叠上去, 最后再去理解 Agent、中间件和动态模型。

这样你学到的,不只是一个个零散功能点,而是一条真正能落到项目里的 AI 应用路线。

如果让我用一句话总结这 3 个 Notebook 的价值,那就是:

它们把 LangChain 从“文档上的概念”,变成了“可以一步步搭起来的 AI 应用实践”。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-19 10:55:42 HTTP/2.0 GET : https://67808.cn/a/482048.html
  2. 运行时间 : 0.079234s [ 吞吐率:12.62req/s ] 内存消耗:4,473.69kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=befd85fe76cecb825970a04541f0a407
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000527s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000802s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000316s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000302s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000509s ]
  6. SELECT * FROM `set` [ RunTime:0.000208s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000564s ]
  8. SELECT * FROM `article` WHERE `id` = 482048 LIMIT 1 [ RunTime:0.000685s ]
  9. UPDATE `article` SET `lasttime` = 1776567342 WHERE `id` = 482048 [ RunTime:0.004061s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000424s ]
  11. SELECT * FROM `article` WHERE `id` < 482048 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000398s ]
  12. SELECT * FROM `article` WHERE `id` > 482048 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000379s ]
  13. SELECT * FROM `article` WHERE `id` < 482048 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000679s ]
  14. SELECT * FROM `article` WHERE `id` < 482048 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001825s ]
  15. SELECT * FROM `article` WHERE `id` < 482048 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000749s ]
0.080974s