乐于分享
好东西不私藏

13k星 Personal AI Infrastructure!Daniel Miessler 开源的个人AI助手基础设施

13k星 Personal AI Infrastructure!Daniel Miessler 开源的个人AI助手基础设施

你有没有这种感觉——你用 ChatGPT、用 Claude、用各种 AI 工具,但它们都有一个共同的问题:它们不了解你

每次打开一个新的对话,AI 就像失忆了一样,什么都不知道。它不知道你的工作背景、不知道你的项目进展、不知道你上个月遇到的 Bug 是怎么解决的、不知道你习惯用什么样的代码风格。

这就是为什么 Daniel Miessler 创建了 Personal AI Infrastructure 项目。目前这个项目在 GitHub 上已经收获 13,188 颗星,单日增长 620 星。它的核心理念很简单:让你的 AI 真正认识你,而不是每次都从零开始

今天我们就来深入聊聊这个项目,看看它是怎么工作的,以及你能从中学到什么。

痛点:为什么你的 AI 总是像个陌生人

在说 Personal AI Infrastructure 之前,我想先聊聊一个很多人都在经历的问题。

想象一下这个场景:你是一个软件工程师,你正在做一个复杂的项目。你让 AI 帮你写了一个模块,过了几周,你又需要在这个模块上做修改。你再次打开 AI,对话开始了:

「帮我修改一下上次写的那个模块。」

AI 困惑地看着你:「抱歉,我不明白你在说什么。」

你叹了口气,开始重新描述项目背景、模块功能、技术选型、之前遇到的问题...这个过程重复了一次又一次。

或者另一个场景:你让 AI 帮你处理一封重要的邮件,它写出来的邮件语气总是太正式、太生硬,不像你平时说话的风格。你花了大量时间修改 AI 的输出,让它更「像你」。

这两个场景的共同问题是:AI 没有你的上下文,没有你的记忆,没有对你这个人的理解

大多数 AI 工具都是 stateless 的——每次对话都是独立的,关闭对话,所有的记忆都消失了。就算有些产品加了「记忆」功能,也不过是存几条简单的摘要,像一张随手贴的便签。

Personal AI Infrastructure 试图解决的就是这个问题。它不是简单的「存储用户信息」,而是一套完整的个人 AI 基础设施,让你的 AI 能够真正理解你、记住你、为你服务。

核心理念:Agentic AI Infrastructure

Daniel Miessler 在项目的 README 中提出了一个概念叫 Agentic AI Infrastructure——有代理能力的 AI 基础设施。

这个名字听起来很花哨,但背后的思想很简单:不是让 AI 被动地响应你的请求,而是让 AI 主动地帮助你

传统的方式是:

  1. 你遇到问题
  2. 你问 AI
  3. AI 回答
  4. 你自己执行

Agentic 的方式是:

  1. AI 主动发现你需要什么
  2. AI 自动获取相关上下文
  3. AI 帮你执行任务
  4. AI 把结果记录下来,充实它的知识库

这个区别的关键在于谁在驱动整个流程。传统方式是人在驱动,AI 只是工具。Agentic 方式是 AI 在驱动,人只是做最终决策。

架构概览:四大核心组件

Personal AI Infrastructure 的架构分为四大核心组件,每个组件都有明确的职责。

1. Data Collection(数据收集)

第一个组件是数据收集。AI 要了解你,首先需要获取关于你的数据。

这个项目支持收集多种类型的个人数据:

通讯数据

  • Email(Gmail、Outlook)
  • 即时消息(Slack、Discord)
  • 会议记录(Google Meet、Zoom)

工作数据

  • GitHub 仓库和代码
  • Notion 或其他笔记工具
  • 文档和文件(Google Drive、Dropbox)

日程和任务

  • 日历(Google Calendar)
  • 任务管理(Linear、Jira、Todoist)

网络行为

  • 浏览记录
  • 阅读的文章
  • 搜索历史

收集这些数据的目的是为了让 AI 有一个关于你的「完整画像」。当 AI 知道你上个月写了什么代码、参加了什么会议、处理了什么邮件,它就能给出更有针对性的建议。

2. Memory System(记忆系统)

收集来的原始数据是没有用的,需要处理和存储成 AI 能理解的形式。这就是 Memory System 的职责。

Memory System 会把原始数据转换成结构化的记忆,存储在本地数据库中。这些记忆会按时间、类型、重要性等维度组织起来,方便后续检索。

一个典型的记忆条目可能是这样的:

记忆类型:项目上下文
时间:2024-03-15
内容:用户正在开发一个电商平台,使用技术栈是 Next.js + Supabase。
主要功能包括:商品管理、订单处理、支付集成、用户评论。
目前遇到的挑战是:支付集成遇到了 Stripe Webhook 的调试问题。
相关标签:#电商 #Next.js #Supabase #Stripe
来源:GitHub + Notion + 邮件
置信度:高

这种结构化的记忆比简单的摘要有用得多。AI 可以根据标签快速检索相关记忆,可以根据时间线了解项目发展历程,可以根据置信度判断信息的可靠程度。

3. Context Engine(上下文引擎)

当用户发起请求时,Context Engine 会自动准备相关的上下文

这是整个系统最智能的部分。传统的 AI 交互是这样的:

  1. 用户说:「帮我优化一下这个函数的性能」
  2. AI 问:「能给我看看这个函数的代码吗?」
  3. 用户粘贴代码
  4. AI 给建议

Personal AI Infrastructure 的方式是这样的:

  1. 用户说:「帮我优化一下这个函数的性能」
  2. Context Engine 自动找到:
    • 这个函数所在的文件
    • 相关的测试用例
    • 最近的代码提交记录
    • 之前的性能相关讨论
    • 项目的性能优化规范
  3. AI 直接给出建议(基于完整的上下文)

用户的请求没有变化,但 AI 能够获得的信息量完全不同。这就是 Context Engine 的价值——它把「让人来提供上下文」变成「让系统自动准备上下文」。

4. Action System(执行系统)

最后一个组件是 Action System——让 AI 能够真正执行任务,而不只是给建议。

Action System 让 AI 能够:

  • 读写文件系统
  • 操作浏览器
  • 调用 API
  • 执行命令行工具
  • 管理你的日历和邮件

这意味着 AI 不只是能给你建议,还能帮你执行。你可以让它帮你安排会议、回复邮件、写代码并提交到 GitHub、生成报告并发送到你的邮箱。

与传统个人助手工具的对比

Personal AI Infrastructure 不是唯一在做个人 AI 助手的项目。让我对比一下它和其他工具的区别:

维度 Personal AI Infrastructure Notion AI ChatGPT Memory Superhuman
数据收集 深度集成多个平台 只看 Notion 只看对话历史 只看邮件
记忆结构 层级化、结构化 文档式 简单摘要
上下文准备 自动
执行能力 完整系统级 文档操作 有限 邮件操作
隐私 本地优先 云端 云端 云端
定制化 完全可定制 固定功能 有限 固定功能
学习能力 持续学习 有限

从这个对比可以看出,Personal AI Infrastructure 在大多数维度上都有优势。它的数据收集更全面、记忆结构更智能、上下文准备更自动化、执行能力更系统级。

技术实现:从零构建你的个人 AI 系统

说了这么多理念,你可能想知道这个系统具体是怎么实现的。让我来介绍一下核心的技术组件。

存储层:SQLite + 向量数据库

Personal AI Infrastructure 使用 SQLite 作为主数据库,存储结构化的记忆数据。SQLite 的好处是轻量、无服务器、单文件,方便备份和迁移。

对于语义搜索,项目使用了 向量数据库(如 Qdrant 或 Chroma)来存储记忆的向量表示。这样 AI 可以通过语义相似度来检索记忆,而不只是依赖关键词匹配。

import sqlite3
import numpy as np
from datetime import datetime

class MemoryStore:
    def __init__(self, db_path="memory.db"):
        self.conn = sqlite3.connect(db_path)
        self.create_tables()
    
    def create_tables(self):
        cursor = self.conn.cursor()
        
        # 记忆主表
        cursor.execute("""
            CREATE TABLE IF NOT EXISTS memories (
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                content TEXT NOT NULL,
                memory_type TEXT,
                tags TEXT,
                source TEXT,
                created_at TIMESTAMP,
                importance INTEGER DEFAULT 5,
                last_accessed TIMESTAMP,
                access_count INTEGER DEFAULT 0
            )
        """
)
        
        # 向量存储表
        cursor.execute("""
            CREATE TABLE IF NOT EXISTS memory_vectors (
                memory_id INTEGER PRIMARY KEY,
                vector BLOB,
                FOREIGN KEY (memory_id) REFERENCES memories(id)
            )
        """
)
        
        # 索引
        cursor.execute("""
            CREATE INDEX IF NOT EXISTS idx_tags ON memories(tags)
        """
)
        cursor.execute("""
            CREATE INDEX IF NOT EXISTS idx_type ON memories(memory_type)
        """
)
        
        self.conn.commit()
    
    def add_memory(self, content, memory_type, tags, source, importance=5):
        cursor = self.conn.cursor()
        cursor.execute("""
            INSERT INTO memories 
            (content, memory_type, tags, source, created_at, importance)
            VALUES (?, ?, ?, ?, ?, ?)
        """
, (content, memory_type, ','.join(tags), source, 
              datetime.now().isoformat(), importance))
        self.conn.commit()
        return cursor.lastrowid
    
    def get_relevant_memories(self, query, limit=5):
        """获取与查询相关的记忆"""
        cursor = self.conn.cursor()
        
        # 优先匹配标签和类型
        cursor.execute("""
            SELECT * FROM memories 
            WHERE tags LIKE ? OR content LIKE ?
            ORDER BY importance DESC, access_count DESC
            LIMIT ?
        """
, (f"%{query}%"f"%{query}%", limit))
        
        results = cursor.fetchall()
        return results
    
    def update_access(self, memory_id):
        """更新记忆的访问统计"""
        cursor = self.conn.cursor()
        cursor.execute("""
            UPDATE memories 
            SET last_accessed = ?, access_count = access_count + 1
            WHERE id = ?
        """
, (datetime.now().isoformat(), memory_id))
        self.conn.commit()

这个简化的实现展示了记忆存储的核心逻辑:通过 SQLite 存储结构化的记忆数据,通过标签和内容匹配来检索相关记忆。

上下文准备:根据请求动态组装

当用户发起请求时,Context Engine 需要根据请求的内容,动态组装相关的上下文。

from typing import ListDict

class ContextEngine:
    def __init__(self, memory_store, data_collectors):
        self.memory_store = memory_store
        self.data_collectors = data_collectors
    
    def prepare_context(self, user_request: str) -> Dict:
        """根据用户请求准备上下文"""
        
        # 1. 从记忆系统检索相关记忆
        relevant_memories = self.memory_store.get_relevant_memories(
            user_request, limit=10
        )
        
        # 2. 提取关键实体(项目名、技术栈、人名等)
        entities = self.extract_entities(user_request)
        
        # 3. 获取实体的详细信息
        entity_details = {}
        for entity in entities:
            entity_details[entity] = self.get_entity_details(entity)
        
        # 4. 组装上下文
        context = {
            "user_request": user_request,
            "relevant_memories": relevant_memories,
            "entities": entity_details,
            "current_time": datetime.now().isoformat(),
            "recent_activity"self.get_recent_activity(limit=5)
        }
        
        return context
    
    def extract_entities(self, text: str) -> List[str]:
        """从文本中提取关键实体"""
        # 这里可以用 NER 模型,也可以用简单的关键词匹配
        # 简化版本
        entities = []
        known_entities = [
            "电商平台""支付系统""Next.js""React""Supabase"
        ]
        for entity in known_entities:
            if entity in text:
                entities.append(entity)
        return entities
    
    def get_entity_details(self, entity: str) -> Dict:
        """获取实体的详细信息"""
        # 从各个数据源获取实体相关的信息
        details = {}
        
        for collector in self.data_collectors:
            info = collector.get_info_about(entity)
            if info:
                details[collector.name] = info
        
        return details

Context Engine 的核心是根据请求动态组装上下文。它不只是在对话开始时塞一堆信息,而是根据用户具体问什么,有针对性地准备相关信息。

数据收集器:模块化设计

数据收集采用了模块化设计,每种数据源有一个独立的收集器。这种设计的好处是可以灵活添加新的数据源,不需要修改核心逻辑。

from abc import ABC, abstractmethod

class DataCollector(ABC):
    """数据收集器基类"""
    
    @abstractmethod
    def authenticate(self):
        """认证到数据源"""
        pass
    
    @abstractmethod
    def fetch(self, query: str = None):
        """获取数据"""
        pass
    
    @abstractmethod
    def get_name(self) -> str:
        """返回收集器名称"""
        pass

class GitHubCollector(DataCollector):
    """GitHub 数据收集器"""
    
    def __init__(self, token):
        self.token = token
        self.api_base = "https://api.github.com"
    
    def get_name(self) -> str:
        return "github"
    
    def authenticate(self):
        # GitHub 使用 Personal Access Token
        self.headers = {
            "Authorization"f"token {self.token}",
            "Accept""application/vnd.github.v3+json"
        }
    
    def fetch(self, query=None):
        """获取 GitHub 数据"""
        results = []
        
        # 获取用户的仓库列表
        repos = self.get_repos()
        results.extend(repos)
        
        # 获取最近的提交
        commits = self.get_recent_commits(limit=20)
        results.extend(commits)
        
        # 获取 issue 和 PR
        issues = self.get_recent_issues(limit=10)
        results.extend(issues)
        
        return results
    
    def get_repos(self):
        """获取用户仓库"""
        # 实现省略...
        return []
    
    def get_recent_commits(self, limit=20):
        """获取最近提交"""
        # 实现省略...
        return []

class GmailCollector(DataCollector):
    """Gmail 数据收集器"""
    
    def get_name(self) -> str:
        return "gmail"
    
    def authenticate(self):
        # Gmail 使用 OAuth2
        pass
    
    def fetch(self, query=None):
        """获取邮件数据"""
        # 实现省略...
        return []

这种模块化设计的优势:

  1. 易于扩展:添加新的数据源只需要实现一个新的 Collector 类
  2. 独立测试:每个收集器可以独立测试
  3. 灵活配置:可以只启用需要的收集器
  4. 错误隔离:一个收集器出问题不影响其他收集器

实际应用场景

说了这么多架构和实现,你可能更关心的是:这东西到底能干什么?

让我列举几个实际的应用场景。

场景一:代码项目助手

你的 AI 知道你正在做什么项目,知道项目的技术栈,知道你之前遇到过什么问题。当你问「为什么我的支付流程有问题」,AI 可以立刻检索到:

  • 3 周前你在 GitHub 上开了一个 issue 描述支付问题
  • 2 周前你修改了 Stripe 集成代码
  • 1 周前你在 Slack 上讨论了 Webhook 调试的技巧

这种上下文让 AI 的回答精准得多。

场景二:日程和任务管理

你的 AI 知道你的日程安排、你的任务清单、你的工作习惯。当你说「帮我安排这周的工作」,AI 可以:

  • 查看你的日历,了解你已经安排的会议
  • 查看你的任务列表,了解待办事项的优先级
  • 根据你的工作习惯(上午效率高 vs 下午效率高)来安排任务
  • 自动在日历上创建时间块

场景三:邮件处理

你的 AI 知道你的工作内容、你的联系人、你的沟通风格。当你收到一封邮件,AI 可以:

  • 自动分类(需要回复、仅需阅读、待处理)
  • 帮你起草回复,语气和风格都像你
  • 识别需要跟进的任务并创建提醒
  • 总结长邮件的要点

场景四:知识管理

你的 AI 知道你的学习内容、你读过的文章、你做过的笔记。当你问「我之前看过关于 React Server Components 的文章吗」,AI 可以检索到相关记忆并给你准确的回答。

隐私和安全:本地优先

Personal AI Infrastructure 非常重视隐私和安全。大多数数据处理是在本地完成的,不会上传到云端。

这与很多商业 AI 产品不同。当你使用某个在线 AI 助手时,你的对话数据可能被用来训练模型、可能被存储在服务器上、可能被第三方访问。

Personal AI Infrastructure 的本地优先策略意味着:

  1. 数据不离开你的设备:所有的数据处理都在本地进行
  2. 你拥有数据:不存在云端账号,数据完全属于你
  3. 可离线使用:大部分功能可以在没有网络的情况下使用
  4. 可自托管:可以部署在自己的服务器上,完全控制

如何开始

如果你想搭建自己的 Personal AI Infrastructure,可以按以下步骤开始:

第一步:安装基础组件

# 克隆项目
git clone https://github.com/danielmiessler/Personal-AI-Infrastructure.git
cd Personal-AI-Infrastructure

# 安装 Python 依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env 填入你的 API keys 和认证信息

第二步:配置数据源

根据你需要的数据源,配置相应的收集器:

# config/collectors.yaml
collectors:
  - type: github
    enabled: true
    config:
      token: your_github_token
  
  - type: gmail
    enabled: true
    config:
      credentials_file: ./secrets/gmail_credentials.json
  
  - type: notion
    enabled: true
    config:
      api_key: your_notion_api_key
  
  - type: calendar
    enabled: true
    config:
      provider: google

第三步:运行数据收集

# 运行一次完整的数据收集
python -m collectors.run_all

# 或者只运行特定的数据源
python -m collectors.run --source github

第四步:启动 AI 服务

# 启动 Personal AI 服务
python -m personal_ai.run

# 服务会在 http://localhost:8000 运行

第五步:配置你的 AI 模型

# config/model.yaml
model:
  provider: openai  # 或 anthropic, local 等
  model: gpt-4
  api_key: your_api_key
  
context:
  max_tokens: 8000
  temperature: 0.7
  
memory:
  retrieval_limit: 10
  relevance_threshold: 0.7

局限性和挑战

Personal AI Infrastructure 不是完美的,它有一些局限性和挑战。

数据收集的复杂性

要让 AI 真正了解你,需要收集大量的数据。但获取数据访问权限并不容易——很多服务(如 Gmail、Google Calendar)需要 OAuth 认证,有些服务可能没有开放 API。

记忆的准确性

AI 的记忆来源于数据收集,但数据收集可能不完整或不准确。如果某条记录没有正确分类,或者某个重要事件没有被记录,AI 的回答就会受到影响。

本地运行的限制

本地优先的策略保护了隐私,但也带来了计算能力的限制。如果你想在本地运行大模型,可能需要高性能的 GPU。如果使用云端 API,又需要考虑隐私问题。

维护成本

Personal AI Infrastructure 需要持续的维护:更新数据收集器、处理认证过期、清理无用数据、调整检索算法等。这比使用现成的 AI 产品需要更多的时间和精力。

总结

Personal AI Infrastructure 是一个非常有野心的项目,它的核心理念是让 AI 真正了解你,而不只是响应你的请求

通过四大核心组件——数据收集、记忆系统、上下文引擎、执行系统——它构建了一个完整的个人 AI 基础设施。用户可以拥有真正理解自己的 AI 助手,而不是每次都要重新解释背景。

虽然项目还有一些局限性,但它代表了一个重要的发展方向:从「通用 AI 工具」到「个人化 AI 助手」的转变

如果你对 personal AI 感兴趣,想要拥有一个真正「认识你」的 AI 助手,这个项目值得研究和尝试。


免责声明:本文内容基于 danielmiessler/Personal-AI-Infrastructure GitHub 仓库公开信息,所有技术细节和功能描述均来源于此项目。Daniel Miessler 对本文内容不承担责任。

参考资料

  • GitHub 仓库:https://github.com/danielmiessler/Personal-AI-Infrastructure[1]
  • Daniel Miessler 博客:https://danielmiessler.com/[2]
  • Daniel Miessler 的播客:https://podcast.personal.ai/[3]
  • SQLite 文档:https://www.sqlite.org/docs.html[4]
  • Chroma 向量数据库:https://docs.trychroma.com/[5]

引用链接

[1]https://github.com/danielmiessler/Personal-AI-Infrastructure

[2]https://danielmiessler.com/

[3]https://podcast.personal.ai/

[4]https://www.sqlite.org/docs.html

[5]https://docs.trychroma.com/

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