setup project structure
This commit is contained in:
68
README.md
68
README.md
@@ -1,6 +1,6 @@
|
||||
# Gamayun
|
||||
|
||||

|
||||

|
||||
|
||||
## Concept
|
||||
|
||||
@@ -31,11 +31,73 @@ Client-Server Separation: Compute-intensive operations (embedding generation, LL
|
||||
- Deployment in air-gapped labs
|
||||
- Efficient resource utilization (centralized compute nodes can serve multiple investigators)
|
||||
|
||||
## Development Setup
|
||||
|
||||
## 🛠 Development Setup
|
||||
|
||||
This project uses [uv](https://github.com/astral-sh/uv) for fast dependency management and the modern "Src Layout" structure.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- Python 3.13+
|
||||
- [uv](https://github.com/astral-sh/uv) installed (`curl -LsSf https://astral.sh/uv/install.sh | sh`)
|
||||
|
||||
### Installation Steps
|
||||
|
||||
1. **Clone the repository**
|
||||
|
||||
```bash
|
||||
git clone <your-repo-url>
|
||||
cd gamayun
|
||||
```
|
||||
|
||||
2. **Create a virtual environment**
|
||||
This project requires Python 3.13.
|
||||
|
||||
```bash
|
||||
uv venv --python 3.13
|
||||
```
|
||||
|
||||
3. **Activate the environment**
|
||||
|
||||
- Linux/macOS:
|
||||
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
- Windows:
|
||||
|
||||
```powershell
|
||||
.venv\Scripts\activate
|
||||
```
|
||||
|
||||
4. **Install dependencies**
|
||||
This command installs locked dependencies and links the local `gamayun` package in editable mode.
|
||||
|
||||
```bash
|
||||
uv pip install -r requirements.txt -e .
|
||||
```
|
||||
|
||||
### Running the Application
|
||||
|
||||
You can execute the module directly:
|
||||
|
||||
```bash
|
||||
python src/gamayun/main.py
|
||||
```
|
||||
|
||||
### Running Tests
|
||||
|
||||
```bash
|
||||
pytest
|
||||
```
|
||||
|
||||
## Data Flow
|
||||
|
||||
### Ingestion Pipeline
|
||||
|
||||
```
|
||||
```bash
|
||||
Raw Evidence Sources
|
||||
├─ Forensic Images (E01, DD, AFF4)
|
||||
├─ Timeline CSV (Timesketch format)
|
||||
@@ -94,7 +156,7 @@ This manifest allows exact reproduction of the index from the same source data.
|
||||
|
||||
### Query Execution Pipeline
|
||||
|
||||
```
|
||||
```bash
|
||||
Natural Language Query
|
||||
"bitcoin transaction after drug deal"
|
||||
│
|
||||
|
||||
29
pyproject.toml
Normal file
29
pyproject.toml
Normal file
@@ -0,0 +1,29 @@
|
||||
[project]
|
||||
name = "gamayun"
|
||||
version = "0.0.0"
|
||||
description = "Scalable vector search engine with focus on post-mortem forensics"
|
||||
authors = [
|
||||
{name = "Mario Stöckl", email = "mstoeck3@hs-mittweida.de"}
|
||||
]
|
||||
readme = "README.md"
|
||||
requires-python = "~=3.13"
|
||||
|
||||
dependencies = [
|
||||
"PySide6~=6.8.0",
|
||||
"qdrant_client~=1.16.1",
|
||||
]
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.hatch.build.targets.wheel]
|
||||
packages = ["src/gamayun"]
|
||||
|
||||
[project.scripts]
|
||||
gamayun-cli = "gamayun.main:main"
|
||||
75
requirements.txt
Normal file
75
requirements.txt
Normal file
@@ -0,0 +1,75 @@
|
||||
# This file was autogenerated by uv via the following command:
|
||||
# uv pip compile pyproject.toml --extra dev -o requirements.txt
|
||||
annotated-types==0.7.0
|
||||
# via pydantic
|
||||
anyio==4.11.0
|
||||
# via httpx
|
||||
certifi==2025.11.12
|
||||
# via
|
||||
# httpcore
|
||||
# httpx
|
||||
grpcio==1.76.0
|
||||
# via qdrant-client
|
||||
h11==0.16.0
|
||||
# via httpcore
|
||||
h2==4.3.0
|
||||
# via httpx
|
||||
hpack==4.1.0
|
||||
# via h2
|
||||
httpcore==1.0.9
|
||||
# via httpx
|
||||
httpx==0.28.1
|
||||
# via qdrant-client
|
||||
hyperframe==6.1.0
|
||||
# via h2
|
||||
idna==3.11
|
||||
# via
|
||||
# anyio
|
||||
# httpx
|
||||
iniconfig==2.3.0
|
||||
# via pytest
|
||||
numpy==2.3.5
|
||||
# via qdrant-client
|
||||
packaging==25.0
|
||||
# via pytest
|
||||
pluggy==1.6.0
|
||||
# via pytest
|
||||
portalocker==3.2.0
|
||||
# via qdrant-client
|
||||
protobuf==6.33.1
|
||||
# via qdrant-client
|
||||
pydantic==2.12.4
|
||||
# via qdrant-client
|
||||
pydantic-core==2.41.5
|
||||
# via pydantic
|
||||
pygments==2.19.2
|
||||
# via pytest
|
||||
pyside6==6.8.3
|
||||
# via gamayun (pyproject.toml)
|
||||
pyside6-addons==6.8.3
|
||||
# via pyside6
|
||||
pyside6-essentials==6.8.3
|
||||
# via
|
||||
# pyside6
|
||||
# pyside6-addons
|
||||
pytest==9.0.1
|
||||
# via gamayun (pyproject.toml)
|
||||
qdrant-client==1.16.1
|
||||
# via gamayun (pyproject.toml)
|
||||
shiboken6==6.8.3
|
||||
# via
|
||||
# pyside6
|
||||
# pyside6-addons
|
||||
# pyside6-essentials
|
||||
sniffio==1.3.1
|
||||
# via anyio
|
||||
typing-extensions==4.15.0
|
||||
# via
|
||||
# grpcio
|
||||
# pydantic
|
||||
# pydantic-core
|
||||
# typing-inspection
|
||||
typing-inspection==0.4.2
|
||||
# via pydantic
|
||||
urllib3==2.5.0
|
||||
# via qdrant-client
|
||||
|
Before Width: | Height: | Size: 5.6 MiB After Width: | Height: | Size: 5.6 MiB |
0
src/gamayun/__init__.py
Normal file
0
src/gamayun/__init__.py
Normal file
0
src/gamayun/main.py
Normal file
0
src/gamayun/main.py
Normal file
Reference in New Issue
Block a user