mirror of
https://github.com/agentscope-ai/ReMe.git
synced 2026-08-28 05:25:04 +00:00
* feat(file_store): add FAISS-backed local file store implementation - Introduce FaissLocalFileStore class with vector search capabilities using FAISS IndexFlatIP - Implement FAISS index persistence with binary format and JSON id-map sidecar - Add automatic index rebuilding when sidecar files are missing or corrupted - Support tombstone mechanism for efficient deletion and compaction - Register 'faiss' component type in the registry system - Add faiss-cpu dependency requirement to pyproject.toml - Update configuration schema to use simplified parameter structure - Enhance search step to support parameter override from runtime context - Add comprehensive unit tests for FAISS store functionality - Implement fallback to parent methods for basic CRUD operations * refactor(search): simplify parameter retrieval logic - Removed _param method that checked context and kwargs - Directly use self.kwargs.get for all parameter retrievals - Maintained same default values for vector_weight, candidate_multiplier, expand_links, and max_links_per_direction - Reduced code complexity by eliminating redundant context checking logic
158 lines
3.8 KiB
TOML
158 lines
3.8 KiB
TOML
[build-system]
|
|
requires = ["setuptools", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "reme_ai"
|
|
dynamic = ["version"]
|
|
description = "Remember Me, Refine Me."
|
|
authors = [
|
|
{ name = "jinli.yl", email = "jinli.yl@alibaba-inc.com" },
|
|
{ name = "dengjiaji.djj", email = "dengjiaji.djj@alibaba-inc.com" },
|
|
{ name = "caozouying.czy", email = "caozouying.czy@alibaba-inc.com" },
|
|
{ name = "weikangzhou.zwk", email = "weikangzhou.zwk@alibaba-inc.com" },
|
|
]
|
|
license = { file = "LICENSE" }
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
|
|
classifiers = [
|
|
"Development Status :: 4 - Beta",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: Apache Software License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Software Development :: Libraries :: Application Frameworks",
|
|
"Typing :: Typed",
|
|
]
|
|
|
|
keywords = ["llm", "memory", "experience", "memoryscope", "ai", "mcp", "http", "reme", "personal"]
|
|
|
|
dependencies = [
|
|
"aiofiles>=24.1.0",
|
|
"asyncpg>=0.31.0",
|
|
"chromadb>=1.3.5",
|
|
# pyseekdb 1.2+ requires Python >=3.11 (no wheels on 3.10)
|
|
"pyseekdb>=1.2.0; python_version >= '3.11'",
|
|
"dashscope>=1.25.1",
|
|
"elasticsearch>=9.2.0",
|
|
"fastapi>=0.121.3",
|
|
"fastmcp>=2.14.1",
|
|
"httpx>=0.28.1",
|
|
"jieba>=0.42.1",
|
|
"loguru>=0.7.3",
|
|
"mcp>=1.25.0",
|
|
"networkx>=3.4",
|
|
"numpy>=2.2.6",
|
|
"openai>=2.8.1",
|
|
"pandas>=2.3.3",
|
|
"prompt_toolkit>=3.0.52",
|
|
"pydantic>=2.12.4",
|
|
"pyobvector>=0.1.20",
|
|
"pyyaml>=6.0.3",
|
|
"qdrant-client>=1.16.0",
|
|
"rich>=14.2.0",
|
|
"sqlite-vec>=0.1.6",
|
|
# pyobvector imports Expression from sqlglot; removed from sqlglot 30+ top-level API
|
|
"sqlglot>=25,<30",
|
|
"tavily-python>=0.7.13",
|
|
"tiktoken>=0.12.0",
|
|
"tqdm>=4.67.1",
|
|
"transformers>=4.57.3",
|
|
"uvicorn>=0.40.0",
|
|
"watchfiles>=1.1.1",
|
|
"pyyaml>=6.0.3",
|
|
"mistletoe",
|
|
"neo4j",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
ray = [
|
|
"ray",
|
|
]
|
|
|
|
faiss = [
|
|
"faiss-cpu>=1.7.4",
|
|
]
|
|
|
|
dev = [
|
|
"jupyter-book",
|
|
"ghp-import",
|
|
"myst-nb",
|
|
"sphinxcontrib-bibtex",
|
|
"furo",
|
|
"sphinxcontrib-mermaid",
|
|
"pre-commit",
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.23",
|
|
]
|
|
|
|
full = [
|
|
"reme_ai[dev,ray,light]",
|
|
]
|
|
|
|
litellm = [
|
|
"litellm==1.80.0",
|
|
]
|
|
|
|
light = [
|
|
"agentscope==1.0.19",
|
|
"flowllm[reme]>=0.2.0.10",
|
|
]
|
|
|
|
core = [
|
|
"agentscope==1.0.19",
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["reme_ai*", "reme*", "reme4*"]
|
|
exclude = ["test*", "cookbook*", "doc*", "library*", "dist*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
reme_ai = [
|
|
"**/*.yaml",
|
|
"**/*.py",
|
|
"**/*.json",
|
|
]
|
|
|
|
reme = [
|
|
"**/*.yaml",
|
|
"**/*.py",
|
|
"**/*.json",
|
|
]
|
|
|
|
reme4 = [
|
|
"**/*.yaml",
|
|
"**/*.py",
|
|
"**/*.json",
|
|
]
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = { attr = "reme.__version__" }
|
|
|
|
[project.urls]
|
|
Homepage = "https://github.com/agentscope-ai/ReMe"
|
|
Documentation = "https://reme.agentscope.io/"
|
|
Repository = "https://github.com/agentscope-ai/ReMe"
|
|
|
|
[project.scripts]
|
|
reme = "reme_ai.main:main"
|
|
reme2 = "reme.reme:main"
|
|
remecli = "reme.reme_cli:main"
|
|
reme4 = "reme4.reme:main"
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
# Script-style tests that need to be run with `python test_*.py`
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py"]
|
|
python_functions = ["test_*"]
|
|
# Exclude script-style tests that require manual execution
|
|
addopts = "--ignore=tests/test_embedding.py --ignore=tests/test_embedding_cache.py --ignore=tests/test_embedding_sync.py --ignore=tests/test_file_store.py"
|
|
|
|
# python -m build && twine upload dist/*
|