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 课程概览

本课讲解电力负荷案例的预测特征解析(下)。包括解析时间特征、提取hour和month、添加窗口字段、获取昨日同时刻负荷等。这是特征工程在预测阶段的应用。

2 核心概念与定义

  • 预测时间:time字段,字符串格式。
  • 截取hour:time.str[11:13]。
  • 截取month:time.str[5:7]。
  • 特征工程:与训练阶段一致。
  • 样本数据:预测时间对应的那一行数据。

3 算法与模型详解

3.1 解析特征步骤

步骤:

  1. 截取预测时间的hour信息
  2. 截取预测时间的month信息
  3. 添加窗口字段(prev_1、prev_2、prev_3)
  4. 获取昨日同时刻负荷
  5. 组装特征数据
  6. 模型预测

3.2 截取hour信息

方法:字符串切片

代码:

pre_hour = time.str[11:13]

说明:

  • time:预测时间字符串
  • [11:13]:截取第11到13位(包左不包右)
  • 得到hour信息

示例:

  • 时间:'2015-08-01 04:00:00'
  • 截取:'04'

3.3 截取month信息

方法:字符串切片

代码:

pre_month = time.str[5:7]

说明:

  • time:预测时间字符串
  • [5:7]:截取第5到7位(包左不包右)
  • 得到month信息

示例:

  • 时间:'2015-08-01 04:00:00'
  • 截取:'08'

3.4 添加窗口字段

字段:

  • prev_1:前1小时负荷
  • prev_2:前2小时负荷
  • prev_3:前3小时负荷

方法:从数据字典中获取

代码:

prev_1 = time_load_dict[time - 1hour]
prev_2 = time_load_dict[time - 2hour]
prev_3 = time_load_dict[time - 3hour]

3.5 获取昨日同时刻负荷

方法:从数据字典中获取

代码:

yesterday_time = time - 1day
yesterday_load = time_load_dict[yesterday_time]

3.6 特征工程一致性

重点:预测阶段的特征工程与训练阶段一致

说明:

  • 顺序一致
  • 方法一致
  • 字段一致

4 代码示例

import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import logging
import joblib
import datetime

# 解决中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 1. 日志工具类
print("=== 1. 日志工具类 ===")

class LogUtils:
    """日志工具类"""
    
    def __init__(self, root_path='./', log_name='project', level=logging.INFO):
        self.logger = logging.getLogger(log_name)
        self.logger.setLevel(level)
        
        if not self.logger.handlers:
            log_dir = os.path.join(root_path, 'log')
            os.makedirs(log_dir, exist_ok=True)
            log_file = os.path.join(log_dir, f'{log_name}.log')
            
            file_handler = logging.FileHandler(log_file, encoding='utf-8')
            file_handler.setLevel(level)
            
            console_handler = logging.StreamHandler()
            console_handler.setLevel(level)
            
            formatter = logging.Formatter(
                '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
            )
            file_handler.setFormatter(formatter)
            console_handler.setFormatter(formatter)
            
            self.logger.addHandler(file_handler)
            self.logger.addHandler(console_handler)
    
    def get_log(self):
        return self.logger

# 2. 生成模拟数据
print("\n=== 2. 生成模拟数据 ===")

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

# 3. 电力负荷预测类
print("\n=== 3. 电力负荷预测类 ===")

class PowerLoadPredict:
    """电力负荷预测类"""
    
    def __init__(self, log_file=None, data_source=None):
        self.log_file = log_file
        self.data_source = data_source
        
        if log_file:
            log_name = os.path.splitext(os.path.basename(log_file))[0]
            log_dir = os.path.dirname(log_file)
            self.log_utils = LogUtils(
                root_path=log_dir if log_dir else './',
                log_name=log_name
            )
            self.logger = self.log_utils.get_log()
        else:
            self.logger = logging.getLogger('power_load_predict')
    
    def build_time_load_dict(self, data):
        """建立时间-负荷字典"""
        time_load_dict = dict(zip(
            data['time'].dt.strftime('%Y-%m-%d %H:%M:%S'),
            data['power_load']
        ))
        return time_load_dict
    
    def parse_time_features(self, time_str):
        """
        解析时间特征
        Args:
            time_str: 时间字符串,如 '2024-01-15 04:00:00'
        Returns:
            hour: 小时
            month: 月份
        """
        self.logger.info(f"解析时间特征: {time_str}")
        
        # 1. 截取hour信息
        # 字符串切片 [11:13]:包左不包右
        hour = time_str[11:13]
        
        # 2. 截取month信息
        # 字符串切片 [5:7]:包左不包右
        month = time_str[5:7]
        
        self.logger.info(f"hour: {hour}, month: {month}")
        
        return hour, month
    
    def get_window_features(self, time_str, time_load_dict):
        """
        获取窗口字段
        Args:
            time_str: 预测时间字符串
            time_load_dict: 时间-负荷字典
        Returns:
            prev_1: 前1小时负荷
            prev_2: 前2小时负荷
            prev_3: 前3小时负荷
        """
        self.logger.info(f"获取窗口字段: {time_str}")
        
        # 将字符串转为datetime
        time_dt = pd.to_datetime(time_str)
        
        # 获取前1、2、3小时的负荷
        prev_1_time = (time_dt - pd.Timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')
        prev_2_time = (time_dt - pd.Timedelta(hours=2)).strftime('%Y-%m-%d %H:%M:%S')
        prev_3_time = (time_dt - pd.Timedelta(hours=3)).strftime('%Y-%m-%d %H:%M:%S')
        
        prev_1 = time_load_dict.get(prev_1_time, 0)
        prev_2 = time_load_dict.get(prev_2_time, 0)
        prev_3 = time_load_dict.get(prev_3_time, 0)
        
        self.logger.info(f"prev_1: {prev_1}, prev_2: {prev_2}, prev_3: {prev_3}")
        
        return prev_1, prev_2, prev_3
    
    def get_yesterday_load(self, time_str, time_load_dict):
        """
        获取昨日同时刻负荷
        Args:
            time_str: 预测时间字符串
            time_load_dict: 时间-负荷字典
        Returns:
            yesterday_load: 昨日同时刻负荷
        """
        self.logger.info(f"获取昨日同时刻负荷: {time_str}")
        
        # 计算昨日时间
        time_dt = pd.to_datetime(time_str)
        yesterday_time = (time_dt - pd.Timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
        
        # 从字典获取昨日负荷
        yesterday_load = time_load_dict.get(yesterday_time, 0)
        
        self.logger.info(f"yesterday_load: {yesterday_load}")
        
        return yesterday_load
    
    def build_feature_dict(self, time_str, time_load_dict, all_features):
        """
        组装特征字典
        Args:
            time_str: 预测时间字符串
            time_load_dict: 时间-负荷字典
            all_features: 所有特征列名
        Returns:
            feature_dict: 特征字典
        """
        self.logger.info(f"组装特征字典: {time_str}")
        
        # 1. 解析时间特征
        hour, month = self.parse_time_features(time_str)
        
        # 2. 获取窗口字段
        prev_1, prev_2, prev_3 = self.get_window_features(time_str, time_load_dict)
        
        # 3. 获取昨日同时刻负荷
        yesterday_load = self.get_yesterday_load(time_str, time_load_dict)
        
        # 4. 组装特征字典
        feature_dict = {}
        
        # hour的One-Hot编码
        for h in range(24):
            col_name = f'hour_{h}'
            if col_name in all_features:
                feature_dict[col_name] = 1 if f'{h:02d}' == hour else 0
        
        # month的One-Hot编码
        for m in range(1, 13):
            col_name = f'month_{m}'
            if col_name in all_features:
                feature_dict[col_name] = 1 if f'{m:02d}' == month else 0
        
        # 窗口字段
        feature_dict['prev_1'] = prev_1
        feature_dict['prev_2'] = prev_2
        feature_dict['prev_3'] = prev_3
        
        # 昨日负荷
        feature_dict['yesterday_load'] = yesterday_load
        
        self.logger.info(f"特征字典大小: {len(feature_dict)}")
        
        return feature_dict

# 4. 运行特征解析
print("\n=== 4. 运行特征解析 ===")

def run_feature_parsing():
    """运行特征解析"""
    # 创建日志对象
    log_time = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
    log_file = f'log/predict_{log_time}.log'
    
    # 生成数据
    data = generate_power_load_data(n_days=30)
    
    # 创建预测类
    predictor = PowerLoadPredict(log_file=log_file, data_source=data)
    
    # 1. 建立时间-负荷字典
    print("--- 1. 建立时间-负荷字典 ---")
    time_load_dict = predictor.build_time_load_dict(data)
    print(f"字典大小: {len(time_load_dict)}")
    
    # 2. 解析时间特征
    print("\n--- 2. 解析时间特征 ---")
    time_str = '2024-01-15 04:00:00'
    hour, month = predictor.parse_time_features(time_str)
    print(f"时间: {time_str}")
    print(f"hour: {hour}")
    print(f"month: {month}")
    
    # 3. 获取窗口字段
    print("\n--- 3. 获取窗口字段 ---")
    prev_1, prev_2, prev_3 = predictor.get_window_features(time_str, time_load_dict)
    print(f"prev_1: {prev_1:.2f}")
    print(f"prev_2: {prev_2:.2f}")
    print(f"prev_3: {prev_3:.2f}")
    
    # 4. 获取昨日同时刻负荷
    print("\n--- 4. 获取昨日同时刻负荷 ---")
    yesterday_load = predictor.get_yesterday_load(time_str, time_load_dict)
    print(f"yesterday_load: {yesterday_load:.2f}")
    
    # 5. 组装特征字典
    print("\n--- 5. 组装特征字典 ---")
    # 模拟所有特征列名
    all_features = []
    for h in range(24):
        all_features.append(f'hour_{h}')
    for m in range(1, 13):
        all_features.append(f'month_{m}')
    all_features.extend(['prev_1', 'prev_2', 'prev_3', 'yesterday_load'])
    
    feature_dict = predictor.build_feature_dict(time_str, time_load_dict, all_features)
    print(f"特征字典大小: {len(feature_dict)}")
    print(f"非零特征:")
    for k, v in feature_dict.items():
        if v != 0:
            print(f"  {k}: {v}")

run_feature_parsing()

# 5. 字符串切片详解
print("\n=== 5. 字符串切片详解 ===")

def string_slicing_explanation():
    """字符串切片详解"""
    print("""
字符串切片详解:

1. 时间格式
   '2024-01-15 04:00:00'
    0123456789...

2. hour切片 [11:13]
   位置: 11 12
   内容: 0  4
   结果: '04'

3. month切片 [5:7]
   位置: 5 6
   内容: 0 1
   结果: '01'

4. 切片规则
   [start:end] 包左不包右
   [11:13] 取第11、12位
   [5:7] 取第5、6位

5. 代码
   hour = time_str[11:13]
   month = time_str[5:7]
""")

string_slicing_explanation()

# 6. 特征工程一致性
print("\n=== 6. 特征工程一致性 ===")

def feature_engineering_consistency():
    """特征工程一致性"""
    print("""
特征工程一致性:

1. 训练阶段特征工程
   - 提取hour和month
   - One-Hot编码
   - 添加窗口字段
   - 获取昨日负荷

2. 预测阶段特征工程
   - 截取hour和month
   - One-Hot编码
   - 获取窗口字段
   - 获取昨日负荷

3. 一致性要求
   - 顺序一致
   - 方法一致
   - 字段一致

4. 重点
   预测阶段的特征工程与训练阶段一致
""")

feature_engineering_consistency()

# 7. 完整代码
print("\n=== 7. 完整代码 ===")

def complete_code():
    """完整代码"""
    print("""
def parse_time_features(self, time_str):
    \"\"\"解析时间特征\"\"\"
    # 截取hour
    hour = time_str[11:13]
    # 截取month
    month = time_str[5:7]
    return hour, month

def get_window_features(self, time_str, time_load_dict):
    \"\"\"获取窗口字段\"\"\"
    time_dt = pd.to_datetime(time_str)
    
    prev_1_time = (time_dt - pd.Timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')
    prev_2_time = (time_dt - pd.Timedelta(hours=2)).strftime('%Y-%m-%d %H:%M:%S')
    prev_3_time = (time_dt - pd.Timedelta(hours=3)).strftime('%Y-%m-%d %H:%M:%S')
    
    prev_1 = time_load_dict.get(prev_1_time, 0)
    prev_2 = time_load_dict.get(prev_2_time, 0)
    prev_3 = time_load_dict.get(prev_3_time, 0)
    
    return prev_1, prev_2, prev_3

def get_yesterday_load(self, time_str, time_load_dict):
    \"\"\"获取昨日同时刻负荷\"\"\"
    time_dt = pd.to_datetime(time_str)
    yesterday_time = (time_dt - pd.Timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')
    yesterday_load = time_load_dict.get(yesterday_time, 0)
    return yesterday_load
""")

complete_code()

# 8. 总结
def parsing_summary():
    """解析总结"""
    print("=" * 50)
    print("解析预测特征(下)总结")
    print("=" * 50)
    
    print("\n1. 时间特征")
    print("   hour: time_str[11:13]")
    print("   month: time_str[5:7]")
    
    print("\n2. 窗口字段")
    print("   prev_1: 前1小时")
    print("   prev_2: 前2小时")
    print("   prev_3: 前3小时")
    
    print("\n3. 昨日负荷")
    print("   yesterday_load: 昨日同时刻")
    
    print("\n4. 一致性")
    print("   与训练阶段特征工程一致")
    
    print("\n" + "=" * 50)
    print("解析预测特征(下)完成!")
    print("=" * 50)

parsing_summary()

输出示例:

=== 4. 运行特征解析 ===
--- 2. 解析时间特征 ---
时间: 2024-01-15 04:00:00
hour: 04
month: 01

--- 3. 获取窗口字段 ---
prev_1: 712.34
prev_2: 689.12
prev_3: 654.56

--- 4. 获取昨日同时刻负荷 ---
yesterday_load: 698.45

5 重难点与易错提醒

  • ❗重点:字符串切片[11:13]获取hour。
  • ❗重点:字符串切片[5:7]获取month。
  • ❗重点:预测阶段特征工程与训练阶段一致。
  • ❗重点:窗口字段从数据字典获取。
  • ⚠️易错:切片位置错误。
  • ⚠️易错:特征顺序不一致。
  • 💡深入理解:特征工程一致性是模型预测准确的关键。

6 课堂问答精选

Q: 如何截取hour和month?

A: 方法:字符串切片

  • hour:time_str[11:13]
  • month:time_str[5:7]

示例:

  • 时间:'2024-01-15 04:00:00'
  • hour:'04'
  • month:'01'

Q: 为什么预测阶段特征工程要与训练阶段一致?

A: 原因:

  • 模型训练时使用特定特征
  • 预测时必须使用相同特征
  • 顺序、方法、字段都要一致
  • 否则预测结果不准确

7 本课小结

  • hour:time_str[11:13]。
  • month:time_str[5:7]。
  • 窗口:prev_1、prev_2、prev_3。
  • 昨日:yesterday_load。
  • 一致:与训练阶段特征工程一致。

8 延伸思考与实践

  • 实践:运行特征解析代码。
  • 预习:结果展示。
  • 思考:如何保证特征工程一致性?
最近更新: 2026/6/23 17:18
Contributors: yangwenguang
Prev
电力负荷案例之解析预测特征(上)
Next
电力负荷案例之结果展示