359 lines
7.7 KiB
Markdown
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)
|
|
```
|