乐于分享
好东西不私藏

AI大模型开发 从 0 到企业级:RAG检索增强全流程实现 + 本地私有知识库搭建实战

AI大模型开发 从 0 到企业级:RAG检索增强全流程实现 + 本地私有知识库搭建实战

文章目录

    • 引言
    • 1 核心架构与流程对比
      • 1.1 原生RAG vs 企业级RAG横向对比
    • 2 环境准备与依赖安装
      • 2.1 软硬件要求
      • 2.2 依赖安装
    • 3 全流程核心代码实现
      • 3.1 多源数据接入与预处理
      • 3.2 嵌入模型选型与量化性能对比
      • 3.3 向量库搭建(入门+企业级双版本)
        • 入门版:Chroma本地向量库,适合快速测试
        • 企业级版:PGVector基于PostgreSQL,支持事务和权限过滤
      • 3.4 多路召回+重排序实现
      • 3.5 大模型生成问答结果
    • 4 企业级生产部署方案(含安全审计)
      • 4.1 核心安全设计
      • 4.2 FastAPI接口核心代码
    • 5 技术前瞻性分析
    • 6 附录:完整技术图谱
    • 总结

引言

大模型落地企业私有业务场景时,始终绕不开两大核心痛点:一是大模型训练数据截止日期固定,无法获取企业内部最新的私有数据;二是大模型天生存在幻觉问题,回答私有领域问题容易编造内容,无法直接落地使用。RAG(检索增强生成)因为其改造成本低、效果稳定、可解释性强、数据更新方便,已经成为当前企业私有大模型落地最成熟主流的方案。

网上大部分教程仅能跑通玩具级Demo,并没有覆盖生产环境需要的权限控制、安全审计、性能优化等核心需求,本文从零开始,一步步带你搭建一个可以直接在生产环境运行的本地私有知识库RAG系统,新手小白也可以跟着步骤直接落地。

1 核心架构与流程对比

本文设计的企业级RAG架构和原生Demo级RAG有本质区别,我们先通过两个流程图看整体差异。

1.1 原生RAG vs 企业级RAG横向对比

2 环境准备与依赖安装

2.1 软硬件要求

  • 本地开发测试:CPU 4核以上,内存16G以上,GPU显存8G以上即可流畅运行,CPU也可运行仅速度较慢
  • 企业生产部署:服务器CPU 8核以上,内存32G以上,GPU 16G显存以上,支持百级并发请求

2.2 依赖安装

创建requirements.txt文件,内容如下:

langchain==0.1.20langchain-community==0.0.38langchain-chroma==0.1.2sentence-transformers==2.7.0pypdf==4.2.0python-docx==1.1.2bitsandbytes==0.43.1transformers==4.41.2torch==2.3.0psycopg2-binary==2.9.9pgvector==0.2.5fastapi==0.110.2uvicorn==0.29.0python-jose[cryptography]==3.3.0passlib[bcrypt]==1.7.4

执行安装命令:

pip install -r requirements.txt

3 全流程核心代码实现

3.1 多源数据接入与预处理

支持PDF、Word、TXT、MD四种常见格式,自带去重清洗逻辑:

import osimport refrom typing import Listfrom langchain.schema import Documentfrom pypdf import PdfReaderfrom docx import Document as DocxDocumentdef load_single_pdf(file_path: str) -> List[Document]:    pdf_reader = PdfReader(file_path)    text = ""    for page in pdf_reader.pages:        text += page.extract_text() + "\n"    return [Document(page_content=text, metadata={"source": file_path, "file_type""pdf"})]def load_single_docx(file_path: str) -> List[Document]:    doc = DocxDocument(file_path)    text = "\n".join([para.text for para in doc.paragraphs])    return [Document(page_content=text, metadata={"source": file_path, "file_type""docx"})]def load_text_file(file_path: str) -> List[Document]:    with open(file_path, "r", encoding="utf-8"as f:        text = f.read()    ext = os.path.splitext(file_path)[1]    return [Document(page_content=text, metadata={"source": file_path, "file_type": ext})]def load_dir_documents(dir_path: str) -> List[Document]:    documents = []    for root, _, files in os.walk(dir_path):        for file in files:            file_path = os.path.join(root, file)            ext = file.lower().split(".")[-1]            if ext == "pdf":                documents.extend(load_single_pdf(file_path))            elif ext in ["docx""doc"]:                documents.extend(load_single_docx(file_path))            elif ext in ["txt""md"]:                documents.extend(load_text_file(file_path))    return documentsdef preprocess_documents(documents: List[Document]) -> List[Document]:    processed = []    seen_content = set()    for doc in documents:        content = doc.page_content.strip()        content = "\n".join([line.strip() for line in content.splitlines() if line.strip()])        content = re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]''', content)        if content and content not in seen_content:            seen_content.add(content)            doc.page_content = content            processed.append(doc)    return processed

文档分块采用企业级常用的递归分块,兼顾语义完整性:

from langchain.text_splitter import RecursiveCharacterTextSplitterdef split_documents(documents: List[Document], chunk_size: int = 512, chunk_overlap: int = 50) -> List[Document]:    text_splitter = RecursiveCharacterTextSplitter(        chunk_size=chunk_size,        chunk_overlap=chunk_overlap,        add_start_index=True,        separators=["\n\n""\n""。"","" """]    )    return text_splitter.split_documents(documents)

3.2 嵌入模型选型与量化性能对比

中文领域当前效果最好的开源嵌入模型是BAAI的BGE系列,下表是不同量化版本的性能对比,可根据自身需求选择:

模型名称
量化方式
参数量
显存占用
中文MRR@10
单条文本嵌入速度(CPU)
适合场景
bge-small-zh-v1.5
FP32
33M
130MB
59.3
12ms
测试/低并发场景
bge-small-zh-v1.5
INT4
33M
40MB
58.1
8ms
边缘/端侧部署
bge-base-zh-v1.5
FP32
109M
418MB
64.7
21ms
企业生产一般场景
bge-base-zh-v1.5
INT4
109M
130MB
63.2
13ms
生产高并发场景
bge-large-zh-v1.5
FP32
335M
1.3GB
67.8
45ms
对精度要求高的场景
bge-large-zh-v1.5
INT4
335M
420MB
66.1
22ms
生产高精度场景

本文选择兼顾速度和精度的bge-base-zh-v1.5 INT4版本,加载代码如下:

import torchfrom langchain_community.embeddings import HuggingFaceBgeEmbeddingsmodel_name = "BAAI/bge-base-zh-v1.5"model_kwargs = {"device""cuda" if torch.cuda.is_available() else "cpu""load_in_4bit"True}encode_kwargs = {"normalize_embeddings"True}embeddings = HuggingFaceBgeEmbeddings(    model_name=model_name,    model_kwargs=model_kwargs,    encode_kwargs=encode_kwargs)

3.3 向量库搭建(入门+企业级双版本)

入门版:Chroma本地向量库,适合快速测试

from langchain_chroma import Chroma# 初始化向量库persist_directory = "./chroma_db"vector_db = Chroma(    persist_directory=persist_directory,    embedding_function=embeddings,    collection_name="private_knowledge")# 插入分块后的文档split_docs = split_documents(preprocess_documents(load_dir_documents("./my_docs")))vector_db.add_documents(split_docs)# 持久化存储vector_db.persist()

企业级版:PGVector基于PostgreSQL,支持事务和权限过滤

首先用Docker启动PGVector服务,docker-compose.yml配置如下:

version: '3.8'services:  postgres:    image: pgvector/pgvector:pg16    container_name: pgvector-rag    environment:      POSTGRES_USER: rag_user      POSTGRES_PASSWORD: rag_2024_secure_private      POSTGRES_DB: rag_db    ports:      - "5432:5432"    volumes:      - ./pg_data:/var/lib/postgresql/data    restart: unless-stopped

启动命令:

docker-compose up -d

代码连接:

from langchain_community.vectorstores import PGVectorconnection_string = "postgresql+psycopg2://rag_user:rag_2024_secure_private@localhost:5432/rag_db"collection_name = "private_knowledge"vector_db = PGVector(    embedding=embeddings,    collection_name=collection_name,    connection_string=connection_string,    use_jsonb=True,)split_docs = split_documents(preprocess_documents(load_dir_documents("./my_docs")))vector_db.add_documents(split_docs)

3.4 多路召回+重排序实现

企业级RAG通过融合稀疏和稠密召回,再用重排序提升精度,代码如下:

from langchain.retrievers import BM25Retriever, EnsembleRetrieverfrom langchain_community.cross_encoders import HuggingFaceCrossEncoderfrom langchain.retrievers import ContextualCompressionRetrieverfrom langchain.retrievers.document_compressors import CrossEncoderRerank# 初始化BM25稀疏召回bm25_retriever = BM25Retriever.from_documents(split_docs)bm25_retriever.k = 10# 初始化稠密向量召回vector_retriever = vector_db.as_retriever(search_kwargs={"k"10})# 融合两路召回结果ensemble_retriever = EnsembleRetriever(    retrievers=[bm25_retriever, vector_retriever],    weights=[0.40.6])# BGE重排序模型,筛选最相关的Top5rerank_model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-base")compressor = CrossEncoderRerank(model=rerank_model, top_n=5)compression_retriever = ContextualCompressionRetriever(    base_retriever=ensemble_retriever,    base_compressor=compressor)

3.5 大模型生成问答结果

本文采用本地量化Llama3-8B,8G显存即可运行,代码如下:

from langchain_community.llms import HuggingFacePipelinefrom langchain.chains import RetrievalQAfrom transformers import AutoTokenizer, AutoModelForCausalLM, pipelinefrom langchain.prompts import PromptTemplate# 私有知识库专属Prompt模板template = """你是一个专业的企业内部助手,你需要根据提供的上下文信息回答用户的问题,如果你不知道答案,就直接说你不知道,不要编造答案。上下文信息如下:{context}用户问题: {question}回答:"""prompt = PromptTemplate.from_template(template)# 加载4bit量化Llama3-8B-Instructmodel_name = "NousResearch/Meta-Llama-3-8B-Instruct"tokenizer = AutoTokenizer.from_pretrained(model_name)model = AutoModelForCausalLM.from_pretrained(    model_name,    load_in_4bit=True,    device_map="auto")pipe = pipeline(    "text-generation",    model=model,    tokenizer=tokenizer,    max_new_tokens=512,    temperature=0.1,    top_p=0.9,    repetition_penalty=1.1)llm = HuggingFacePipeline(pipeline=pipe)# 构建RAG问答链qa_chain = RetrievalQA.from_chain_type(    llm=llm,    retriever=compression_retriever,    chain_type_kwargs={"prompt": prompt},    return_source_documents=True)# 测试问答question = "请问公司的年假申请规则是什么?"result = qa_chain.invoke({"query": question})print("回答:", result["result"])print("参考文档:", [doc.metadata["source"for doc in result["source_documents"]])

到这里,你已经跑通了完整的RAG流程,可以正常问答了。

4 企业级生产部署方案(含安全审计)

4.1 核心安全设计

企业生产部署必须满足合规要求,我们实现了五大安全能力:

  1. JWT身份认证:仅授权用户可访问接口
  2. 行级权限控制:用户只能查看自己有权限的文档
  3. 输入输出双重敏感内容检查:防止违规内容生成
  4. PII信息自动脱敏:对手机号、身份证等敏感信息自动打码
  5. 全链路日志审计:所有请求都记录留存,满足等保要求

4.2 FastAPI接口核心代码

import loggingimport refrom fastapi import FastAPI, Depends, HTTPException, statusfrom jose import JWTError, jwtfrom pydantic import BaseModelfrom typing import Optional# 初始化日志审计logging.basicConfig(filename='./rag_audit.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')app = FastAPI(title="企业私有知识库RAG API", version="1.0")SECRET_KEY = "替换为你自己的生产级密钥"ALGORITHM = "HS256"class QueryRequest(BaseModel):    question: str    token: str# JWT认证依赖async def get_current_user(token: str) -> Optional[int]:    credentials_exception = HTTPException(        status_code=status.HTTP_401_UNAUTHORIZED,        detail="无效的访问凭证",    )    try:        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])        user_id: int = payload.get("user_id")        if user_id is None:            raise credentials_exception    except JWTError:        raise credentials_exception    return user_id# 敏感内容检查SENSITIVE_WORDS = ["替换为你的敏感词列表"]def sensitive_check(text: str) -> bool:    for word in SENSITIVE_WORDS:        if word in text:            return False    return True# PII脱敏def pii_mask(text: str) -> str:    text = re.sub(r'(1[3-9]\d)\d{4}(\d{4})'r'\1****\2', text)    text = re.sub(r'(\d{6})\d{8}(\d{4})'r'\1********\2', text)    return text# 问答接口@app.post("/api/rag/query")async def query_rag(request: QueryRequest, user_id: int = Depends(get_current_user)):    logging.info(f"用户ID: {user_id}, 请求问题: {request.question}")    # 输入敏感检查    if not sensitive_check(request.question):        logging.warning(f"用户ID: {user_id}, 请求包含敏感内容: {request.question}")        raise HTTPException(status_code=400, detail="请求包含违规内容")    # 权限过滤:只返回当前用户有权限的文档    result = qa_chain.invoke({"query": request.question, "filter": {"accessible_user": [user_id, -1]}})    # 输出脱敏    answer = pii_mask(result["result"])    # 输出敏感检查    if not sensitive_check(answer):        logging.warning(f"用户ID: {user_id}, 生成回答包含敏感内容, 问题: {request.question}")        return {"answer""回答包含敏感内容,无法展示""sources": []}    sources = [doc.metadata["source"for doc in result["source_documents"]]    return {"answer": answer, "sources": sources}

生产环境可以用Nginx反向代理,容器化整体部署,支持水平扩展,这里不展开赘述。

5 技术前瞻性分析

RAG技术当前还在快速迭代,未来企业级落地的趋势主要有三个方向:

  1. 架构升级
    :从普通RAG走向Graph RAG和多模态RAG,Graph RAG解决了长文档全局信息丢失的问题,适合大型知识库梳理场景;多模态RAG支持图片、表格、视频等非文本数据,拓展了RAG的应用边界。
  2. 自动化优化
    :自适应RAG会成为主流,系统会自动根据问题类型选择分块大小、召回策略、模型大小,无需人工调参,进一步降低落地成本。
  3. 技术融合
    :RAG不会替代微调,未来企业级落地会是RAG+参数高效微调的结合,RAG解决知识更新和可解释性问题,微调解决大模型对齐和风格统一问题,两者结合效果最优。

6 附录:完整技术图谱

总结

本文从零开始完整实现了企业级RAG全流程,新手按照步骤即可搭建自己的本地私有知识库,企业可以直接基于这套方案改造落地生产环境。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-17 16:00:17 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/762914.html
  2. 运行时间 : 0.242761s [ 吞吐率:4.12req/s ] 内存消耗:4,805.12kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1d959505f632050c232384463124394e
  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.001074s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001650s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.005946s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000737s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001402s ]
  6. SELECT * FROM `set` [ RunTime:0.000497s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001369s ]
  8. SELECT * FROM `article` WHERE `id` = 762914 LIMIT 1 [ RunTime:0.001041s ]
  9. UPDATE `article` SET `lasttime` = 1781683218 WHERE `id` = 762914 [ RunTime:0.002719s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000572s ]
  11. SELECT * FROM `article` WHERE `id` < 762914 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000983s ]
  12. SELECT * FROM `article` WHERE `id` > 762914 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003158s ]
  13. SELECT * FROM `article` WHERE `id` < 762914 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.012819s ]
  14. SELECT * FROM `article` WHERE `id` < 762914 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.041890s ]
  15. SELECT * FROM `article` WHERE `id` < 762914 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001904s ]
0.244430s