项目 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 具体导入
# 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 社区包导入
# 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
# Vector Store
from langchain_chroma import Chroma
# Text Splitter
from langchain_text_splitters import RecursiveCharacterTextSplitter
2. Web 框架
| 包名 |
用途 |
streamlit |
Web UI 界面 |
import streamlit as st
3. 配置管理
import yaml
4. 数据处理
import pandas
5. 其他工具
| 包名 |
用途 |
hashlib |
MD5 计算 (标准库) |
os |
文件路径操作 (标准库) |
logging |
日志管理 (标准库) |
time |
时间控制 (标准库) |
typing |
类型提示 (标准库) |
abc |
抽象类 (标准库) |
datetime |
日期时间 (标准库) |
random |
随机数 (标准库) |
二、标准库导入
# 文件与路径
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
import time
import streamlit as st
from agent.react_agent import ReactAgent
01_Agent.py / 02_Stream.py / 03_ReAct.py
from langchain.agents import create_agent
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.tools import tool
agent/react_agent.py
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
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
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
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
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
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
import yaml
from utils.path_tool import get_abs_path
utils/logger_handler.py
import logging
import os
from utils.path_tool import get_abs_path
from datetime import datetime
utils/prompt_loader.py
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
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
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)