当前位置:首页>python>使用 Pydantic AI 在 Python 中构建 AI 智能体

使用 Pydantic AI 在 Python 中构建 AI 智能体

  • 2026-07-03 21:18:23
使用 Pydantic AI 在 Python 中构建 AI 智能体

引言

本文将带你学习如何使用 Pydantic AI 在 Python 中构建生产就绪的 AI 智能体,涵盖结构化输出、自定义工具以及依赖注入。

主要内容包括:

  • Pydantic AI 如何通过类型安全的验证输出改进原始 LLM API 调用
  • 如何将 Pydantic 模型定义为结构化输出模式
  • 如何将 Python 函数注册为智能体工具
  • 如何使用依赖注入实现简洁可测试的智能体设计
  • 部署 Pydantic AI 智能体的最佳实践

什么是 Pydantic AI?

Pydantic AI 是由 Pydantic 团队构建的 Python 智能体框架——这个团队正是 FastAPI 及数百个其他项目所使用的 Pydantic 数据验证库的创造者。

其核心理念与 FastAPI 一脉相承:将 FastAPI 为 REST API 开发带来的那种符合人体工程学、类型安全的开发体验移植到 AI 智能体开发中。

主要特性:

  • 结构化、验证后的 LLM 输出
    ——通过 Pydantic 模型实现
  • 函数工具注册
    ——自动生成 JSON Schema
  • 依赖注入
    ——清晰的关注点分离
  • 模型无关
    ——支持 OpenAI、Google Gemini、Anthropic 及本地模型
  • 原生异步
    ——同步封装方便脚本使用

安装

pip install pydantic-ai

# 或按模型提供商安装:
pip install "pydantic-ai-slim[google]"# Google Gemini
pip install "pydantic-ai-slim[openai]"# OpenAI

# 设置 API 密钥
export GOOGLE_API_KEY="your-api-key-here"
# Windows PowerShell:
$ENV:GOOGLE_API_KEY = "your-api-key-here"

1. 创建基础智能体

最简单的 Pydantic AI 智能体只需要一个模型名称和一个指令字符串:

from pydantic_ai import Agent

agent = Agent(
"google-gla:gemini-2.5-flash",
    instructions="你是一位 Python 专家。请用一句话回答。",
)

result = agent.run_sync("什么是 Pydantic AI?")
print(result.output)

输出示例:

Pydantic AI 是一个 Python 智能体框架,用于使用 Pydantic 模型驱动的经过验证的 
LLM 输出构建类型安全的生产级 AI 应用程序。

注意: 在脚本和笔记本中使用 run_sync();在生产异步代码中使用 await agent.run()


2. 使用 Pydantic 模型实现结构化输出

Pydantic AI 最有价值的特性之一是强制 LLM 返回结构化、类型验证的数据:

from pydantic import BaseModel
from pydantic_ai import Agent

classCityInfo(BaseModel):
    name: str
    country: str
    population: int
    fun_fact: str

agent = Agent(
"google-gla:gemini-2.5-flash",
    output_type=CityInfo
)

result = agent.run_sync("告诉我关于东京的信息")
print(result.output)
print(f"{result.output.name}{result.output.country}")
print(f"人口:{result.output.population:,}")
print(f"趣闻:{result.output.fun_fact}")

工作原理:

  1. Pydantic AI 将模型类转换为 JSON Schema
  2. Schema 作为响应格式约束发送给 LLM
  3. LLM 返回符合 Schema 的 JSON
  4. Pydantic 验证并将响应解析为你的模型
  5. 验证失败时自动重试(通过 output_retries 参数配置)

3. 注册自定义工具

工具允许你的智能体调用 Python 函数——从 API 获取数据、查询数据库、执行计算:

使用 @agent.tool_plain 装饰器

对于不需要访问智能体运行上下文的工具使用 tool_plain

import requests
from pydantic_ai import Agent

agent = Agent(
"google-gla:gemini-2.5-flash",
    instructions="帮助用户了解猫的品种信息。请简洁回答。",
)

@agent.tool_plain
deffind_breed_info(breed_name: str) -> dict:
"""查找猫品种的相关信息。"""
    response = requests.get("https://api.thecatapi.com/v1/breeds")
    response.raise_for_status()
for breed in response.json():
if breed["name"] == breed_name:
return breed
return {"error""未找到该品种"}

result = agent.run_sync("告诉我暹罗猫的信息。")
print(result.output)

在初始化时传入工具列表

适合在多个智能体间复用工具:

agent = Agent(
"google-gla:gemini-2.5-flash",
    instructions="帮助用户了解猫的品种信息。请简洁回答。",
    tools=[find_breed_info]  # 直接传入工具函数列表
)

4. 依赖注入

依赖注入是 Pydantic AI 最强大的设计模式之一。它允许你将外部资源(数据库连接、API 客户端、配置参数)传递给智能体工具,而无需硬编码——使你的智能体更整洁、可测试,更适合生产环境。

定义依赖项

import requests
from pydantic import BaseModel
from pydantic_ai import Agent, RunContext

classUserDatabase:
"""模拟使用外部 API 的用户数据库。"""
    _base_url = "https://jsonplaceholder.typicode.com"

defget_user_info(self, user_id: int) -> dict:
        response = requests.get(f"{self._base_url}/users/{user_id}")
        response.raise_for_status()
return response.json()

classUserSummary(BaseModel):
    name: str
    email: str
    company: str

agent = Agent(
"google-gla:gemini-2.5-flash",
    output_type=UserSummary,
    deps_type=UserDatabase,  # 声明依赖类型
    instructions=(
"你从外部数据库获取用户信息。"
"使用可用工具收集用户信息,"
"然后返回结构化摘要。"
    ),
)

@agent.tool  # 需要访问运行上下文时使用 @agent.tool(而非 tool_plain)
deffetch_user(ctx: RunContext[UserDatabase], user_id: int) -> str:
"""从服务中获取用户档案。"""
try:
        user = ctx.deps.get_user_info(user_id)
returnstr(user)
except requests.HTTPError:
returnf"未找到 ID 为 {user_id} 的用户"

# 在运行时注入依赖
db = UserDatabase()
result = agent.run_sync("获取用户 7 的摘要", deps=db)

print(f"姓名:{result.output.name}")
print(f"邮箱:{result.output.email}")
print(f"公司:{result.output.company}")

使用依赖注入进行测试

依赖注入模式使测试变得简单——无需修改智能体定义即可替换依赖:

classMockDatabase:
defget_user_info(self, user_id: int) -> dict:
return {"name""测试用户""email""test@example.com"
"company": {"name""测试公司"}}

with agent.override(deps=MockDatabase()):
    result = agent.run_sync("获取用户 7 的摘要")
# 使用模拟数据——无需真实 API 调用

5. 综合示例

以下是结合结构化输出、工具和依赖注入的完整示例:

from pydantic import BaseModel
from pydantic_ai import Agent, RunContext
import requests

classWeatherDeps:
def__init__(self, api_key: str):
self.api_key = api_key

classWeatherReport(BaseModel):
    city: str
    temperature_celsius: float
    conditions: str
    recommendation: str

agent = Agent(
"google-gla:gemini-2.5-flash",
    output_type=WeatherReport,
    deps_type=WeatherDeps,
    instructions="你是一个天气助手。获取天气数据并提供带建议的报告。",
)

@agent.tool
defget_weather(ctx: RunContext[WeatherDeps], city: str) -> dict:
"""获取某城市的当前天气。"""
    url = "https://api.openweathermap.org/data/2.5/weather"
    params = {"q": city, "appid": ctx.deps.api_key, "units""metric"}
    response = requests.get(url, params=params)
return response.json()

deps = WeatherDeps(api_key="your-openweather-api-key")
result = agent.run_sync("伦敦现在天气怎么样?", deps=deps)
print(result.output)

最佳实践

实践
重要原因
配合 Pydantic 模型使用 output_type
消除 JSON 解析错误,确保类型安全
有状态工具优先使用 @agent.tool 而非 tool_plain
支持访问运行时上下文和依赖项
外部服务使用依赖注入
无需在网络层进行 mock 即可测试智能体
生产环境使用异步 agent.run()
支持并发智能体执行
合理设置 output_retries
优雅处理 LLM 违反 Schema 的情况

总结

Pydantic AI 将 Pydantic 的类型安全、验证数据理念带入了 AI 智能体开发:

  • 结构化输出
    确保智能体返回可在程序中直接使用的数据
  • 自定义工具
    赋予智能体访问真实世界数据和执行操作的能力
  • 依赖注入
    使智能体代码整洁、模块化且易于测试
  • 模型无关设计
    意味着你只需修改极少的代码即可在 OpenAI、Gemini、Anthropic 或本地模型之间切换

对于可靠性和可维护性至关重要的生产 AI 系统,Pydantic AI 是目前最实用的选择之一。

往期推荐

用开源工具和生成式 AI 普及营销组合模型(MMM)

Git UNDO:如何自信地重写 Git 历史

如何从 Python 调用 Rust

AI Agent 记忆详解:从入门到精通(三难度级别)

原文:https://machinelearningmastery.com/building-ai-agents-in-python-with-pydantic-ai/

最新文章

随机文章

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