Metadata-Version: 2.4
Name: deslopify
Version: 0.2.0
Summary: Python-библиотека для удаления следов ИИ-генерации в текстах через OpenRouter и PydanticAI
Project-URL: Homepage, https://github.com/vpuhoff/deslopify
Project-URL: Repository, https://github.com/vpuhoff/deslopify
Project-URL: Issues, https://github.com/vpuhoff/deslopify/issues
Author: vpuhoff
License-Expression: MIT
Keywords: ai,deslop,llm,openrouter,pydantic-ai,text
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing
Requires-Python: >=3.10
Requires-Dist: pydantic-ai-slim[openrouter]>=1.101.0
Requires-Dist: pydantic>=2.10
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Description-Content-Type: text/markdown

# deslopify

Python-библиотека для удаления следов ИИ-генерации в текстах. Повторяет трёхэтапный пайплайн сервиса De-slopatizer: черновик → самокритика → финальная версия.

## Установка

```bash
uv sync
cp .env.example .env   # и пропишите OPENROUTER_API_KEY
```

Ключ OpenRouter можно задать в `.env` — библиотека подхватит его при импорте.
Для явной загрузки через uv: `uv run --env-file .env python test_api.py`.

Альтернатива через pip:

```bash
pip install -e ".[dev]"
export OPENROUTER_API_KEY="sk-or-..."
```

## Быстрый старт

```python
import asyncio
from deslopify import deslop, DeslopConfig

async def main():
    result = await deslop(
        "В современном мире искусственный интеллект играет ключевую роль...",
        config=DeslopConfig(model="google/gemini-2.5-flash"),
    )
    print(result.final_text)
    print(result.tokens_consumed)

asyncio.run(main())
```

Синхронно:

```python
from deslopify import deslop_sync

print(deslop_sync("Ваш текст").final_text)
```

## PydanticAI tool

Tool `remove_ai_traces` можно повесить на любого агента:

```python
from pydantic_ai import Agent
from deslopify import DeslopConfig, DeslopToolDeps, create_deslop_tool

config = DeslopConfig()
agent = Agent(
    "openrouter:google/gemini-2.5-flash",
    deps_type=DeslopToolDeps,
    tools=[create_deslop_tool(config)],
)

result = await agent.run(
    "Убери ИИ-следы из текста: ...",
    deps=DeslopToolDeps(config=config),
)
```

Или использовать готового редактора:

```python
from deslopify import DeslopToolDeps, create_deslop_agent, DeslopConfig

config = DeslopConfig()
agent = create_deslop_agent(config=config)
result = await agent.run(
    "Очеловечь этот абзац: ...",
    deps=DeslopToolDeps(config=config),
)
```

## CLI

```bash
uv run deslopify "Текст для обработки"
uv run python test_api.py --text "Ваш текст"
echo "Текст" | uv run deslopify --json
```

## Модель по умолчанию

`google/gemini-2.5-flash` через OpenRouter — как в оригинальном сервисе.
