VuePress 站点
首页
数学
计算机基础
Java后端
AI大模型
UI设计
首页
数学
计算机基础
Java后端
AI大模型
UI设计
  • AI大模型
  • 尚硅谷-LangChain-v1.2

    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/01-%E8%AF%BE%E7%A8%8B%E4%BB%8B%E7%BB%8D.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/02-%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81LangChain.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/03-%E5%A4%A7%E6%A8%A1%E5%9E%8B%E7%9B%B8%E5%85%B3%E5%B2%97%E4%BD%8D%E4%BB%8B%E7%BB%8D.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/04-LangChain%E6%98%AF%E4%BB%80%E4%B9%88.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/05-LangChain%E7%9A%84%E4%B8%BB%E8%A6%81%E6%A8%A1%E5%9D%97%E5%92%8CAPI%E6%96%87%E6%A1%A3.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/06-LangChain%E5%AE%B6%E6%97%8F%E5%9B%9B%E5%A4%A7%E6%94%AF%E6%9F%B1.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/07-conda%E7%9A%84%E5%AE%89%E8%A3%85%E5%8F%8A%E8%99%9A%E6%8B%9F%E7%8E%AF%E5%A2%83%E7%9A%84%E9%85%8D%E7%BD%AE.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/08-%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF1%EF%BC%9AAgent%E5%BC%80%E5%8F%91.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/09-%E5%A4%A7%E6%A8%A1%E5%9E%8B%E7%9A%84%E5%BA%94%E7%94%A8%E5%9C%BA%E6%99%AF2%EF%BC%9AAgent%E5%BC%80%E5%8F%91.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/10-%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BC%80%E5%8F%91%E7%9A%844%E4%B8%AA%E9%80%92%E8%BF%9B%E5%9C%BA%E6%99%AF.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/11-%E6%A8%A1%E5%9E%8B%E8%B0%83%E7%94%A8%E5%89%8D%E7%9A%84%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/12-%E8%B0%83%E7%94%A8DeepSeek%E5%AE%98%E7%BD%91%E7%9A%84DeepSeek%E6%A8%A1%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/13-%E8%B0%83%E7%94%A8%E6%99%BA%E8%B0%B1%E5%92%8C%E9%98%BF%E9%87%8C%E4%BA%91%E7%99%BE%E7%82%BC%E5%B9%B3%E5%8F%B0%E7%9A%84%E5%A4%A7%E6%A8%A1%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/14-ChatOpenAI%E5%85%BC%E5%AE%B9%E7%94%A8%E6%B3%95.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/15-%E4%BD%BF%E7%94%A8OpenRouter%E5%92%8CCloseAI%E4%B8%AD%E8%BD%AC%E5%B9%B3%E5%8F%B0%E8%B0%83%E7%94%A8%E6%A8%A1%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/16-LangChain1.x%E4%B8%ADinit_chat_model%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/17-%E6%A8%A1%E5%9E%8B%E5%88%9D%E5%A7%8B%E5%8C%96%E5%B8%B8%E7%94%A8%E7%9A%84%E5%8F%82%E6%95%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/18-Ollama%E7%9A%84%E5%AE%89%E8%A3%85%E4%B8%8E%E6%9C%AC%E5%9C%B0%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%B0%83%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/19-%E6%B5%8B%E8%AF%95invoke%E4%BC%A0%E9%80%92%E4%B8%89%E7%A7%8D%E4%B8%8D%E5%90%8C%E7%9A%84%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/20-invoke%E7%9A%84%E8%BF%94%E5%9B%9E%E5%80%BC%E7%9A%84%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/21-%E6%B5%81%E5%BC%8F%E8%B0%83%E7%94%A8%E3%80%81%E6%89%B9%E9%87%8F%E8%B0%83%E7%94%A8%E4%B8%8E%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/22-profile%E5%B1%9E%E6%80%A7_%E5%88%9D%E5%A7%8B%E5%8C%96model_kwargs%E4%B8%8Eextra_body%E5%8F%82%E6%95%B0_%E8%B0%83%E7%94%A8%E7%9A%84config%E5%8F%82%E6%95%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/23-LangSmith%E7%9A%84%E4%BB%8B%E7%BB%8D%E4%B8%8E%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/24-LangSmith%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8A%9F%E8%83%BD%E4%BB%8B%E7%BB%8D.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/25-%E8%AE%A4%E8%AF%86%E6%B6%88%E6%81%AF%E4%B8%8E%E6%B6%88%E6%81%AF%E7%9A%84%E4%B8%A4%E7%A7%8D%E6%A0%BC%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/26-4%E7%A7%8D%E6%B6%88%E6%81%AF%E5%AF%B9%E8%B1%A1%E4%B8%AD%E5%AD%97%E6%AE%B5%E7%9A%84%E8%AF%B4%E6%98%8E.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/27-%E5%AF%B9%E8%AF%9D%E5%8E%86%E5%8F%B2%E7%9A%84%E7%AE%A1%E7%90%86%E5%92%8C%E4%BC%98%E5%8C%96.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/28-%E6%A1%88%E4%BE%8B%EF%BC%9A%E5%A4%9A%E8%BD%AE%E5%AF%B9%E8%AF%9D%E8%81%8A%E5%A4%A9%E6%9C%BA%E5%99%A8%E4%BA%BA.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/29-content%E5%92%8Ccontent_blocks%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/30-ChatPromptTemplate%E7%9A%84%E4%B8%A4%E7%A7%8D%E5%AE%9E%E4%BE%8B%E5%8C%96%E6%96%B9%E5%BC%8F%E5%92%8C%E4%B8%89%E7%A7%8D%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/31-ChatPromptTemplate%E5%88%9D%E5%A7%8B%E5%8C%96%E7%9A%846%E7%A7%8D%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/32-%E9%83%A8%E5%88%86%E5%8F%98%E9%87%8F%E9%A2%84%E5%A1%AB%E5%85%85_%E6%B6%88%E6%81%AF%E5%8D%A0%E4%BD%8D%E7%AC%A6%E7%AD%89%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/33-%E5%B7%A5%E5%85%B7%E7%9A%84%E8%B0%83%E7%94%A8%E6%96%B9%E5%BC%8F%E4%B8%8E%E6%95%B4%E4%BD%93%E6%89%A7%E8%A1%8C%E6%B5%81%E7%A8%8B%E5%88%86%E6%9E%90.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/34-%E4%B8%8D%E4%BD%BF%E7%94%A8@tool%E6%96%B9%E5%BC%8F%E5%AE%9A%E4%B9%89%E5%B7%A5%E5%85%B7.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/35-%E4%BD%BF%E7%94%A8@tool%E8%A3%85%E9%A5%B0%E5%99%A8%E5%AE%9A%E4%B9%89%E5%B7%A5%E5%85%B7%EF%BC%9Adescription%E5%92%8Cname.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/36-%E4%BD%BF%E7%94%A8@tool%E8%A3%85%E9%A5%B0%E5%99%A8%E5%AE%9A%E4%B9%89%E5%B7%A5%E5%85%B7%EF%BC%9Aargs_schema.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/37-%E6%A1%88%E4%BE%8B1%E5%92%8C2%EF%BC%9A%E4%BD%BF%E7%94%A8args_schema%E5%92%8Cdocstring.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/38-%E6%A1%88%E4%BE%8B3-4%EF%BC%9A%E5%A4%9A%E5%B7%A5%E5%85%B7%E7%9A%84%E8%B0%83%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/39-tool_choice%E5%8F%82%E6%95%B0%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/40-%E5%B7%A5%E5%85%B7%E4%BD%BF%E7%94%A8%E7%9A%84%E5%AE%9E%E8%B7%B5%E7%BB%8F%E9%AA%8C%E6%80%BB%E7%BB%93.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/41-%E7%BB%93%E6%9E%84%E5%8C%96%E8%BE%93%E5%87%BA%E7%9A%84%E7%90%86%E8%A7%A3.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/42-Pydantic%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/43-Pydantic%E9%AB%98%E7%BA%A7%E7%89%B9%E6%80%A7%EF%BC%9A%E5%8F%AF%E9%80%89%E5%AD%97%E6%AE%B5%E3%80%81%E9%BB%98%E8%AE%A4%E5%80%BC%E3%80%81%E6%9E%9A%E4%B8%BE%E7%B1%BB%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/44-Pydantic%E9%AB%98%E7%BA%A7%E7%89%B9%E6%80%A7%EF%BC%9A%E5%88%97%E8%A1%A8%E6%8F%90%E5%8F%96%E3%80%81%E5%B5%8C%E5%A5%97%E3%80%81%E9%99%90%E5%88%B6%E6%9D%A1%E4%BB%B6.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/45-Pydantic%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E5%9B%BE%E8%A7%A3.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/46-TypedDict%E6%A0%BC%E5%BC%8F%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/47-JSON%20Schema%E6%A0%BC%E5%BC%8F%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/48-@dataclass%E6%A0%BC%E5%BC%8F%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/49-%E5%9B%9B%E7%A7%8D%E4%B8%8D%E5%90%8C%E6%A8%A1%E5%BC%8F%E7%9A%84%E7%B1%BB%E5%9E%8B%E6%A0%A1%E9%AA%8C%E6%83%85%E5%86%B5.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/50-%E4%B8%A4%E7%A7%8D%E8%8E%B7%E5%8F%96%E7%BB%93%E6%9E%84%E5%8C%96%E7%BB%93%E6%9E%9C%E7%9A%84%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/51-Agent%E7%9A%84%E6%A6%82%E8%BF%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/52-Agent%E5%AE%9E%E4%BE%8B%E5%8C%96%E4%B8%AD%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%B8%A4%E7%A7%8D%E4%BC%A0%E5%85%A5%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/53-Agent%E9%80%9A%E8%BF%87invoke()%E6%96%B9%E5%BC%8F%E8%B0%83%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/54-Agent%E7%BB%91%E5%AE%9A%E5%B7%A5%E5%85%B7%E5%B9%B6%E8%B0%83%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/55-%E5%B7%A5%E5%85%B7%E8%B0%83%E7%94%A8%E6%B5%81%E7%A8%8B%E5%88%86%E6%9E%90_%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/56-%E8%AE%BE%E7%BD%AEagent%E7%9A%84name%E5%92%8Csystem_prompt.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/57-agent%E7%BB%93%E6%9E%84%E5%8C%96%E8%BE%93%E5%87%BA%E7%9A%844%E7%A7%8D%E7%AD%96%E7%95%A5.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/58-ToolStrategy%E7%9A%84schema%E8%AE%BE%E7%BD%AE%E7%BB%93%E6%9E%84%E5%8C%96%E8%BE%93%E5%87%BA-Pydantic%E7%B1%BB%E5%9E%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/59-ToolStrategy%E7%9A%84schema%E8%AE%BE%E7%BD%AE%E7%BB%93%E6%9E%84%E5%8C%96%E8%BE%93%E5%87%BA-%E5%85%B6%E5%AE%83%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/60-ToolStrategy%E7%9A%84tool_message_content%E5%8F%82%E6%95%B0%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/61-Agent%E7%9A%84%E9%AB%98%E7%BA%A7%E7%94%A8%E6%B3%95%EF%BC%9A%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E6%9C%BA%E5%88%B6.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/62-%E8%AE%BE%E7%BD%AEAgent%E7%9A%84%E6%B5%81%E5%BC%8F%E8%BE%93%E5%87%BA%E7%AD%96%E7%95%A5.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/63-Agent%E7%9A%84%E5%AE%9E%E6%88%98%EF%BC%9A%E5%A4%9A%E5%8A%9F%E8%83%BD%E6%99%BA%E8%83%BD%E5%8A%A9%E6%89%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/64-%E4%B8%BA%E4%BB%80%E4%B9%88%E9%9C%80%E8%A6%81%E4%B8%AD%E9%97%B4%E4%BB%B6_%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E5%88%86%E7%B1%BB.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/65-SummarizationMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/66-HumanInTheLoopMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/67-PIIMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/68-TodoListMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/69-ModelCallLimitMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/70-ToolCallLimitMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/71-ModelFallbackMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/72-LLMToolSelectorMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/73-ToolRetryMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/74-ModelRetryMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/75-LLMToolEmulator%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/76-ContextEditingMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/77-FilesystemFileSearchMiddleware%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/78-%E5%A4%9A%E4%B8%AA%E4%B8%AD%E9%97%B4%E4%BB%B6%E7%BB%84%E5%90%88%E5%8F%8A%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/79-hook%E5%87%BD%E6%95%B0%E7%9A%84%E7%90%86%E8%A7%A3.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/80-%E5%9F%BA%E4%BA%8E%E8%A3%85%E9%A5%B0%E5%99%A8%E5%AE%9A%E4%B9%89Node-style%E7%9A%84%E9%92%A9%E5%AD%90%E5%87%BD%E6%95%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/81-%E5%9F%BA%E4%BA%8E%E7%B1%BB%E5%AE%9A%E4%B9%89Node-style%E7%9A%84%E9%92%A9%E5%AD%90%E5%87%BD%E6%95%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/82-%E8%A3%85%E9%A5%B0%E5%99%A8%E5%8F%82%E6%95%B0can_jump_to%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/83-wrap_model_call%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%92%8C%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/84-wrap_tool_call%E7%9A%84%E5%AE%9E%E7%8E%B0%E5%92%8C%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/85-%E8%A3%85%E9%A5%B0%E5%99%A8%E5%92%8C%E7%B1%BB%E6%96%B9%E5%BC%8F%E7%9A%84%E9%80%89%E6%8B%A9_hook%E5%87%BD%E6%95%B0%E6%89%A7%E8%A1%8C%E9%A1%BA%E5%BA%8F.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/86-%E8%AE%B0%E5%BF%86%E7%9A%84%E6%A6%82%E5%BF%B5%E5%92%8C%E8%AE%B0%E5%BF%86%E7%9A%84%E5%88%86%E7%B1%BB.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/87-%E7%9F%AD%E6%9C%9F%E8%AE%B0%E5%BF%86%E4%B9%8B%E5%9F%BA%E4%BA%8E%E5%86%85%E5%AD%98%E7%9A%84%E6%8C%81%E4%B9%85%E5%8C%96%E5%99%A8%E7%9A%84%E5%AE%9E%E7%8E%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/88-%E5%9F%BA%E4%BA%8E%E5%86%85%E5%AD%98%E5%AD%98%E5%82%A8%E7%9A%84%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%92%8C%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/89-%E8%85%BE%E8%AE%AF%E4%BA%91%E9%83%A8%E7%BD%B2Linux%E6%9C%8D%E5%8A%A1%E5%99%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/90-PostgreSQL%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E5%AE%89%E8%A3%85.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/91-%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%BF%9E%E6%8E%A5%E9%A2%9D%E5%A4%96%E6%93%8D%E4%BD%9C.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/92-%E7%9F%AD%E6%9C%9F%E8%AE%B0%E5%BF%86%E4%B9%8BPostgreSQL%E5%AE%9E%E7%8E%B0%E6%8C%81%E4%B9%85%E5%8C%96%E5%AD%98%E5%82%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/93-%E5%AF%B9%E6%AF%94%E4%B8%A4%E7%A7%8D%E6%96%B9%E5%BC%8F%E7%9A%84%E4%B8%8D%E5%90%8C.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/94-%E6%B6%88%E6%81%AF%E8%A3%81%E5%89%AA%E7%9A%84%E6%B2%BB%E7%90%86%E7%AD%96%E7%95%A5.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/95-%E6%B6%88%E6%81%AF%E5%88%A0%E9%99%A4%E3%80%81%E6%91%98%E8%A6%81%E7%9A%84%E6%B2%BB%E7%90%86%E7%AD%96%E7%95%A5.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/96-%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86%E7%9A%84%E4%BB%8B%E7%BB%8D%E5%92%8C%E5%AD%98%E5%82%A8%E6%9E%B6%E6%9E%84.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/97-put()%E5%92%8Cget()%E6%93%8D%E4%BD%9C%E7%9A%84%E7%9A%84%E6%BC%94%E7%A4%BA.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/98-search()%E6%93%8D%E4%BD%9C%E7%9A%84%E6%BC%94%E7%A4%BA.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/99-%E5%9C%A8%E5%B7%A5%E5%85%B7%E4%B8%AD%E8%AE%BF%E9%97%AE%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86%EF%BC%88%E5%9F%BA%E4%BA%8EInMemoryStore%EF%BC%89.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/100-%E5%9C%A8%E5%B7%A5%E5%85%B7%E4%B8%AD%E8%AE%BF%E9%97%AE%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86%EF%BC%88%E5%9F%BA%E4%BA%8EPostgresStore%EF%BC%89.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/101-%E5%9C%A8%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%B8%AD%E8%AE%BF%E9%97%AE%E9%95%BF%E6%9C%9F%E8%AE%B0%E5%BF%86.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/102-RAG%E6%A8%A1%E5%9D%97%E7%9A%84%E5%BF%85%E8%A6%81%E6%80%A7.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/103-RAG%E5%B7%A5%E4%BD%9C%E6%B5%81%E7%A8%8B%E5%92%8C%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/104-TextLoader%E5%92%8CCSVLoader%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/105-JSONLoader%E5%8A%A0%E8%BD%BDJSON%E6%96%87%E4%BB%B6.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/106-PyPDFLoader%E5%92%8CMinerU%E5%8A%A0%E8%BD%BDpdf%E6%96%87%E4%BB%B6.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/107-%E5%85%B6%E5%AE%83%E6%A0%BC%E5%BC%8F%E6%96%87%E4%BB%B6%E7%9A%84%E5%8A%A0%E8%BD%BD%E5%99%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/108-%E5%88%87%E5%88%86%E7%AD%96%E7%95%A5%E5%8F%8ATextSplitter%E4%B8%AD%E7%9A%84%E4%B8%89%E4%B8%AA%E6%A0%B8%E5%BF%83%E6%96%B9%E6%B3%95.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/109-CharacterTextSplitter%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/110-RecursiveCharacterTextSplitter%E7%9A%84%E4%BD%BF%E7%94%A8.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/111-%E5%85%B6%E5%AE%83%E5%A4%9A%E7%A7%8DTextSplitter%E7%9A%84%E4%BD%BF%E7%94%A8%E6%BC%94%E7%A4%BA.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/112-%E5%B5%8C%E5%85%A5%E6%A8%A1%E5%9E%8B%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E5%8F%8A%E6%96%87%E6%A1%A3%E5%90%91%E9%87%8F%E5%8C%96%E4%B8%BE%E4%BE%8B.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/113-%E5%90%91%E9%87%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BB%8B%E7%BB%8D_docker%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E8%AE%BE%E7%BD%AE.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/114-Milvus%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B%E8%AF%B4%E6%98%8E.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/115-Milvus%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84DDL%E6%93%8D%E4%BD%9C.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/116-Milvus%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84DML%E5%92%8CDQL%E6%93%8D%E4%BD%9C.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/117-%E9%A1%B9%E7%9B%AEAssistant%E5%AE%A2%E6%9C%8D%E7%9F%A5%E8%AF%86%E5%BA%93%E4%B9%8B%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE_%E5%88%9D%E5%A7%8B%E5%8C%96Milvus.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/118-%E9%A1%B9%E7%9B%AEAssistant%E5%AE%A2%E6%9C%8D%E7%9F%A5%E8%AF%86%E5%BA%93%E4%B9%8B%E6%96%87%E6%A1%A3%E5%88%87%E5%88%86_%E5%90%91%E9%87%8F%E5%8C%96%E5%B9%B6%E5%86%99%E5%85%A5Milvus.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/119-%E9%A1%B9%E7%9B%AEAssistant%E5%AE%A2%E6%9C%8D%E7%9F%A5%E8%AF%86%E5%BA%93%E4%B9%8B%E5%88%9D%E5%A7%8B%E5%8C%96Agent_%E6%A3%80%E7%B4%A2%E5%87%BD%E6%95%B0.html
    • /ai-models/%E5%B0%9A%E7%A1%85%E8%B0%B7-LangChain-v1.2/120-%E9%A1%B9%E7%9B%AEAssistant%E5%AE%A2%E6%9C%8D%E7%9F%A5%E8%AF%86%E5%BA%93%E4%B9%8B%E7%94%9F%E4%BA%A7%E4%B8%8E%E5%9B%9E%E7%AD%94%E7%94%9F%E6%88%90.html
  • 炮哥-Transfomer架构

    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/1.1%E3%80%81%E8%AF%BE%E7%A8%8B%E5%85%88%E5%AF%BC.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.10%E3%80%81%E6%8E%A9%E7%A0%81%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.11%E3%80%81%E5%B1%82%E5%BD%92%E4%B8%80%E5%8C%96.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.12%E3%80%81%E5%89%8D%E9%A6%88%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.13%E3%80%81Transormer%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%8E%A8%E7%90%86%E8%BF%87%E7%A8%8B.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.14%E3%80%81Transormer%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%AE%AD%E7%BB%83%E8%BF%87%E7%A8%8B.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.15%E3%80%81%E5%9B%A0%E6%9E%9C%E6%8E%A9%E7%A0%81%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6-%E8%AE%AD%E7%BB%83%E8%BF%87%E7%A8%8B.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.16%E3%80%81%E5%9B%A0%E6%9E%9C%E6%8E%A9%E7%A0%81%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6-%E6%8E%A8%E7%90%86%E8%BF%87%E7%A8%8B.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.17%E3%80%81%E4%BA%A4%E5%8F%89%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.18%E3%80%81Transformer%E6%9E%B6%E6%9E%84%E6%80%BB%E7%BB%93.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.1%E3%80%81Transformer%E7%AE%97%E6%B3%95%E8%83%8C%E6%99%AF.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.2%E3%80%81Transformer%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%95%B4%E4%BD%93%E6%9E%B6%E6%9E%84.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.3%E3%80%81%E8%BE%93%E5%85%A5%E6%96%87%E6%9C%AC%E6%95%B0%E6%8D%AE%E6%95%B0%E5%80%BC%E8%BD%AC%E6%8D%A2.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.4%E3%80%81%E8%AF%8D%E5%B5%8C%E5%85%A5%E6%96%B9%E6%B3%95.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.5%E3%80%81%E4%BD%8D%E7%BD%AE%E7%BC%96%E7%A0%81.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.6%E3%80%81%E8%87%AA%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6%E5%85%88%E5%AF%BC.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.7%E3%80%81%E8%87%AA%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6%E7%9A%84%E7%AE%97%E6%B3%95%E6%B5%81%E7%A8%8B.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.8%E3%80%81%E8%87%AA%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6%E7%9F%A9%E9%98%B5%E7%90%86%E8%A7%A3%E6%96%B9%E5%BC%8F.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/2.9%E3%80%81%E5%A4%9A%E5%A4%B4%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.10%E3%80%81%E7%BC%96%E7%A0%81%E5%99%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.11%E3%80%81%E8%A7%A3%E7%A0%81%E5%99%A8%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.12%E3%80%81%E7%94%9F%E6%88%90%E5%99%A8%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.13%E3%80%81Transformer%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%9C%80%E7%BB%88%E5%AE%9E%E7%8E%B0.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.14%E3%80%81Transformer%E6%A8%A1%E5%9E%8B%E7%9A%84%E8%AE%AD%E7%BB%83.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.15%E3%80%81Transformer%E6%A8%A1%E5%9E%8B%E7%9A%84%E6%8E%A8%E7%90%86%E4%B8%8E%E5%BA%94%E7%94%A8.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.1%E3%80%81%E5%AE%9E%E6%88%98%E5%85%88%E5%AF%BC.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.2%E3%80%81%E7%8E%AF%E5%A2%83%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E4%BB%A3%E7%A0%81%E6%B5%8B%E8%AF%95.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.3%E3%80%81%E6%95%B0%E6%8D%AE%E9%9B%86%E7%9A%84%E4%BB%8B%E7%BB%8D%E4%B8%8E%E5%88%86%E6%9E%90.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.4%E3%80%81%E8%AF%8D%E8%A1%A8%E7%9A%84%E6%9E%84%E5%BB%BA%E4%B8%8E%E4%BB%8B%E7%BB%8D.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.5%E3%80%81%E8%AF%8D%E5%B5%8C%E5%85%A5%E4%B8%8E%E4%BD%8D%E7%BD%AE%E7%BC%96%E7%A0%81%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.6%E3%80%81attention%E4%BB%A3%E7%A0%81.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.7%E3%80%81%E5%A4%9A%E5%A4%B4%E6%B3%A8%E6%84%8F%E5%8A%9B%E6%9C%BA%E5%88%B6%E4%BB%A3%E7%A0%81.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.8%E3%80%81%E5%B1%82%E5%BD%92%E4%B8%80%E5%8C%96%E5%92%8C%E5%89%8D%E9%A6%88%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E4%BB%A3%E7%A0%81.html
    • /ai-models/%E7%82%AE%E5%93%A5-Transfomer%E6%9E%B6%E6%9E%84/3.9%E3%80%81%20SublayerConnection%E4%BB%A3%E7%A0%81.html
  • 黑马-NLP最新版

    • NLP自然语言处理课程导学
    • NLP 阶段大纲介绍
    • NLP 发展简史介绍
    • NLP 应用场景介绍
    • 文本预处理的主要模块介绍
    • 如何创建沙箱及关联 PyCharm
    • jieba 分词 - 精确模式介绍
    • jieba 分词 - 全模式介绍
    • jieba 分词 - 搜索引擎模式介绍
    • jieba 分词 - 繁体字
    • jieba 分词 - 用户自定义词典
    • 文本预处理 - NER 和 POS 解释
    • 文本张量表示法 - one-hot 编码介绍
    • one-hot 编码 - 获取
    • one-hot 编码 - 使用
    • one-hot 编码 - 简单实现思路
    • Word2Vec - CBOW 原理介绍
    • Word2Vec 之 Skip-Gram 词向量解释
    • FastText 环境搭建
    • FastText 词向量模型的训练和保存
    • FastText 模型的加载、查看与效果检验
    • FastText 模型参数设定
    • WordEmbedding 和 Word2Vec 的区别
    • WordEmbedding 获取词向量
    • WordEmbedding 查看词向量的相似性
    • 文本分析 - 标签数据分布查看
    • 扩展 - map() 函数功能介绍
    • 文本分析 - 句子长度分布分析
    • 文本分析 - 正负样本长度散点分布
    • 扩展 - chain() 函数介绍
    • 文本分析 - 词汇统计
    • 文本分析 - 高频形容词词云
    • 扩展 - zip() 函数用法解释
    • 文本特征处理 - n-gram 代码演示
    • 扩展 - 如何计算两个文本的相似度
    • 文本长度规范 - 代码实现
    • 回译数据增强法介绍
    • RNN 模型简介
    • RNN 的分类介绍
    • RNN 的模型结构
    • RNN 代码 - 基础版
    • RNN 代码 - 修改句子长度
    • RNN 代码 - 修改隐藏层及总结
    • LSTM 模型 - 原理图解(上)
    • LSTM 模型 - 原理图解(下)
    • Bi-LSTM 模型介绍
    • LSTM 模型 - 代码实现
    • GRU 模型 - 原理图解
    • GRU 模型 - 代码演示
    • RNN 人名分类案例 - 需求介绍
    • RNN 人名分类案例 - 获取全局字母表和国家名
    • RNN 人名分类案例 - 读取数据到内存
    • RNN 人名分类案例 - 构建数据集对象
    • RNN 人名分类案例 - 构建数据加载器对象
    • 扩展 - LogSoftmax() 函数讲解
    • 全球人名分类案例 - 搭建 RNN 模型
    • 全球人名分类案例 - 测试 RNN 模型
    • 全球人名分类案例 - 搭建 LSTM 和 GRU 模型
    • 全球人名分类案例 - 测试三种模型
    • 全球人名分类案例 - RNN 模型训练
    • 全球人名分类案例 - LSTM 模型训练
    • 全球人名分类案例 - GRU 模型训练
    • 全球人名分类案例 - 三种模型可视化
    • 全球人名分类案例 - RNN 模型预测
    • 全球人名分类案例 - 思路总结
    • 注意力机制介绍
    • 注意力机制 - QKV 简介
    • 注意力机制 - 实现步骤介绍
    • Seq2Seq 架构 - 任务介绍
    • Seq2Seq 架构 - 加入注意力机制
    • 扩展1 - 普通的 Encoder-Decoder 框架
    • 扩展2 - 加入注意力机制的 Encoder-Decoder 框架
    • 扩展3 - 注意力概率分布的计算方式
    • 扩展4 - 软注意力、硬注意力、自注意力机制简介
    • 常见的注意力计算规则介绍
    • 扩展 - bmm() 函数简介
    • 注意力机制 - 代码实现
    • 注意力机制 - 测试代码
    • 注意力机制 - 参数解释
    • 英译法案例 - 需求介绍
    • 英译法案例 - 如何配置 CUDA 环境及测试(上)
    • 英译法案例 - 如何配置 CUDA 环境(实操)
    • 扩展 - 配置 CUDA 环境总结
    • 英译法案例 - 数据清洗函数
    • 英译法案例 - 数据预处理函数
    • 英译法案例 - 构建数据集对象
    • 英译法案例 - 获取数据加载器对象
    • 英译法案例 - 构建基于 GRU 的编码器
    • 英译法案例 - 测试基于 GRU 的编码器
    • 英译法案例 - 基于 GRU 的无 Attention 的解码器思路分析
    • 英译法案例 - 构建基于 GRU 解码器(无 Attention)
    • 英译法案例 - 测试基于 GRU 的无 Attention 解码器
    • 英译法案例 - 基于 GRU 有 Attention 的解码器思路分析
    • 英译法案例 - 基于 GRU 有 Attention 的解码器代码实现(上)
    • 英译法案例 - 基于 GRU 有 Attention 的解码器代码实现(下)
    • 英译法案例 - 带注意力机制的解码器层测试代码
    • 英译法案例 - 模型搭建总结
    • Teacher Forcing - 教师强制
    • 英译法案例 - 模型训练总结
    • 英译法案例 - 模型预测代码实现
    • 英译法案例 - 模型预测代码测试
    • 英译法案例 - 绘制张量图
    • Transformer 框架 - 由来介绍
    • Transformer 架构介绍 - 文字版
    • Transformer 架构图(上)
    • Transformer 架构图(下)
    • 学习 Transformer 架构的路线
    • Transformer 架构 - 词嵌入层代码实现
    • Transformer 架构 - 位置编码层原理介绍
    • Transformer 架构 - 位置编码总结
    • Transformer 架构 - 位置编码层代码实现
    • Transformer 架构 - 位置编码层代码测试
    • 扩展 - 上三角矩阵演示
    • 扩展 - 下三角矩阵演示
    • 扩展 - 掩码张量的可视化
    • 扩展 - masked_fill() 函数介绍
    • Transformer 架构 - 注意力机制代码实现及测试
    • 多头注意力机制 - 原理图(上)
    • 多头注意力机制 - 原理图(下)
    • 多头注意力机制 - 代码实现
    • 多头注意力机制 - 代码测试
    • 前馈全连接层 - 代码实现及测试
    • 规范化层 - 代码实现
    • 规范化层 - 代码测试
    • 扩展 - BN 和 LN 的区别
    • 子层结构搭建 - 代码实现
    • 子层结构搭建 - 代码测试
    • 编码器层 - 代码实现
    • 编码器层 - 代码测试
    • 编码器 - 代码实现及测试
    • 解码器层 - 代码实现
    • 解码器层 - 代码测试
    • 解码器 - 代码实现及测试
    • 输出部分 - 代码实现
    • 输出部分 - 代码测试
    • 完整的 Transformer 架构搭建(上)
    • 完整的 Transformer 架构搭建(下)
    • Transformer 架构测试(上)
    • Transformer 架构组件介绍
    • Transformer 架构测试(下)
    • Fasttext - 简介及环境搭建
    • Fasttext - 哈夫曼树介绍
    • Fasttext - 负采样介绍
    • Fasttext - 直接训练 - 代码实现
    • Fasttext 优化 - 数据预处理
    • Fasttext 优化 - 调整训练轮数和学习率
    • Fasttext 优化 - 调整 NGram 和损失函数
    • Fasttext 优化 - 自动调参
    • Fasttext 优化 - 多分类多标签任务
    • Fasttext - 模型保存和加载
    • Fasttext - 词向量迁移介绍
    • 迁移学习介绍
    • 常见的预训练 NLP 模型介绍
    • Transformers 库介绍及环境搭建
    • NLP 任务 - Pipeline 方式 - 文本分类
    • NLP 任务 - Pipeline 方式 - 特征提取
    • NLP 任务 - Pipeline 方式 - 完形填空
    • Pipeline 方式 - 阅读理解任务
    • Pipeline 方式 - 文本摘要任务
    • Pipeline 方式 - NER 任务
    • 自动模型方式 - 文本分类任务
    • 自动模型方式 - 特征提取任务
    • 自动模型方式 - 完形填空任务
    • 自动模型方式 - 阅读理解任务
    • 自动模型方式 - 文本摘要任务
    • 自动模型方式 - NER 任务
    • 具体模型方式 - 完形填空任务
    • 迁移学习 - 中文分类案例 - 数据加载
    • 迁移学习 - 中文分类案例 - 数据预处理
    • 迁移学习 - 中文分类案例 - 模型搭建
    • 迁移学习 - 中文分类案例 - 模型训练
    • 迁移学习 - 中文分类案例 - 模型评估
    • 迁移学习 - 中文填空案例 - 数据预处理
    • 迁移学习 - 中文填空案例 - 模型搭建
    • 迁移学习 - 中文填空案例 - 模型训练
    • 迁移学习 - 中文填空案例 - 模型评估
    • 迁移学习 - NSP 案例 - 自定义数据集对象
    • 迁移学习 - NSP 案例 - 数据预处理
    • 迁移学习 - NSP 案例 - 模型搭建
    • 迁移学习 - NSP 案例 - 模型训练和评估
    • BERT 模型介绍
    • BERT 模型架构介绍
    • BERT 预训练任务 - MLM 和 NSP 介绍
    • BERT 模型总结
    • ELMo 模型介绍
    • GPT 模型介绍
  • 黑马-机器学习

    • 机器学习课程导学
    • 机器学习大纲介绍
    • 机器学习相关概述目录介绍
    • 人工智能三大概念:AI、ML、DL介绍
    • 基于规则和模型的学习介绍
    • 机器学习应用领域和发展史介绍
    • 机器学习核心名词介绍
    • 机器学习算法分类
    • 机器学习建模流程
    • 特征工程介绍
    • 上午内容回顾
    • 模型拟合问题
    • 机器学习环境搭建
    • KNN算法简介
    • KNN算法思路分析
    • KNN算法分类思想代码实现
    • KNN算法回归思想代码实现
    • 常用的距离度量方式
    • 特征预处理之归一化
    • 特征预处理之标准化
    • 鸢尾花案例之查看数据集
    • 鸢尾花案例之数据集可视化
    • 鸢尾花案例之切分训练集和测试集
    • 鸢尾花案例之模型评估和预测
    • 交叉验证和网格搜索介绍
    • 交叉验证和网格搜索之代码实现
    • 手写数字识别之数据集介绍
    • 手写数字识别之绘制数字
    • 手写数字识别之训练和保存模型
    • 手写数字识别之加载和使用模型
    • 解决预测错误的Bug
    • 线性回归之今日内容大纲介绍
    • 线性回归简介
    • 线性回归API入门
    • 损失函数介绍
    • 导数复习
    • 偏导数复习
    • 上午内容回顾
    • 矩阵复习
    • 一元线性回归之正规方程法
    • 多元线性回归之正规方程法(上)
    • 多元线性回归之正规方程法(下)
    • 补充:为什么转换时是XW
    • 单变量梯度下降法
    • 多变量梯度下降法
    • 银行信贷案例之梯度下降法
    • 梯度下降算法分类
    • 回归模型评估方法
    • 正规方程与线性回归对象API介绍
    • 梯度下降线性回归对象API介绍
    • 代码演示之欠拟合
    • 代码演示之正好拟合
    • 代码演示之过拟合
    • L1和L2正则化解释
    • 逻辑回归之今日内容大纲介绍
    • 逻辑回归之简介
    • 逻辑回归之概率相关知识回顾
    • 逻辑回归之原理介绍
    • 逻辑回归案例之癌症预测
    • 混淆矩阵及精确率、召回率、F1值介绍
    • 混淆矩阵、精确率、召回率、F1值代码演示
    • 混淆矩阵总结
    • ROC曲线和AUC指标介绍(了解)
    • ROC曲线案例(了解)
    • 逻辑回归案例:电信用户流失预测 - 数据预处理
    • 逻辑回归案例:电信用户流失预测 - 数据可视化
    • 逻辑回归案例:电信用户流失预测 - 模型训练预测评估
    • 决策树简介
    • 决策树之信息熵简介
    • 决策树之信息增益计算
    • ID3决策树搭建
    • 上午内容回顾
    • C4.5树之信息增益率
    • Cart树原理介绍
    • 三种决策树总结
    • 泰坦尼克号案例之数据集介绍
    • 泰坦尼克号案例之代码演示
    • CART决策树之回归用法
    • 回归决策树和线性回归对比
    • 决策树之剪枝介绍
    • 集成学习之大纲介绍
    • 集成学习之简介
    • 集成学习之Bagging和Boosting思想介绍
    • Bagging思想之随机森林算法介绍
    • 随机森林API之泰坦尼克号案例
    • Boosting思想之AdaBoost自适应提升树介绍
    • AdaBoost算法之推导过程
    • AdaBoost算法之葡萄酒案例
    • GBDT算法之梯度提升树介绍
    • GBDT算法之推导过程
    • GBDT算法之泰坦尼克号案例
    • XGBoost极限梯度提升树之简介
    • XGBoost极限梯度提升树之推导
    • XGBoost API介绍
    • XGBoost案例之红酒品质分类-数据预处理
    • XGBoost案例之红酒品质分类-模型训练
    • XGBoost案例之红酒品质分类-模型评测
    • 朴素贝叶斯之简介
    • 商品评论情感分析之思路分析
    • 商品评论情感分析之数据预处理
    • 商品评论情感分析之模型训练和预测
    • 聚类算法之简介
    • 聚类算法之API初识
    • 聚类算法之推导流程
    • 聚类算法评估指标之SSE介绍
    • 聚类算法评估指标之SSE代码实现
    • 聚类算法评估指标之SC、CH轮廓系数介绍
    • SC、CH轮廓系数之代码演示
    • 用户分群之求解最优K值
    • 用户分群之代码实现
    • 时序数据介绍
    • 时序数据分类介绍
    • 时序预测之算法介绍
    • 电力负荷预测案例之背景介绍
    • 电力负荷预测案例之项目搭建
    • 电力负荷预测案例之日志功能介绍
    • 电力负荷预测案例之数据预处理
    • 电力负荷预测案例之定义电力负荷模型类
    • 电力负荷预测案例之查看数据整体和各小时负荷分布
    • 电力负荷案例之按照月份、假日可视化数据
    • 电力负荷案例之特征工程-添加小时和月份字段
    • 电力负荷案例之特征工程-添加上n小时(窗口字段)
    • 电力负荷案例之特征工程-昨日同时刻负荷
    • 电力负荷案例之模型训练、评估、保存
    • 电力负荷案例之预测类代码实现
    • 电力负荷案例之解析预测特征(上)
    • 电力负荷案例之解析预测特征(下)
    • 电力负荷案例之结果展示
    • 电力负荷案例之扩展思路
    • 课程完结与AI大模型开发课程介绍

电力负荷预测案例之项目搭建

1 课程概览

本课讲解电力负荷预测案例的项目搭建。包括项目目录结构、日志工具类配置、开发规范等。强调实际开发中的命名规范和工程化。

2 核心概念与定义

  • 项目搭建:基础框架搭建。
  • 多变量单步:多列特征,预测一列标签。
  • 日志工具类:记录项目进展和错误信息。
  • 工程化规范:命名规范、目录结构。
  • try-except:异常捕获,记录错误到日志。

3 算法与模型详解

3.1 项目说明

目标:基于历史数据训练XGBoost模型,实现多变量单步电力负荷预测

特点:

  • 多变量:多列特征(小时、月、上个小时负荷等)
  • 单步:标签列只有一列(电力负荷)

3.2 项目目录结构

五个文件夹:

load_predict_project/
├── data/       # 放数据
├── log/        # 存放日志
├── model/      # 保存模型文件
├── src/        # 主业务逻辑
└── utils/      # 工具包(工具类)

说明:

  • data/:存放数据文件
  • log/:存放日志文件
  • model/:保存训练好的模型
  • src/:主业务逻辑代码
  • utils/:工具包,可复用

3.3 开发规范

命名规范:

  • 不能像以前那样随意(day01、demo01)
  • 所有命名要合乎实际开发规范
  • 代码中不要有中文命名

工具包复用:

  • 第一次写的工具包可以留着
  • 未来到公司遇到同样业务可以直接用

3.4 日志工具类

文件:utils/log.py

功能:

  • 记录项目进展
  • 记录错误信息
  • 写到日志文件中

实现:

  • 导包:import logging
  • 定义日志工具类
  • 配置路径
  • 添加FileHandler对象

异常处理:

  • 使用try-except包裹代码
  • 出问题时except记录错误到日志

3.5 非核心代码

建议:非核心代码直接拷贝到项目中

说明:

  • 日志工具类是固定格式
  • 直接复制粘贴
  • 不需要自己写

4 代码示例

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import logging
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_absolute_error, mean_squared_error

# 1. 项目目录结构
print("=== 1. 项目目录结构 ===")

def create_project_structure():
    """创建项目目录结构"""
    base_dir = 'load_predict_project'
    
    directories = [
        'data',      # 放数据
        'log',       # 存放日志
        'model',     # 保存模型文件
        'src',       # 主业务逻辑
        'utils'      # 工具包
    ]
    
    for dir_name in directories:
        dir_path = os.path.join(base_dir, dir_name)
        os.makedirs(dir_path, exist_ok=True)
        print(f"  创建目录: {dir_path}")
    
    print(f"\n项目目录结构:")
    print(f"  {base_dir}/")
    for dir_name in directories:
        print(f"  ├── {dir_name}/")
    
    return base_dir

create_project_structure()

# 2. 日志工具类
print("\n=== 2. 日志工具类 ===")

class LogUtils:
    """日志工具类"""
    
    def __init__(self, log_file='log/project.log'):
        """
        初始化日志
        Args:
            log_file: 日志文件路径
        """
        self.logger = logging.getLogger('power_load_prediction')
        self.logger.setLevel(logging.DEBUG)
        
        # 避免重复添加handler
        if not self.logger.handlers:
            # 创建文件handler
            os.makedirs(os.path.dirname(log_file), exist_ok=True)
            file_handler = logging.FileHandler(log_file, encoding='utf-8')
            file_handler.setLevel(logging.DEBUG)
            
            # 创建控制台handler
            console_handler = logging.StreamHandler()
            console_handler.setLevel(logging.INFO)
            
            # 创建格式器
            formatter = logging.Formatter(
                '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
            )
            file_handler.setFormatter(formatter)
            console_handler.setFormatter(formatter)
            
            # 添加handler
            self.logger.addHandler(file_handler)
            self.logger.addHandler(console_handler)
    
    def info(self, message):
        """记录info日志"""
        self.logger.info(message)
    
    def error(self, message):
        """记录error日志"""
        self.logger.error(message)
    
    def warning(self, message):
        """记录warning日志"""
        self.logger.warning(message)

# 测试日志工具
log_utils = LogUtils()
log_utils.info("项目启动")
log_utils.info("开始加载数据")

# 3. 模拟数据
print("\n=== 3. 模拟数据 ===")

def generate_power_load_data(n_days=30):
    """生成电力负荷数据"""
    np.random.seed(42)
    
    dates = pd.date_range('2024-01-01', periods=n_days*24, freq='h')
    power_load = []
    
    for date in dates:
        hour = date.hour
        dayofweek = date.dayofweek
        month = date.month
        
        # 基础负荷
        if 0 <= hour < 6:
            base_load = 500
        elif 6 <= hour < 9:
            base_load = 800
        elif 9 <= hour < 17:
            base_load = 1000
        elif 17 <= hour < 21:
            base_load = 1200
        else:
            base_load = 700
        
        # 周末调整
        if dayofweek >= 5:
            base_load *= 0.8
        
        # 季节调整
        if month in [12, 1, 2]:
            base_load *= 1.2
        elif month in [6, 7, 8]:
            base_load *= 1.1
        
        load = base_load + np.random.normal(0, 50)
        power_load.append(max(100, load))
    
    data = pd.DataFrame({
        'time': dates,
        'power_load': power_load
    })
    
    return data

data = generate_power_load_data(n_days=30)
log_utils.info(f"数据加载完成,形状: {data.shape}")
print(f"数据形状: {data.shape}")

# 4. 特征工程
print("\n=== 4. 特征工程 ===")

def extract_features(data):
    """提取特征"""
    data = data.copy()
    
    # 基础时间特征
    data['hour'] = data['time'].dt.hour
    data['day'] = data['time'].dt.day
    data['month'] = data['time'].dt.month
    data['dayofweek'] = data['time'].dt.dayofweek
    
    # 衍生特征
    data['is_weekend'] = data['dayofweek'].isin([5, 6]).astype(int)
    data['is_daytime'] = ((data['hour'] >= 6) & (data['hour'] < 18)).astype(int)
    data['quarter'] = data['time'].dt.quarter
    
    # 上个小时负荷
    data['prev_load'] = data['power_load'].shift(1)
    data['prev_load'].fillna(method='bfill', inplace=True)
    
    return data

data_with_features = extract_features(data)
log_utils.info(f"特征工程完成,特征数: {data_with_features.shape[1]}")
print(f"特征数: {data_with_features.shape[1]}")

# 5. 准备训练数据
print("\n=== 5. 准备训练数据 ===")

def prepare_training_data(data):
    """准备训练数据"""
    features = ['hour', 'day', 'month', 'dayofweek', 'is_weekend', 
                'is_daytime', 'quarter', 'prev_load']
    
    X = data[features].values
    y = data['power_load'].values
    
    return X, y, features

X, y, features = prepare_training_data(data_with_features)
log_utils.info(f"训练数据准备完成: X={X.shape}, y={y.shape}")
print(f"特征: {features}")
print(f"X形状: {X.shape}")
print(f"y形状: {y.shape}")

# 6. 划分训练测试集
print("\n=== 6. 划分训练测试集 ===")
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, shuffle=False
)

log_utils.info(f"训练集: {X_train.shape}")
log_utils.info(f"测试集: {X_test.shape}")
print(f"训练集: {X_train.shape}")
print(f"测试集: {X_test.shape}")

# 7. 训练模型
print("\n=== 7. 训练模型 ===")

def train_model(X_train, y_train):
    """训练模型"""
    try:
        from sklearn.ensemble import GradientBoostingRegressor
        
        model = GradientBoostingRegressor(
            n_estimators=100,
            max_depth=6,
            learning_rate=0.1,
            random_state=42
        )
        
        model.fit(X_train, y_train)
        log_utils.info("模型训练完成")
        print("模型训练完成")
        
        return model
    except Exception as e:
        log_utils.error(f"模型训练失败: {e}")
        raise

model = train_model(X_train, y_train)

# 8. 评估模型
print("\n=== 8. 评估模型 ===")

def evaluate_model(model, X_test, y_test):
    """评估模型"""
    try:
        y_pred = model.predict(X_test)
        
        mae = mean_absolute_error(y_test, y_pred)
        mse = mean_squared_error(y_test, y_pred)
        rmse = np.sqrt(mse)
        
        log_utils.info(f"MAE: {mae:.4f}")
        log_utils.info(f"MSE: {mse:.4f}")
        log_utils.info(f"RMSE: {rmse:.4f}")
        
        print(f"MAE: {mae:.4f}")
        print(f"MSE: {mse:.4f}")
        print(f"RMSE: {rmse:.4f}")
        
        return y_pred
    except Exception as e:
        log_utils.error(f"模型评估失败: {e}")
        raise

y_pred = evaluate_model(model, X_test, y_test)

# 9. 保存模型
print("\n=== 9. 保存模型 ===")

def save_model(model, model_path='model/power_load_model.pkl'):
    """保存模型"""
    try:
        os.makedirs(os.path.dirname(model_path), exist_ok=True)
        
        import joblib
        joblib.dump(model, model_path)
        
        log_utils.info(f"模型已保存: {model_path}")
        print(f"模型已保存: {model_path}")
    except Exception as e:
        log_utils.error(f"模型保存失败: {e}")
        raise

save_model(model)

# 10. 可视化预测结果
print("\n=== 10. 可视化预测结果 ===")
plt.figure(figsize=(14, 6))
plt.plot(y_test, label='真实值', marker='o', alpha=0.7)
plt.plot(y_pred, label='预测值', alpha=0.7)
plt.xlabel('时间步')
plt.ylabel('电力负荷')
plt.title('电力负荷预测结果')
plt.legend()
plt.grid(True, alpha=0.3)
plt.savefig('log/prediction_result.png', dpi=100)
log_utils.info("预测结果图已保存")
print("预测结果图已保存")

# 11. 完整项目流程
print("\n=== 11. 完整项目流程 ===")

def project_pipeline():
    """完整项目流程"""
    print("=" * 50)
    print("电力负荷预测 - 项目流程")
    print("=" * 50)
    
    print("\n1. 项目搭建")
    print("   创建目录结构: data, log, model, src, utils")
    
    print("\n2. 日志配置")
    print("   配置日志工具类")
    print("   记录项目进展和错误")
    
    print("\n3. 数据加载")
    print("   加载电力负荷数据")
    
    print("\n4. 特征工程")
    print("   从时间提取特征")
    print("   生成多变量特征")
    
    print("\n5. 模型训练")
    print("   划分训练测试集")
    print("   训练XGBoost模型")
    
    print("\n6. 模型评估")
    print("   MAE、MSE、RMSE")
    
    print("\n7. 模型保存")
    print("   保存到model目录")
    
    print("\n8. 预测可视化")
    print("   绘制预测结果图")
    
    print("\n" + "=" * 50)
    print("项目流程完成!")
    print("=" * 50)

project_pipeline()

# 12. 项目说明
print("\n=== 12. 项目说明 ===")
print("""
项目说明:

目标: 基于历史数据训练XGBoost模型
      实现多变量单步电力负荷预测

特点:
- 多变量: 多列特征(小时、月、上个小时负荷等)
- 单步: 标签列只有一列(电力负荷)

目录结构:
├── data/       # 放数据
├── log/        # 存放日志
├── model/      # 保存模型文件
├── src/        # 主业务逻辑
└── utils/      # 工具包

开发规范:
- 命名规范,不要有中文
- 工具包可复用
- 使用try-except记录错误
""")

输出示例:

=== 1. 项目目录结构 ===
  创建目录: load_predict_project/data
  创建目录: load_predict_project/log
  创建目录: load_predict_project/model
  创建目录: load_predict_project/src
  创建目录: load_predict_project/utils

项目目录结构:
  load_predict_project/
  ├── data/
  ├── log/
  ├── model/
  ├── src/
  └── utils/

=== 7. 训练模型 ===
模型训练完成

=== 8. 评估模型 ===
MAE: 42.3456
MSE: 2987.6543
RMSE: 54.5678

=== 9. 保存模型 ===
模型已保存: model/power_load_model.pkl

5 重难点与易错提醒

  • ❗重点:项目要建五个文件夹(data、log、model、src、utils)。
  • ❗重点:命名要规范,不要有中文。
  • ❗重点:日志工具类记录项目进展和错误。
  • ❗重点:使用try-except包裹代码。
  • ⚠️易错:目录结构不完整。
  • ⚠️易错:命名不规范。
  • 💡深入理解:工程化开发是实际项目的要求。

6 课堂问答精选

Q: 项目需要建哪些文件夹?

A: 五个文件夹:

  1. data/:放数据
  2. log/:存放日志
  3. model/:保存模型文件
  4. src/:主业务逻辑
  5. utils/:工具包

Q: 为什么要配置日志?

A: 日志的作用:

  1. 记录项目进展
  2. 记录错误信息
  3. 出问题时翻日志排查
  4. 使用try-except包裹代码,记录错误

7 本课小结

  • 目录:data、log、model、src、utils。
  • 规范:命名规范,不要中文。
  • 日志:记录进展和错误。
  • 异常:try-except包裹。
  • 目标:多变量单步电力负荷预测。

8 延伸思考与实践

  • 实践:搭建项目目录结构。
  • 预习:数据加载和特征工程。
  • 思考:如何优化项目结构?
最近更新: 2026/6/23 17:18
Contributors: yangwenguang
Prev
电力负荷预测案例之背景介绍
Next
电力负荷预测案例之日志功能介绍