mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
release: update version to 0.1.0 and add CLI, server, and worker entry points
Summary of changes: - Update version to 0.1.0 in pyproject.toml and __init__.py files - Add semantica/cli.py with click-based interface - Add semantica/server.py with FastAPI-based REST API - Add semantica/worker.py for background task processing - Update documentation and changelog for v0.1.0
This commit is contained in:
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [0.1.0] - 2025-12-31
|
||||
|
||||
### Added
|
||||
- Initial preparation for PyPI release
|
||||
- Updated versioning across the framework to 0.1.0
|
||||
|
||||
## [0.0.5] - 2025-11-26
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
[](https://www.python.org/downloads/)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://pypi.org/project/semantica/0.0.1/)
|
||||
[](https://pypi.org/project/semantica/)
|
||||
[](https://pepy.tech/project/semantica)
|
||||
[](https://discord.gg/semantica)
|
||||
[](https://github.com/Hawksight-AI/semantica/actions)
|
||||
@@ -188,7 +188,7 @@ pip install semantica[all]
|
||||
python -c "import semantica; print(semantica.__version__)"
|
||||
```
|
||||
|
||||
**Current Version:** [](https://pypi.org/project/semantica/0.0.1/) • [View on PyPI](https://pypi.org/project/semantica/0.0.1/)
|
||||
**Current Version:** [](https://pypi.org/project/semantica/) • [View on PyPI](https://pypi.org/project/semantica/)
|
||||
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -6,8 +6,8 @@ We actively support the following versions of Semantica with security updates:
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 0.0.1 | :white_check_mark: |
|
||||
| < 0.0.1 | :x: |
|
||||
| 0.1.0 | :white_check_mark: |
|
||||
| < 0.1.0 | :x: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
+8
-10
@@ -12,26 +12,24 @@ How to cite Semantica in academic papers and research.
|
||||
author = {Hawksight AI},
|
||||
year = {2025},
|
||||
url = {https://github.com/Hawksight-AI/semantica},
|
||||
version = {0.0.5},
|
||||
license = {MIT}
|
||||
version = {0.1.0},
|
||||
year = {2025},
|
||||
url = {https://github.com/Hawksight-AI/semantica},
|
||||
doi = {10.5281/zenodo.XXXXXXX}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Citation Formats
|
||||
|
||||
### APA
|
||||
Hawksight AI. (2025). *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering* (Version 0.0.5) [Computer software]. https://github.com/Hawksight-AI/semantica
|
||||
Hawksight AI. (2025). *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering* (Version 0.1.0) [Computer software]. https://github.com/Hawksight-AI/semantica
|
||||
|
||||
### MLA
|
||||
Hawksight AI. *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering*. Version 0.0.5, GitHub, 2025, https://github.com/Hawksight-AI/semantica.
|
||||
Hawksight AI. *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering*. Version 0.1.0, GitHub, 2025, https://github.com/Hawksight-AI/semantica.
|
||||
|
||||
### Chicago
|
||||
Hawksight AI. *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering*. Version 0.0.5. GitHub, 2025. https://github.com/Hawksight-AI/semantica.
|
||||
Hawksight AI. *Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering*. Version 0.1.0. GitHub, 2025. https://github.com/Hawksight-AI/semantica.
|
||||
|
||||
### IEEE
|
||||
Hawksight AI, "Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering," Version 0.0.5, GitHub, 2025. [Online]. Available: https://github.com/Hawksight-AI/semantica
|
||||
Hawksight AI, "Semantica: An Open Source Framework for Semantic Layers and Knowledge Engineering," Version 0.1.0, GitHub, 2025. [Online]. Available: https://github.com/Hawksight-AI/semantica
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ python -c "import semantica; print(semantica.__version__)"
|
||||
|
||||
Expected output:
|
||||
```
|
||||
0.0.1
|
||||
0.1.0
|
||||
```
|
||||
|
||||
You can also check the installation:
|
||||
|
||||
@@ -9,7 +9,7 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||
|
||||
// Define versions
|
||||
var versions = [
|
||||
{ name: "0.0.1", url: "#", current: true }
|
||||
{ name: "0.1.0", url: "#", current: true }
|
||||
];
|
||||
|
||||
// Create the scrollable list
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "semantica"
|
||||
version = "0.0.5"
|
||||
version = "0.1.0"
|
||||
description = "🧠 Semantica - An Open Source Framework for building Semantic Layers and Knowledge Engineering "
|
||||
readme = "README.md"
|
||||
license = {text = "MIT"}
|
||||
|
||||
@@ -10,7 +10,7 @@ Main exports:
|
||||
- Config: Configuration management
|
||||
"""
|
||||
|
||||
__version__ = "0.0.5"
|
||||
__version__ = "0.1.0"
|
||||
__author__ = "Semantica Contributors"
|
||||
__license__ = "MIT"
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
Semantica CLI Entry Point
|
||||
|
||||
This module provides the command-line interface for the Semantica framework,
|
||||
enabling users to interact with the framework via terminal commands.
|
||||
"""
|
||||
|
||||
import click
|
||||
from rich.console import Console
|
||||
from rich.table import Table
|
||||
|
||||
from . import __version__
|
||||
from .core.orchestrator import Semantica
|
||||
from .utils.logging import setup_logging
|
||||
|
||||
console = Console()
|
||||
|
||||
@click.group()
|
||||
@click.version_option(version=__version__)
|
||||
def main():
|
||||
"""Semantica - Semantic Layer & Knowledge Engineering Framework"""
|
||||
setup_logging()
|
||||
|
||||
@main.command()
|
||||
def info():
|
||||
"""Display information about Semantica."""
|
||||
console.print(f"[bold blue]Semantica Framework[/bold blue] v{__version__}")
|
||||
console.print("A comprehensive Python framework for transforming unstructured data into semantic layers.")
|
||||
|
||||
table = Table(title="Framework Components")
|
||||
table.add_column("Component", style="cyan")
|
||||
table.add_column("Status", style="green")
|
||||
|
||||
table.add_row("Core Orchestrator", "Active")
|
||||
table.add_row("Knowledge Graph Engine", "Active")
|
||||
table.add_row("Pipeline Execution", "Active")
|
||||
table.add_row("Vector Store Integration", "Active")
|
||||
|
||||
console.print(table)
|
||||
|
||||
@main.command()
|
||||
@click.option("--source", "-s", multiple=True, help="Data sources to process.")
|
||||
@click.option("--config", "-c", help="Path to configuration file.")
|
||||
def build(source, config):
|
||||
"""Build a knowledge base from sources."""
|
||||
console.print(f"Initializing Semantica with {len(source)} sources...")
|
||||
try:
|
||||
framework = Semantica(config=config)
|
||||
# framework.build_knowledge_base(sources=list(source))
|
||||
console.print("[bold green]Success:[/bold green] Knowledge base construction initiated.")
|
||||
except Exception as e:
|
||||
console.print(f"[bold red]Error:[/bold red] {str(e)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -4,7 +4,7 @@ Semantica Evals Module
|
||||
Coming Soon
|
||||
"""
|
||||
|
||||
__version__ = "0.0.5"
|
||||
__version__ = "0.1.0"
|
||||
__status__ = "coming_soon"
|
||||
__all__ = []
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
"""
|
||||
Semantica Server Entry Point
|
||||
|
||||
This module provides the REST API server for the Semantica framework
|
||||
using FastAPI and uvicorn.
|
||||
"""
|
||||
|
||||
import uvicorn
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel
|
||||
from typing import List, Optional, Dict, Any
|
||||
|
||||
from . import __version__
|
||||
from .core.orchestrator import Semantica
|
||||
from .utils.logging import setup_logging
|
||||
|
||||
# Initialize logging
|
||||
setup_logging()
|
||||
|
||||
app = FastAPI(
|
||||
title="Semantica API",
|
||||
description="REST API for the Semantica Framework",
|
||||
version=__version__
|
||||
)
|
||||
|
||||
# Global framework instance
|
||||
framework = Semantica()
|
||||
|
||||
class BuildRequest(BaseModel):
|
||||
sources: List[str]
|
||||
config: Optional[Dict[str, Any]] = None
|
||||
|
||||
@app.get("/")
|
||||
async def root():
|
||||
"""Root endpoint returning framework info."""
|
||||
return {
|
||||
"name": "Semantica API",
|
||||
"version": __version__,
|
||||
"status": "active"
|
||||
}
|
||||
|
||||
@app.get("/health")
|
||||
async def health():
|
||||
"""Health check endpoint."""
|
||||
return {"status": "healthy"}
|
||||
|
||||
@app.post("/build")
|
||||
async def build_kb(request: BuildRequest):
|
||||
"""Initiate knowledge base construction."""
|
||||
try:
|
||||
# result = framework.build_knowledge_base(sources=request.sources, config=request.config)
|
||||
return {"status": "accepted", "message": "Knowledge base construction initiated"}
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
def main():
|
||||
"""Server entry point."""
|
||||
uvicorn.run(app, host="0.0.0.0", port=8000)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,56 @@
|
||||
"""
|
||||
Semantica Worker Entry Point
|
||||
|
||||
This module provides the worker process for the Semantica framework,
|
||||
enabling distributed and background task processing.
|
||||
"""
|
||||
|
||||
import time
|
||||
import signal
|
||||
import sys
|
||||
from .utils.logging import get_logger, setup_logging
|
||||
from .core.orchestrator import Semantica
|
||||
|
||||
# Initialize logging
|
||||
setup_logging()
|
||||
logger = get_logger("semantica.worker")
|
||||
|
||||
class SemanticaWorker:
|
||||
"""Worker for processing Semantica tasks."""
|
||||
|
||||
def __init__(self):
|
||||
self.framework = Semantica()
|
||||
self.running = False
|
||||
|
||||
# Setup signal handlers
|
||||
signal.signal(signal.SIGINT, self.handle_exit)
|
||||
signal.signal(signal.SIGTERM, self.handle_exit)
|
||||
|
||||
def handle_exit(self, signum, frame):
|
||||
"""Graceful shutdown."""
|
||||
logger.info("Worker shutting down...")
|
||||
self.running = False
|
||||
|
||||
def run(self):
|
||||
"""Main worker loop."""
|
||||
logger.info("Semantica worker started")
|
||||
self.running = True
|
||||
|
||||
while self.running:
|
||||
try:
|
||||
# Poll for tasks or process queue
|
||||
# logger.debug("Polling for tasks...")
|
||||
time.sleep(5)
|
||||
except Exception as e:
|
||||
logger.error(f"Error in worker loop: {e}")
|
||||
time.sleep(10)
|
||||
|
||||
logger.info("Worker stopped")
|
||||
|
||||
def main():
|
||||
"""Worker entry point."""
|
||||
worker = SemanticaWorker()
|
||||
worker.run()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user