重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。 主要变更: - 引入全局记忆作用域,简化记忆管理 - 实现记忆指纹去重,避免重复记忆存储 - 新增查询规划器,支持语义查询规划和记忆类型过滤 - 优化多阶段检索,增加语义重排和权重配置 - 改进向量存储,支持嵌入维度自动解析和查询向量生成 - 增强元数据索引,支持主体索引和更新操作 - 记忆构建器支持多主体和自然语言展示 - 移除watchdog依赖和插件热重载模块 - 更新配置模板,简化记忆配置项 BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
127 lines
6.9 KiB
Python
127 lines
6.9 KiB
Python
# -*- coding: utf-8 -*-
|
||
"""
|
||
本模块包含一个从Python包的“安装名”到其“导入名”的映射。
|
||
|
||
这个映射表主要用于解决一个常见问题:某些Python包通过pip安装时使用的名称
|
||
与在代码中`import`时使用的名称不一致。例如,我们使用`pip install beautifulsoup4`
|
||
来安装,但在代码中却需要`import bs4`。
|
||
|
||
当插件系统检查依赖时,如果一个开发者只简单地在依赖列表中写了安装名
|
||
(例如 "beautifulsoup4"),标准的导入检查`import('beautifulsoup4')`会失败。
|
||
通过这个映射表,依赖管理器可以在初次导入检查失败后,查询是否存在一个
|
||
已知的别名(例如 "bs4"),并尝试使用该别名进行二次导入检查。
|
||
|
||
这样做的好处是:
|
||
1. 提升开发者体验:插件开发者无需强制记忆这些特殊的名称对应关系,或者强制
|
||
使用更复杂的`PythonDependency`对象来分别指定安装名和导入名。
|
||
2. 增强系统健壮性:减少因名称不一致导致的插件加载失败问题。
|
||
3. 兼容性:对遵循最佳实践、正确指定了`package_name`和`install_name`的
|
||
开发者没有任何影响。
|
||
|
||
开发者可以持续向这个列表中贡献新的映射关系,使其更加完善。
|
||
"""
|
||
|
||
INSTALL_NAME_TO_IMPORT_NAME = {
|
||
# ============== 数据科学与机器学习 (Data Science & Machine Learning) ==============
|
||
"scikit-learn": "sklearn", # 机器学习库
|
||
"scikit-image": "skimage", # 图像处理库
|
||
"opencv-python": "cv2", # OpenCV 计算机视觉库
|
||
"opencv-contrib-python": "cv2", # OpenCV 扩展模块
|
||
"tensorflow-gpu": "tensorflow", # TensorFlow GPU版本
|
||
"tensorboardx": "tensorboardX", # TensorBoard 的封装
|
||
"torchvision": "torchvision", # PyTorch 视觉库 (通常与 torch 一起)
|
||
"torchaudio": "torchaudio", # PyTorch 音频库
|
||
"catboost": "catboost", # CatBoost 梯度提升库
|
||
"lightgbm": "lightgbm", # LightGBM 梯度提升库
|
||
"xgboost": "xgboost", # XGBoost 梯度提升库
|
||
"imbalanced-learn": "imblearn", # 处理不平衡数据集
|
||
"seqeval": "seqeval", # 序列标注评估
|
||
"gensim": "gensim", # 主题建模和NLP
|
||
"nltk": "nltk", # 自然语言工具包
|
||
"spacy": "spacy", # 工业级自然语言处理
|
||
"fuzzywuzzy": "fuzzywuzzy", # 模糊字符串匹配
|
||
"python-levenshtein": "Levenshtein", # Levenshtein 距离计算
|
||
# ============== Web开发与API (Web Development & API) ==============
|
||
"python-socketio": "socketio", # Socket.IO 服务器和客户端
|
||
"python-engineio": "engineio", # Engine.IO 底层库
|
||
"aiohttp": "aiohttp", # 异步HTTP客户端/服务器
|
||
"python-multipart": "multipart", # 解析 multipart/form-data
|
||
"uvloop": "uvloop", # 高性能asyncio事件循环
|
||
"httptools": "httptools", # 高性能HTTP解析器
|
||
"websockets": "websockets", # WebSocket实现
|
||
"fastapi": "fastapi", # 高性能Web框架
|
||
"starlette": "starlette", # ASGI框架
|
||
"uvicorn": "uvicorn", # ASGI服务器
|
||
"gunicorn": "gunicorn", # WSGI服务器
|
||
"django-rest-framework": "rest_framework", # Django REST框架
|
||
"django-cors-headers": "corsheaders", # Django CORS处理
|
||
"flask-jwt-extended": "flask_jwt_extended", # Flask JWT扩展
|
||
"flask-sqlalchemy": "flask_sqlalchemy", # Flask SQLAlchemy扩展
|
||
"flask-migrate": "flask_migrate", # Flask Alembic迁移扩展
|
||
"python-jose": "jose", # JOSE (JWT, JWS, JWE) 实现
|
||
"passlib": "passlib", # 密码哈希库
|
||
"bcrypt": "bcrypt", # Bcrypt密码哈希
|
||
# ============== 数据库 (Database) ==============
|
||
"mysql-connector-python": "mysql.connector", # MySQL官方驱动
|
||
"psycopg2-binary": "psycopg2", # PostgreSQL驱动 (二进制)
|
||
"pymongo": "pymongo", # MongoDB驱动
|
||
"redis": "redis", # Redis客户端
|
||
"aioredis": "aioredis", # 异步Redis客户端
|
||
"sqlalchemy": "sqlalchemy", # SQL工具包和ORM
|
||
"alembic": "alembic", # SQLAlchemy数据库迁移工具
|
||
"tortoise-orm": "tortoise", # 异步ORM
|
||
# ============== 图像与多媒体 (Image & Multimedia) ==============
|
||
"Pillow": "PIL", # Python图像处理库 (PIL Fork)
|
||
"moviepy": "moviepy", # 视频编辑库
|
||
"pydub": "pydub", # 音频处理库
|
||
"pycairo": "cairo", # Cairo 2D图形库的Python绑定
|
||
"wand": "wand", # ImageMagick的Python绑定
|
||
# ============== 解析与序列化 (Parsing & Serialization) ==============
|
||
"beautifulsoup4": "bs4", # HTML/XML解析库
|
||
"lxml": "lxml", # 高性能HTML/XML解析库
|
||
"PyYAML": "yaml", # YAML解析库
|
||
"python-dotenv": "dotenv", # .env文件解析
|
||
"python-dateutil": "dateutil", # 强大的日期时间解析
|
||
"protobuf": "google.protobuf", # Protocol Buffers
|
||
"msgpack": "msgpack", # MessagePack序列化
|
||
"orjson": "orjson", # 高性能JSON库
|
||
"pydantic": "pydantic", # 数据验证和设置管理
|
||
# ============== 系统与硬件 (System & Hardware) ==============
|
||
"pyserial": "serial", # 串口通信
|
||
"pyusb": "usb", # USB访问
|
||
"pybluez": "bluetooth", # 蓝牙通信 (可能因平台而异)
|
||
"psutil": "psutil", # 系统信息和进程管理
|
||
"python-gnupg": "gnupg", # GnuPG的Python接口
|
||
# ============== 加密与安全 (Cryptography & Security) ==============
|
||
"pycrypto": "Crypto", # 加密库 (较旧)
|
||
"pycryptodome": "Crypto", # PyCrypto的现代分支
|
||
"cryptography": "cryptography", # 现代加密库
|
||
"pyopenssl": "OpenSSL", # OpenSSL的Python接口
|
||
"service-identity": "service_identity", # 服务身份验证
|
||
# ============== 工具与杂项 (Utilities & Miscellaneous) ==============
|
||
"setuptools": "setuptools", # 打包工具
|
||
"pip": "pip", # 包安装器
|
||
"tqdm": "tqdm", # 进度条
|
||
"regex": "regex", # 替代的正则表达式引擎
|
||
"colorama": "colorama", # 跨平台彩色终端文本
|
||
"termcolor": "termcolor", # 终端颜色格式化
|
||
"requests-oauthlib": "requests_oauthlib", # OAuth for Requests
|
||
"oauthlib": "oauthlib", # 通用OAuth库
|
||
"authlib": "authlib", # OAuth和OpenID Connect客户端/服务器
|
||
"pyjwt": "jwt", # JSON Web Token实现
|
||
"python-editor": "editor", # 程序化地调用编辑器
|
||
"prompt-toolkit": "prompt_toolkit", # 构建交互式命令行
|
||
"pygments": "pygments", # 语法高亮
|
||
"tabulate": "tabulate", # 生成漂亮的表格
|
||
"nats-client": "nats", # NATS客户端
|
||
"gitpython": "git", # Git的Python接口
|
||
"pygithub": "github", # GitHub API v3的Python接口
|
||
"python-gitlab": "gitlab", # GitLab API的Python接口
|
||
"jira": "jira", # JIRA API的Python接口
|
||
"python-jenkins": "jenkins", # Jenkins API的Python接口
|
||
"huggingface-hub": "huggingface_hub", # Hugging Face Hub API
|
||
"apache-airflow": "airflow", # Airflow工作流管理
|
||
"pandas-stubs": "pandas-stubs", # Pandas的类型存根
|
||
"data-science-types": "data_science_types", # 数据科学类型
|
||
}
|