# 项目 Import 包汇总 > 本项目所有 Python 文件中使用的 import 包整理 --- ## 一、第三方包 (pip install) ### 1. LangChain 生态 | 包名 | 用途 | 来源 | |------|------|------| | `langchain` | Agent 核心框架 | `pip install langchain` | | `langchain-core` | 核心抽象类 | `pip install langchain-core` | | `langchain-community` | 第三方集成 (通义千问/DashScope) | `pip install langchain-community` | | `langchain-chroma` | Chroma 向量数据库 | `pip install langchain-chroma` | | `langchain-text-splitters` | 文本分片 | `pip install langchain-text-splitters` | | `langgraph` | 图执行引擎 (中间件) | `pip install langgraph` | ### 1.1 LangChain 具体导入 ```python # Agent from langchain.agents import create_agent, AgentState from langchain.agents.middleware import wrap_tool_call, before_model, dynamic_prompt, ModelRequest # Tools from langchain_core.tools import tool from langchain.tools.tool_node import ToolCallRequest # Messages from langchain_core.messages import ToolMessage # Graph from langgraph.types import Command from langgraph.runtime import Runtime # Prompts from langchain_core.prompts import PromptTemplate # Output Parsers from langchain_core.output_parsers import StrOutputParser # Embeddings from langchain_core.embeddings import Embeddings ``` ### 1.2 社区包导入 ```python # LLM - 通义千问 from langchain_community.chat_models.tongyi import ChatTongyi, BaseChatModel # Embedding - DashScope from langchain_community.embeddings import DashScopeEmbeddings # Document Loaders from langchain_community.document_loaders import PyPDFLoader, TextLoader # Document from langchain_community.docstore.document import Document ``` ### 1.3 Chroma & Text Splitters ```python # Vector Store from langchain_chroma import Chroma # Text Splitter from langchain_text_splitters import RecursiveCharacterTextSplitter ``` --- ### 2. Web 框架 | 包名 | 用途 | |------|------| | `streamlit` | Web UI 界面 | ```python import streamlit as st ``` --- ### 3. 配置管理 | 包名 | 用途 | |------|------| | `yaml` | YAML 配置文件解析 | ```python import yaml ``` --- ### 4. 数据处理 | 包名 | 用途 | |------|------| | `pandas` | 数据处理 (CSV) | ```python import pandas ``` --- ### 5. 其他工具 | 包名 | 用途 | |------|------| | `hashlib` | MD5 计算 (标准库) | | `os` | 文件路径操作 (标准库) | | `logging` | 日志管理 (标准库) | | `time` | 时间控制 (标准库) | | `typing` | 类型提示 (标准库) | | `abc` | 抽象类 (标准库) | | `datetime` | 日期时间 (标准库) | | `random` | 随机数 (标准库) | --- ## 二、标准库导入 ```python # 文件与路径 import os import os.path # 哈希计算 import hashlib # 日志 import logging # 时间 import time # 日期 from datetime import datetime # 随机数 import random # 类型提示 from typing import Optional, List, Callable # 抽象基类 from abc import ABC, abstractmethod ``` --- ## 三、按文件分类的导入 ### app.py ```python import time import streamlit as st from agent.react_agent import ReactAgent ``` ### 01_Agent.py / 02_Stream.py / 03_ReAct.py ```python from langchain.agents import create_agent from langchain_community.chat_models.tongyi import ChatTongyi from langchain_core.tools import tool ``` ### agent/react_agent.py ```python from langchain.agents import create_agent from model.factory import chat_model from utils.prompt_loader import load_system_prompts from agent.tools.agent_tools import (...) from agent.tools.middleware import (...) ``` ### agent/tools/agent_tools.py ```python import pandas from langchain_core.tools import tool from rag.rag_service import RagSummarizeService import random from utils.config_handler import agent_conf from utils.path_tool import get_abs_path from utils.logger_handler import logger import os ``` ### agent/tools/middleware.py ```python from langchain.agents.middleware import wrap_tool_call, before_model, dynamic_prompt, ModelRequest from langchain.tools.tool_node import ToolCallRequest from typing import Callable from langchain_core.messages import ToolMessage from langgraph.types import Command from utils.logger_handler import logger from langchain.agents import AgentState from langgraph.runtime import Runtime from utils.prompt_loader import load_system_prompts, load_report_prompts ``` ### rag/rag_service.py ```python from langchain_core.output_parsers import StrOutputParser from rag.vector_store import VectorStoreSerivce from utils.prompt_loader import load_rag_prompts from langchain_core.prompts import PromptTemplate from model.factory import chat_model from langchain_community.docstore.document import Document from typing import List from utils.logger_handler import logger ``` ### rag/vector_store.py ```python import os.path from langchain_chroma import Chroma from utils.config_handler import chroma_conf from model.factory import embedding_model from langchain_text_splitters import RecursiveCharacterTextSplitter import os from utils.path_tool import get_abs_path from utils.file_handler import pdf_loader, txt_loader, listdir_with_allowed_type, get_file_md5_hex from utils.logger_handler import logger from langchain_community.docstore.document import Document as Documents ``` ### model/factory.py ```python from abc import ABC, abstractmethod from typing import Optional from utils.config_handler import rag_conf from langchain_core.embeddings import Embeddings from langchain_community.chat_models.tongyi import BaseChatModel from langchain_community.chat_models.tongyi import ChatTongyi from langchain_community.embeddings import DashScopeEmbeddings ``` ### utils/config_handler.py ```python import yaml from utils.path_tool import get_abs_path ``` ### utils/logger_handler.py ```python import logging import os from utils.path_tool import get_abs_path from datetime import datetime ``` ### utils/prompt_loader.py ```python from utils.config_handler import prompts_conf from utils.path_tool import get_abs_path from utils.logger_handler import logger ``` ### utils/file_handler.py ```python import hashlib import os from utils.logger_handler import logger from langchain_community.document_loaders import PyPDFLoader, TextLoader from langchain_community.docstore.document import Document from typing import * from utils.path_tool import get_abs_path ``` ### utils/path_tool.py ```python import os ``` --- ## 四、requirements.txt 参考 ``` langchain>=0.3.0 langchain-core>=0.3.0 langchain-community>=0.3.0 langchain-chroma>=0.1.0 langchain-text-splitters>=0.3.0 langgraph>=0.2.0 streamlit pyyaml pandas ``` --- ## 五、包导入拓扑图 ``` 标准库 (内置) ├── os, os.path ├── hashlib ├── logging ├── time ├── datetime ├── random ├── typing ├── abc └── pathlib 第三方包 (pip install) ├── streamlit (Web) ├── yaml (配置) ├── pandas (数据) │ └── LangChain 生态 ├── langchain-core │ ├── tools (tool) │ ├── prompts (PromptTemplate) │ ├── output_parsers (StrOutputParser) │ ├── messages (ToolMessage) │ └── embeddings (Embeddings) │ ├── langchain │ ├── agents (create_agent, AgentState) │ └── agents.middleware │ ├── langchain-community │ ├── chat_models.tongyi (ChatTongyi) │ ├── embeddings (DashScopeEmbeddings) │ ├── document_loaders (PyPDFLoader, TextLoader) │ └── docstore.document (Document) │ ├── langchain-chroma (Chroma) │ └── langchain-text-splitters └── RecursiveCharacterTextSplitter LangGraph ├── types (Command) └── runtime (Runtime) ```