Metadata-Version: 2.4
Name: omnific
Version: 0.8.1
Summary: A local-first AI workspace for long-form fiction writing.
Project-URL: Homepage, https://github.com/F0rJay/OmniFic
Project-URL: Repository, https://github.com/F0rJay/OmniFic
Author-email: F0rJay <C1053127549@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: <3.14,>=3.12
Requires-Dist: aiocache>=0.12.3
Requires-Dist: aiofiles>=22.0
Requires-Dist: aiosqlite>=0.22.0
Requires-Dist: alembic>=1.17.2
Requires-Dist: argon2-cffi>=25.1.0
Requires-Dist: charset-normalizer>=3.4.7
Requires-Dist: cryptography>=46.0.3
Requires-Dist: fastapi>=0.127.0
Requires-Dist: fastembed>=0.8.0
Requires-Dist: greenlet>=3.0
Requires-Dist: gunicorn>=23.0.0
Requires-Dist: itsdangerous>=2.2.0
Requires-Dist: json-repair>=0.60.1
Requires-Dist: lancedb>=0.26.0
Requires-Dist: langchain-amazon-nova>=1.0.1
Requires-Dist: langchain-anthropic>=1.3.1
Requires-Dist: langchain-cohere>=0.5.1
Requires-Dist: langchain-deepseek>=1.0.1
Requires-Dist: langchain-google-genai>=4.1.3
Requires-Dist: langchain-groq>=1.1.2
Requires-Dist: langchain-huggingface>=1.2.2
Requires-Dist: langchain-mistralai>=1.1.1
Requires-Dist: langchain-nvidia-ai-endpoints>=1.4.0
Requires-Dist: langchain-openai>=1.1.6
Requires-Dist: langchain-openrouter>=0.2.3
Requires-Dist: langchain>=1.3.0
Requires-Dist: langgraph-checkpoint-sqlite>=3.0.5
Requires-Dist: langgraph>=1.0.8
Requires-Dist: loguru>=0.7.3
Requires-Dist: mem0ai>=1.0.2
Requires-Dist: nanoid>=2.0.0
Requires-Dist: pillow<12.0,>=8.0
Requires-Dist: pydantic-settings>=2.12.0
Requires-Dist: pyjwt[crypto]>=2.10.1
Requires-Dist: python-multipart>=0.0.21
Requires-Dist: python-socketio[asgi]>=5.11.0
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: pyzmq>=27.1.0
Requires-Dist: sqlalchemy>=2.0.45
Requires-Dist: sqlmodel>=0.0.27
Requires-Dist: starlette-compress>=1.6.1
Requires-Dist: tiktoken>=0.12.0
Requires-Dist: tzdata>=2025.2
Requires-Dist: uvicorn[standard]>=0.40.0
Description-Content-Type: text/markdown

<!-- Modified by OmniFic contributors from OpenFic v0.7.5. -->
# OmniFic Backend

Python FastAPI 后端，提供 REST/SSE API、Agent Runtime、Socket.IO 实时事件、后台任务、检索和数据库管理。

## 技术栈

- **Python** 3.12+
- **FastAPI** — Web 框架
- **SQLAlchemy / SQLModel** — ORM + 数据库模型
- **SQLite** — 本地数据库
- **LangChain / LangGraph** — Agent 框架
- **ZeroMQ** — 后台任务通信
- **httpx** — HTTP 客户端
- **LanceDB / FastEmbed** — RAG 检索与嵌入

## 项目结构

```
backend/app/
├── api/routers/      # REST API 路由
├── agent_runtime/    # Agent 运行时（图、工具、上下文）
├── storage/          # 数据模型、仓库、服务
├── models/           # LLM 客户端、提供商、目录
├── retrieval/        # 章节索引、语义检索与重排
├── background/       # 后台任务、ZeroMQ 传输与事件
├── memory/           # 章节摘要与提示词链运行
├── audit/            # LLM 与工具调用审计
├── macro/            # 提示词宏解析与编译
├── skills/           # Skill 加载
├── socket/           # Socket.IO 服务与事件处理
├── core/             # 工具函数（TXT 解析、文档解析、错误）
├── settings.py       # 应用配置
└── main.py           # 入口
```

## 快速开始

普通用户可以直接安装包含 Web 前端的 PyPI 包：

```bash
python -m pip install --upgrade omnific
omnific serve
```

源码开发：

```bash
cd backend
uv sync
uv run uvicorn app.main:app --host 127.0.0.1 --port 8001 --app-dir .
```

PyPI 包默认监听 `http://127.0.0.1:8000`，数据目录为 `~/.omnific`。完整发行渠道说明见[`docs/installation.md`](../docs/installation.md)。

## 环境变量

| 变量 | 默认值 | 说明 |
|---|---|---|
| `OMNIFIC_SERVER_HOST` | `127.0.0.1` | 监听地址 |
| `OMNIFIC_SERVER_PORT` | `8000` | 监听端口 |
| `OMNIFIC_DATA_DIR` | `backend/data` | 数据目录 |
| `OMNIFIC_FRONTEND_DIST` | `frontend/dist` | 前端构建产物路径 |

## 数据库迁移

```bash
alembic -c alembic.ini upgrade head
alembic -c alembic.ini revision --autogenerate -m "description"
alembic -c alembic.ini downgrade -1
```

## 测试

```bash
pytest
pytest tests/api/test_tasks.py -v
```

## API 路由

| 前缀 | 模块 |
|---|---|
| `/api/v1/projects` | 项目管理 |
| `/api/v1/projects/{project_id}/volumes` | 卷管理 |
| `/api/v1/projects/{project_id}/chapters`, `/api/v1/chapters/{chapter_id}` | 章节管理 |
| `/api/v1/projects/{project_id}/notes`, `/api/v1/notes/{note_id}` | 笔记管理 |
| `/api/v1/characters` | 角色管理 |
| `/api/v1/world-info`, `/api/v1/projects/{project_id}/world-info` | 世界书与条目 |
| `/api/v1/models`, `/api/v1/model-providers` | 模型与供应商 |
| `/api/v1/settings` | 用户设置 |
| `/api/v1/prompt-chains` | 提示词链与版本 |
| `/api/v1/skills`, `/api/v1/agent-rules` | Skill 与规则 |
| `/api/v1/agent-definitions`, `/api/v1/agent-memories` | Agent 配置与记忆 |
| `/api/v1/agent`, `/api/v1/tasks` | Agent 会话与任务 |
| `/api/v1/import` | TXT 导入（SSE 进度） |
| `/api/v1/retrieval/index`, `/api/v1/projects/{project_id}/retrieval/index` | 章节检索索引 |
| `/api/v1/background`, `/api/v1/dashboard`, `/api/v1/audit-logs` | 后台任务、仪表盘与审计 |
