为墨水屏电子阅读器设计的轻量级远程 AI 对话终端
利用墨水屏的护眼特性,打造沉浸式、无干扰的长文阅读与 AI 对话体验。
专为索尼等低性能浏览器优化,≤1FPS 刷新,翻页式交互,内存占用极低。
- 🖥️ 适配墨水屏:纯黑白样式,≤1FPS 刷新,只做整页跳转,无复杂 JS
- 📟 翻页式阅读:AI 回复自动分页,跨页带
(下页续)/(续)标记,像读 PDF 一样翻阅 - 🔋 电量监控:首页展示部署笔记本的实时电量
- 💬 多对话管理:支持新建对话、历史对话切换,对话内容持久化
- ⚙️ 可插拔后端:
- OpenAI API 模式(推荐):支持任何兼容 OpenAI API 的服务(如 Ollama、vLLM 等)
- 浏览器自动化模式(实验性):通过 Playwright 操控网页版 AI(如 DeepSeek),代替墨水屏访问网页版 AI
- 📝 极低内存占用:服务端渲染,无前端框架,仅依赖 Flask + Playwright(可选)
- 🗣️ 语音输入预留:前端只采音,识别与处理交给笔记本端大模型(计划中)
- Python 3.10+
- 依赖见
requirements.txt
git clone https://github.com/yourusername/eink-reader-agent.git
cd eink-reader-agentpip install -r requirements.txt设置环境变量:
export OPENAI_API_KEY="ollama" # 或你的真实 API key
export OPENAI_BASE_URL="http://127.0.0.1:11434/v1" # 本地 Ollama 地址
export OPENAI_MODEL="deepseek-r1:1.5b" # 模型名称然后在设置页面(/settings)选择 openai 后端。
- 安装 Playwright 浏览器:
playwright install chromium
- 在设置页面选择
deepseek后端。 - 首次运行时会弹出浏览器窗口,请手动登录 DeepSeek。
- 登录状态会自动保存,下次无需重复登录。
python app.py服务运行在 http://0.0.0.0:8500。
确保阅读器与笔记本在同一局域网,浏览器访问 http://笔记本IP:8500。
(索尼 DPT 系列等设备可将地址添加为书签,一键直达。)
eink_reader_agent/
├── app.py # Flask 主程序,路由、状态管理
├── requirements.txt # Python 依赖
├── backends/ # 可插拔 AI 后端
│ ├── __init__.py
│ ├── openai_backend.py # OpenAI API 后端
│ └── (其他后端自动发现) # 浏览器后端需自己实现并放入此目录
├── templates/ # Jinja2 模板(极简墨水屏界面)
│ ├── index.html # 主页:电量 + 对话列表
│ ├── view.html # 对话分页浏览
│ ├── waiting.html # 输入 / 等待页
│ └── settings.html # 后端切换设置页
├── data/ # 运行时数据(持久化)
│ ├── conversations.json # 对话历史
│ ├── settings.json # 用户设置
│ └── openai_backend/ # OpenAI 后端的对话存档
└── browsers/ # (实验性)网页版 AI 操控类
└── deepseek.py # DeepSeek 网页版自动化封装
本项目采用可插拔后端架构,你可以轻松添加新的 AI 服务。
只需在 backends/ 下创建一个 .py 文件,实现以下接口:
class MyBackend:
def __init__(self, browser=None): # browser 参数由框架传入,可忽略
...
def new_conv(self, (first_msg, on_token)) -> (conv_id, full_reply):
"""创建新对话,发送首条消息,返回 (对话ID, 回复文本)"""
def goto_conv(self, conv_id):
"""切换到指定对话"""
def generate_response(self, msg, on_token=None) -> str:
"""在当前对话中发送消息,返回完整回复"""
def close(self):
"""清理资源"""
REGISTRY = {
"name": "mybackend",
"class": MyBackend
}后端会自动被 /settings 页面发现,无需修改 app.py。
本项目仅供个人学习、研究用途,严禁用于任何商业目的。
- 浏览器自动化模式仅用于个人远程使用AI网站。
- 使用浏览器自动化模式可能违反对应网站的服务条款(ToS)。请务必使用您自己的合法账号,并自行承担所有法律风险。
- 开发者不鼓励、不推荐将其用于任何违规或侵权行为。
- 因使用本项目导致的账号封禁、法律纠纷或其他后果,开发者不承担任何责任。
- 请优先使用服务方提供的官方 API 进行合法访问。
如果您是服务提供方并认为本项目侵犯了您的权益,请通过 GitHub Issues 联系,我会立即处理。
- 墨水屏翻页阅读
- 多对话持久化
- 可插拔后端架构
- OpenAI API 后端(流式)
- DeepSeek 浏览器自动化后端(实验性)
- 语音输入(笔记本端录音,阅读器触发)
- 更多浏览器后端(Kimi、通义千问等)
- 远程部署(内网穿透 / VPS)
- PDF / 长文本总结对话模式
本项目采用 MIT License 开源,但不包含对第三方服务合规性的担保。
Enjoy your slow, thoughtful reading.