Metadata-Version: 2.4
Name: arke-terminal
Version: 0.1.113
Summary: Local-first RAG with built-in eval.
Project-URL: Repository, https://github.com/padolgot/arke-terminal
Author-email: Pavel Dolgoter <mikepromogratus@proton.me>
License-Expression: MIT
License-File: LICENSE
Keywords: embeddings,eval,local,pgvector,rag,search
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.12
Requires-Dist: asyncpg>=0.29
Requires-Dist: click>=8.1
Requires-Dist: fastapi>=0.115
Requires-Dist: httpx>=0.27
Requires-Dist: numpy>=2.0
Requires-Dist: pgvector>=0.3
Requires-Dist: python-dotenv>=1.0
Requires-Dist: uvicorn>=0.34
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# Arke Terminal

Local RAG pipeline with built-in evaluation. Postgres + pgvector for hybrid search, Ollama for embeddings and inference.

## Install

```bash
pip install arke-terminal
```

Requires Python 3.12+, Postgres with `pgvector`, and [Ollama](https://ollama.com).

Copy `.env.example` to `.env` and fill in your values:

```bash
cp .env.example .env
```

## Usage

```bash
arke digest
arke ingest <file.jsonl>
arke ask "query"
arke sweep <fast|medium|thorough> --limit 30
```

## Library

```python
from arke import Arke, Config

cfg = Config(database_url="postgresql://...", api_key="sk-...")

async with Arke(cfg) as m:
    await m.ingest("./corpus")
    answer = await m.ask("What is X?")

rows = await Arke.sweep(cfg, "medium", limit=30)
```

## Input format

JSONL, one document per line:

```json
{"content": "...", "source": "optional", "created_at": "2026-04-01T12:00:00Z", "metadata": {}}
```

Only `content` is required. `source` falls back to the file stem, `created_at` to the current time, `metadata` to `{}`.
