mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-09-09 04:00:52 +00:00
Set FastEmbed as default embedding provider in TextEmbedder. Updated dependencies in pyproject.toml. Refreshed Context Module notebook and documentation to reflect changes. Added verification tests.
291 lines
7.0 KiB
TOML
291 lines
7.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "semantica"
|
|
version = "0.0.5"
|
|
description = "🧠 Semantica - An Open Source Framework for building Semantic Layers and Knowledge Engineering "
|
|
readme = "README.md"
|
|
license = {text = "MIT"}
|
|
authors = [
|
|
{name = "Hawksight AI", email = "semantica-dev@users.noreply.github.com"}
|
|
]
|
|
maintainers = [
|
|
{name = "Hawksight AI", email = "semantica-dev@users.noreply.github.com"}
|
|
]
|
|
requires-python = ">=3.8"
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: Science/Research",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Programming Language :: Python :: 3.9",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
"Topic :: Text Processing :: Linguistic",
|
|
"Topic :: Database :: Database Engines/Servers",
|
|
"Topic :: Internet :: WWW/HTTP :: Indexing/Search"
|
|
]
|
|
keywords = [
|
|
"semantic-layer", "knowledge-engineering", "nlp", "knowledge-graph",
|
|
"embeddings", "entity-extraction", "relationship-extraction", "rdf",
|
|
"ontology", "semantic-analysis", "ai", "machine-learning"
|
|
]
|
|
dependencies = [
|
|
"numpy>=1.21.0",
|
|
"pandas>=1.3.0",
|
|
"scikit-learn>=1.0.0",
|
|
"umap-learn>=0.5.0",
|
|
"spacy>=3.4.0",
|
|
"transformers>=4.20.0",
|
|
"torch>=1.12.0",
|
|
"sentence-transformers>=2.2.0",
|
|
"rdflib>=6.2.0",
|
|
"networkx>=2.8.0",
|
|
"matplotlib>=3.5.0",
|
|
"seaborn>=0.11.0",
|
|
"plotly>=5.10.0",
|
|
"requests>=2.28.0",
|
|
"beautifulsoup4>=4.11.0",
|
|
"lxml>=4.9.0",
|
|
"pypdf2>=2.10.0",
|
|
"python-docx>=0.8.11",
|
|
"openpyxl>=3.0.10",
|
|
"pillow>=9.2.0",
|
|
"librosa>=0.9.0",
|
|
"opencv-python>=4.6.0",
|
|
"faiss-cpu>=1.7.0",
|
|
"fastembed>=0.2.0",
|
|
"weaviate-client>=3.15.0",
|
|
"qdrant-client>=1.3.0",
|
|
"neo4j>=5.0.0",
|
|
"falkordb>=1.0.0",
|
|
"pymongo>=4.2.0",
|
|
"sqlalchemy>=1.4.0",
|
|
"psycopg2-binary>=2.9.0",
|
|
"pymysql>=1.0.0",
|
|
"redis>=4.3.0",
|
|
"celery>=5.2.0",
|
|
"kafka-python>=2.0.0",
|
|
"pulsar-client>=3.0.0",
|
|
"pika>=1.3.0",
|
|
"boto3>=1.24.0",
|
|
"azure-storage-blob>=12.12.0",
|
|
"google-cloud-storage>=2.5.0",
|
|
"pydantic>=1.10.0",
|
|
"click>=8.1.0",
|
|
"rich>=12.5.0",
|
|
"tqdm>=4.64.0",
|
|
"pyyaml>=6.0",
|
|
"toml>=0.10.0",
|
|
"python-dotenv>=0.20.0",
|
|
"loguru>=0.6.0",
|
|
"structlog>=22.1.0",
|
|
"prometheus-client>=0.14.0",
|
|
"opentelemetry-api>=1.12.0",
|
|
"opentelemetry-sdk>=1.12.0",
|
|
"opentelemetry-instrumentation",
|
|
"fastapi>=0.78.0",
|
|
"uvicorn>=0.18.0",
|
|
"pytest>=7.1.0",
|
|
"pytest-cov>=3.0.0",
|
|
"pytest-asyncio>=0.19.0",
|
|
"black>=22.6.0",
|
|
"isort>=5.10.0",
|
|
"flake8>=4.0.0",
|
|
"mypy>=0.971",
|
|
"pre-commit>=2.19.0"
|
|
]
|
|
[project.urls]
|
|
Homepage = "https://github.com/Hawksight-AI/semantica"
|
|
Repository = "https://github.com/Hawksight-AI/semantica"
|
|
"Bug Tracker" = "https://github.com/Hawksight-AI/semantica/issues"
|
|
Discussions = "https://github.com/Hawksight-AI/semantica/discussions"
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=7.1.0",
|
|
"pytest-cov>=3.0.0",
|
|
"pytest-asyncio>=0.19.0",
|
|
"black>=22.6.0",
|
|
"isort>=5.10.0",
|
|
"flake8>=4.0.0",
|
|
"mypy>=0.971",
|
|
"pre-commit>=2.19.0",
|
|
"jupyter>=1.0.0",
|
|
"ipykernel>=6.15.0",
|
|
"notebook>=6.4.0"
|
|
]
|
|
viz = [
|
|
"pyvis>=0.3.0",
|
|
"graphviz>=0.20.0",
|
|
"umap-learn>=0.5.0"
|
|
]
|
|
gpu = [
|
|
"torch>=1.12.0",
|
|
"faiss-gpu>=1.7.0",
|
|
"cupy>=10.0.0"
|
|
]
|
|
cloud = [
|
|
"boto3>=1.24.0",
|
|
"azure-storage-blob>=12.12.0",
|
|
"google-cloud-storage>=2.5.0",
|
|
"kubernetes>=24.0.0",
|
|
"helm>=3.10.0"
|
|
]
|
|
monitoring = [
|
|
"prometheus-client>=0.14.0",
|
|
"opentelemetry-api>=1.12.0",
|
|
"opentelemetry-sdk>=1.12.0",
|
|
"opentelemetry-instrumentation>=0.32.0",
|
|
"grafana-api>=1.0.0",
|
|
"elasticsearch>=8.5.0"
|
|
]
|
|
llm-openai = [
|
|
"openai>=1.0.0"
|
|
]
|
|
llm-gemini = [
|
|
"google-generativeai>=0.3.0"
|
|
]
|
|
llm-groq = [
|
|
"groq>=0.4.0"
|
|
]
|
|
llm-anthropic = [
|
|
"anthropic>=0.18.0"
|
|
]
|
|
llm-ollama = [
|
|
"ollama>=0.1.0"
|
|
]
|
|
llm-all = [
|
|
"semantica[llm-openai,llm-gemini,llm-groq,llm-anthropic,llm-ollama]"
|
|
]
|
|
models-huggingface = [
|
|
"transformers>=4.20.0",
|
|
"torch>=1.12.0"
|
|
]
|
|
split-tiktoken = [
|
|
"tiktoken>=0.5.0"
|
|
]
|
|
split-community = [
|
|
"python-louvain>=0.16"
|
|
]
|
|
split-topic = [
|
|
"bertopic>=0.15.0",
|
|
"gensim>=4.3.0"
|
|
]
|
|
split-all = [
|
|
"semantica[split-tiktoken,split-community,split-topic]"
|
|
]
|
|
graph-neo4j = [
|
|
"neo4j>=5.0.0"
|
|
]
|
|
graph-falkordb = [
|
|
"falkordb>=1.0.0",
|
|
"redis>=4.3.0"
|
|
]
|
|
graph-all = [
|
|
"semantica[graph-neo4j,graph-falkordb]"
|
|
]
|
|
all = [
|
|
"semantica[dev,viz,gpu,cloud,monitoring,llm-all,models-huggingface,split-all,graph-all]"
|
|
]
|
|
|
|
[project.scripts]
|
|
semantica = "semantica.cli:main"
|
|
semantica-server = "semantica.server:main"
|
|
semantica-worker = "semantica.worker:main"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["semantica*"]
|
|
exclude = ["tests*", "docs*", "examples*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
semantica = ["*.yaml", "*.yml", "*.json", "*.toml", "*.txt", "*.md"]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
|
|
include = '\.pyi?$'
|
|
extend-exclude = '''
|
|
/(
|
|
# directories
|
|
\.eggs
|
|
| \.git
|
|
| \.hg
|
|
| \.mypy_cache
|
|
| \.tox
|
|
| \.venv
|
|
| build
|
|
| dist
|
|
)/
|
|
'''
|
|
|
|
[tool.isort]
|
|
profile = "black"
|
|
multi_line_output = 3
|
|
line_length = 88
|
|
known_first_party = ["semantica"]
|
|
known_third_party = ["numpy", "pandas", "scikit-learn", "spacy", "transformers", "torch"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.9"
|
|
warn_return_any = true
|
|
warn_unused_configs = true
|
|
disallow_untyped_defs = true
|
|
disallow_incomplete_defs = true
|
|
check_untyped_defs = true
|
|
disallow_untyped_decorators = true
|
|
no_implicit_optional = true
|
|
warn_redundant_casts = true
|
|
warn_unused_ignores = true
|
|
warn_no_return = true
|
|
warn_unreachable = true
|
|
strict_equality = true
|
|
show_error_codes = true
|
|
|
|
[tool.pytest.ini_options]
|
|
minversion = "7.0"
|
|
addopts = "-ra -q --strict-markers --strict-config"
|
|
testpaths = ["tests"]
|
|
python_files = ["test_*.py", "*_test.py"]
|
|
python_classes = ["Test*"]
|
|
python_functions = ["test_*"]
|
|
markers = [
|
|
"slow: marks tests as slow (deselect with '-m \"not slow\"')",
|
|
"integration: marks tests as integration tests",
|
|
"unit: marks tests as unit tests",
|
|
"gpu: marks tests that require GPU",
|
|
"cloud: marks tests that require cloud services"
|
|
]
|
|
|
|
[tool.coverage.run]
|
|
source = ["semantica"]
|
|
omit = [
|
|
"*/tests/*",
|
|
"*/test_*",
|
|
"*/__pycache__/*",
|
|
"*/migrations/*"
|
|
]
|
|
|
|
[tool.coverage.report]
|
|
exclude_lines = [
|
|
"pragma: no cover",
|
|
"def __repr__",
|
|
"if self.debug:",
|
|
"if settings.DEBUG",
|
|
"raise AssertionError",
|
|
"raise NotImplementedError",
|
|
"if 0:",
|
|
"if __name__ == .__main__.:",
|
|
"class .*\\bProtocol\\):",
|
|
"@(abc\\.)?abstractmethod"
|
|
]
|