agent_proj/docs/IMPORTS_SUMMARY.md

359 lines
7.7 KiB
Markdown

# 项目 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)
```