mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
Lean, flat, LLM-shaped read-only endpoints over the library: global, video, archive, and doc search; paged captions, archive text, and zim entries; collections, inventories, and a media-directory text reader. Links are server-computed; big content is paged, never truncated. This ports the formatting layer from wrolpi_mcp (untouched for now) into tested code. First phase of ai.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
62 lines
1.3 KiB
Python
62 lines
1.3 KiB
Python
import dataclasses
|
|
from typing import Optional
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AISearchRequest:
|
|
search_str: Optional[str] = None
|
|
limit: int = 5
|
|
offset: int = 0
|
|
mimetypes: Optional[list] = None
|
|
tag_names: Optional[list] = None
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AIVideoSearchRequest:
|
|
search_str: Optional[str] = None
|
|
limit: int = 5
|
|
offset: int = 0
|
|
channel_id: Optional[int] = None
|
|
tag_names: Optional[list] = None
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AIArchiveSearchRequest:
|
|
search_str: Optional[str] = None
|
|
limit: int = 5
|
|
offset: int = 0
|
|
domain: Optional[str] = None
|
|
tag_names: Optional[list] = None
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AIDocSearchRequest:
|
|
search_str: Optional[str] = None
|
|
author: Optional[str] = None
|
|
subject: Optional[str] = None
|
|
language: Optional[str] = None
|
|
mimetype: Optional[str] = None
|
|
limit: int = 5
|
|
offset: int = 0
|
|
tag_names: Optional[list] = None
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AIZimSearchRequest:
|
|
search_str: Optional[str] = None
|
|
zim_id: Optional[int] = None
|
|
limit: int = 5
|
|
offset: int = 0
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AISearchResponse:
|
|
results: list = dataclasses.field(default_factory=list)
|
|
total: int = 0
|
|
|
|
|
|
@dataclasses.dataclass
|
|
class AIPagedTextResponse:
|
|
content: str = ''
|
|
next_offset: Optional[int] = None
|
|
total_chars: int = 0
|