当前位置:首页>python>别被 RAG 吓到了,它只是几行 Python 代码和高中的数学知识

别被 RAG 吓到了,它只是几行 Python 代码和高中的数学知识

  • 2026-08-18 23:11:31
别被 RAG 吓到了,它只是几行 Python 代码和高中的数学知识

RAG 是 AI 应用技术中的一项关键技术,全称 Retrieval-Augmented Generation(检索增强生成)。它的核心思想很简单:不让大模型“闭门造车”,而是先去资料库里查一查,再把查到的内容连同问题一起交给模型回答。

本质上,RAG 就是在“检索”和“生成”之间搭了一座桥,让 AI 的回答既有大模型的表达能力,又有外部知识库的准确率。

RAG 通俗定义与核心价值

直白解释

RAG = Retrieval-Augmented Generation,检索增强生成。 核心思想一句话: 不让大模型凭空胡编(幻觉),先去私有知识库检索相关片段,再把「检索到的参考内容 + 用户问题」一起交给大模型作答。

解决两大痛点:

  1. 大模型训练数据有截止时间,无法获取最新资料;
  2. 企业私有文档、内部资料无法喂进模型,RAG 实现外挂知识库问答。

标准6步完整流程

RAG里的高中数学知识

向量是什么?

向量就是既有大小,又有方向的量。比如高速路上“120 km/h 向北”的速度、火箭起飞时“20 m/s² 沿飞行方向”的加速度,都是向量。

如果只说“120 km/h”“20 m/s²”,没说方向,那就是标量。在数学里,向量还可以是一组数,用来表示位置、状态甚至语义,不一定非得画成一根箭头。

相似度计算:余弦相似度

判断两个向量是否代表相近语义,依靠余弦夹角公式:

  • 计算结果范围:[-1, 1]
  • 越接近 1:向量夹角越小,文本语义高度相似
  • 越接近 -1:语义完全相反

pgvector 向量数据库本质就是批量快速做海量向量的余弦相似度近似检索,普通关系型数据库无法高效完成高维向量近邻搜索,这也是向量库存在的意义。

一句话大白话:把文字变成空间中的点,离得近 = 意思差不多。

环境准备

学习 rag 之前需要准备好 python 环境,还有向量数据库。这里 python 我使用 python3.11.7, 向量数据库选择 postgresql(装pgvector插件)。

pyenv 安装 Python

pyenv install 3.11.7
pyenv local 3.11.7
python -m venv .venv
source .venv/bin/activate

PostgreSQL + pgvector

直接安装官方维护的 pg 镜像,即pgvector/pgvector:pg16

docker run -d \
  --name pg-vector \
  -p 5432:5432 \
  -e POSTGRES_PASSWORD=password \
  -e POSTGRES_USER=postgres \
  -v pgvector_data:/opt/pg16/data \
  pgvector/pgvector:pg16

创建数据库并启用pgvector。这一步其实可以省略,因为我们使用的是pgvector/pgvector:pg16镜像,它已经装好了pgvector插件。

createdb rag_demo
psql rag_demo -c "CREATE EXTENSION IF NOT EXISTS vector;"

检索的原理

余弦相似度

RAG 的检索环节,本质是向量空间中的距离计算。常见做法是计算两个向量的余弦相似度:

欧式距离

这其实就是高中向量的点积公式。而在 pgvector 中,<-> 使用的是 L2 欧氏距离,同样也是纯数学运算。

实操

项目结构

(.venv) ➜  ragDemo tree
.
├── README.md
├── __pycache__
│   └── main.cpython-311.pyc
├── main.py
└── requirements.txt

依赖安装

pip install -r requirements.txt

psycopg[binary]
pgvector
openai
sentence-transformers
python-dotenv

整体逻辑说明

  1. 内置知识库文本片段
  2. 使用开源 all-MiniLM-L6-v2 做本地 Embedding,无需付费接口
  3. 批量写入向量到 pgvector
  4. 用户提问向量化,相似度召回 Top3 文本
  5. 拼接上下文 Prompt 调用 LLM 回答

.env

DEEPSEEK_API_KEY=sk-your-deepseek-api-key
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-v4-flash

main.py

import os

from dotenv import load_dotenv
from openai import OpenAI
import psycopg
from pgvector.psycopg import register_vector
from sentence_transformers import SentenceTransformer

load_dotenv()

# ====================== 配置区 ======================
DB_CONFIG = {
"dbname": os.getenv("DB_NAME""rag_demo"),
"user": os.getenv("DB_USER""postgres"),
"password": os.getenv("DB_PASSWORD""password"),
"host": os.getenv("DB_HOST""localhost"),
"port": int(os.getenv("DB_PORT""5432")),
}

EMBED_MODEL = SentenceTransformer("all-MiniLM-L6-v2")

LLM_CLIENT = OpenAI(
    base_url=os.getenv("DEEPSEEK_BASE_URL""https://api.deepseek.com"),
    api_key=os.environ["DEEPSEEK_API_KEY"],
)
LLM_MODEL_NAME = os.getenv("DEEPSEEK_MODEL""deepseek-chat")

KNOWLEDGE_LIST = [
"PostgreSQL 是一款功能强大的开源关系型数据库。",
"pgvector 是 PostgreSQL 的向量相似度检索扩展。",
"RAG(检索增强生成)结合检索与生成,让大模型回答更准确、更有依据。",
"Python 在人工智能和数据工程领域被广泛使用。",
"中华人民共和国成立于1949年10月1日,首都为北京。",
"长江是中国第一长河,全长约6397公里,发源于青藏高原。",
"长城是中国古代伟大的防御工程,1987年被列入世界文化遗产。",
"中国有56个民族,汉族人口约占全国总人口的91%以上。",
"北京故宫又称紫禁城,是明清两代的皇家宫殿,位于北京市中心。",
"大熊猫是中国特有的珍稀动物,主要栖息于四川、陕西和甘肃的山区。",
"中国是世界第二大经济体,制造业规模连续多年位居全球第一。",
"春节是中国最重要的传统节日,人们通常会贴春联、吃年夜饭、放鞭炮。",
"上海位于长江入海口,是中国最大的经济中心和重要国际金融城市。",
"汉字是世界上使用人数最多的文字系统,已有数千年的历史。",
]


def get_connection(*, register_vector_adapter=True):
    conn = psycopg.connect(**DB_CONFIG)
if register_vector_adapter:
        register_vector(conn)
return conn


# ====================== 1. 初始化数据库结构 ======================
def init_db():
    conn = get_connection(register_vector_adapter=False)
    cur = conn.cursor()

    cur.execute("CREATE EXTENSION IF NOT EXISTS vector;")
    conn.commit()
    register_vector(conn)

    cur.execute("""
        CREATE TABLE IF NOT EXISTS documents (
            id SERIAL PRIMARY KEY,
            content TEXT UNIQUE,
            embedding VECTOR(384)
        );
    "
"")
    cur.execute("""
        CREATE INDEX IF NOT EXISTS documents_embedding_idx
        ON documents USING hnsw (embedding vector_cosine_ops);
    "
"")

    conn.commit()
    cur.close()
    conn.close()
print("数据库初始化完成")


# ====================== 2. 向量写入数据库 ======================
def embed_and_store(texts=None):
    texts = texts or KNOWLEDGE_LIST
    conn = get_connection()
    cur = conn.cursor()

for text in texts:
        vec = EMBED_MODEL.encode(text)
        cur.execute(
"""
            INSERT INTO documents (content, embedding) VALUES (%s, %s)
            ON CONFLICT (content) DO NOTHING
            "
"",
            (text, vec),
        )

    conn.commit()
    cur.close()
    conn.close()
print(f"知识库向量入库完成(共 {len(texts)} 条,重复内容自动跳过)")


# ====================== 3. 根据问题检索相似文本 ======================
def retrieve_top_k(query: str, top_k=3):
    query_vec = EMBED_MODEL.encode(query)
    conn = get_connection()
    cur = conn.cursor()

    cur.execute(
"""
        SELECT content FROM documents
        ORDER BY embedding <=> %s::vector
        LIMIT %s;
        "
"",
        (query_vec, top_k),
    )

    res = cur.fetchall()
    cur.close()
    conn.close()
return [row[0] for row in res]


# ====================== 4. 组装 Prompt 调用大模型回答 ======================
def ask(question: str):
    context_list = retrieve_top_k(question)
    context_str = "\n".join(context_list)

    prompt = f"""
请严格根据下面参考上下文回答用户问题,上下文没有的内容不要编造:
【参考上下文】
{context_str}

【用户问题】
{question}
"
""
    resp = LLM_CLIENT.chat.completions.create(
        model=LLM_MODEL_NAME,
        messages=[{"role""user""content": prompt}],
    )
return resp.choices[0].message.content


if __name__ == "__main__":
    init_db()
    embed_and_store()

    q = "中国有多少个民族"
    ans = ask(q)
print("回答结果:", ans)

这里特地写了一个错误的答案,验证ragDemo 程序稍后是否能召回.

运行效果

执行 python main.py后,从输出可以看出召回成功——“根据上下文,中国有 108 个民族”

结果分析 & RAG 局限性科普

测试现象

提问:中国有多少个民族 输出大概率:根据上下文,中国有108个民族(错误答案)

原因拆解(新手必懂)

  1. 我们入库的知识库完全没有 “56 个民族” 这条信息;
  2. 向量检索召回不到任何有效参考片段;
  3. Prompt 约束失效,大模型脱离上下文自由发挥,产生模型幻觉。

由此总结 RAG 优缺点

✅ RAG 优势

  1. 依托外部知识库,回答可溯源,降低幻觉概率;
  2. 支持实时更新资料,不受模型训练截止时间限制;
  3. 私有文档不传入大模型云端,数据安全性更高。

❌ RAG 入门版明显短板

  1. 知识库内容质量直接决定答案对错,缺数据就会瞎编;
  2. 文本切块 (Chunk) 大小不合理会导致语义割裂、召回错误;
  3. 仅做字面语义相似度匹配,无法做深层逻辑推理;
  4. 简单余弦检索容易出现噪声召回(语义字面相近但无关)。

总结

最开始我们说 RAG 不用害怕,看完整篇实操也印证了这句话:

它既没有复杂的高深算法,底层只是向量点积的高中数学;也不需要昂贵的重型基础设施,Docker 一键拉起 pgvector、写几十行 Python 代码就能实现完整能力。

这次测试里 “中国 108 个民族” 的错误回答,也给我们提了醒:RAG 只是解决大模型知识滞后、私有资料无法注入的工具,答案靠谱与否,最终决定权永远在我们自己维护的知识库手里。

如果你刚接触 AI 应用开发,完全可以从这个最小 Demo 开始动手,亲手跑一遍向量入库、相似度召回、LLM 回答全流程,就能彻底搞懂 RAG 的来龙去脉。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 22:50:14 HTTP/2.0 GET : https://f.mffb.com.cn/a/507828.html
  2. 运行时间 : 0.467791s [ 吞吐率:2.14req/s ] 内存消耗:4,781.56kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=f7795858c2775b059e242a6111b708de
  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.000713s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001180s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000578s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.033052s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001421s ]
  6. SELECT * FROM `set` [ RunTime:0.003793s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001534s ]
  8. SELECT * FROM `article` WHERE `id` = 507828 LIMIT 1 [ RunTime:0.020536s ]
  9. UPDATE `article` SET `lasttime` = 1787323814 WHERE `id` = 507828 [ RunTime:0.025275s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.004715s ]
  11. SELECT * FROM `article` WHERE `id` < 507828 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.011606s ]
  12. SELECT * FROM `article` WHERE `id` > 507828 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001144s ]
  13. SELECT * FROM `article` WHERE `id` < 507828 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001789s ]
  14. SELECT * FROM `article` WHERE `id` < 507828 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.095415s ]
  15. SELECT * FROM `article` WHERE `id` < 507828 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.107531s ]
0.470915s