From 58f6d3ebcf854b2c50f22a9ea98ca1e20edf0aa1 Mon Sep 17 00:00:00 2001 From: Annyfee <2287551746@qq.com> Date: Wed, 26 Nov 2025 09:38:48 +0800 Subject: [PATCH] fix: correct missing dependencies in requirements.txt and imports --- 04_langchain_basics/02_prompt.py | 15 --------------- 05_langchain_advanced/06_streaming.py | 2 ++ 08_langgraph_basics/01_workflow.png | Bin 6449 -> 6746 bytes .../03_multi_agent_orchestration.py | 2 +- requirements.txt | 12 ++++++------ 5 files changed, 9 insertions(+), 22 deletions(-) diff --git a/04_langchain_basics/02_prompt.py b/04_langchain_basics/02_prompt.py index 1c508e9..53a2348 100644 --- a/04_langchain_basics/02_prompt.py +++ b/04_langchain_basics/02_prompt.py @@ -8,18 +8,3 @@ prompt = ChatPromptTemplate.from_messages([ # 格式化输出 formatted_prompt = prompt.invoke({"input":"你好喵"}) print(formatted_prompt) - - - - - - - - - - - - - - - diff --git a/05_langchain_advanced/06_streaming.py b/05_langchain_advanced/06_streaming.py index daba014..6181fe2 100644 --- a/05_langchain_advanced/06_streaming.py +++ b/05_langchain_advanced/06_streaming.py @@ -1,3 +1,5 @@ +# 目前:已经测试到05_文件夹,代码测试完毕能跑通,但新旧写法尚未确定,明天要改写法+改博客 + from config import OPENAI_API_KEY from langchain_openai import ChatOpenAI from langchain_classic.agents import AgentExecutor diff --git a/08_langgraph_basics/01_workflow.png b/08_langgraph_basics/01_workflow.png index 1394b48cee58614ed114e20c58daca7fc2a07b8b..775f134d8ea12d01f0fdab47c5f7e5e3d2ed5c8f 100644 GIT binary patch literal 6746 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 literal 6449 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