agent_proj/docs/IMPORTS_SUMMARY.md

7.7 KiB

项目 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. 配置管理

包名 用途
yaml YAML 配置文件解析
import yaml

4. 数据处理

包名 用途
pandas 数据处理 (CSV)
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)