LectuLibre
基于 AI 大模型的图书翻译平台,支持用户上传 EPUB/PDF 图书并由大模型翻译为多语言版本,后端采用 FastAPI + PostgreSQL 架构实现多语言全文搜索
时间轴 (近 90 天)
LectuLibre 是一个 AI 图书翻译平台,允许用户上传 EPUB 或 PDF 图书,系统调用 Claude、DeepSeek 等大模型完成翻译,最终形成同一本书在多种语言下并存的图书馆。
LectuLibre 在单台 VPS、几十万文档的规模下评估后认为 PostgreSQL 内置全文搜索已足够,无需引入 Elasticsearch。
LectuLibre 最初把翻译存成 JSON 列,查询时需要不断解析 JSON,既痛苦又缓慢;规范化到独立表后查询更干净并能直接利用 PostgreSQL 全文搜索能力。
LectuLibre 的 translations 表包含 chapter_id、language、content 以及 content_tsv 列,其中 content_tsv 以生成列方式创建,由数据库负责生成逻辑,应用层无需手动维护。
LectuLibre 使用 PostgreSQL 触发器函数在 INSERT 或 UPDATE 之前自动重算 content_tsv,使应用层完全不需要关心索引更新。
LectuLibre 在 books.title 上建立 gin_trgm_ops 索引,查询时用 similarity(Book.title, q) > 0.3 过滤并按相似度排序,使书名模糊搜索从 1.2s 降到 15ms。
全部知识事实 (6)
LectuLibre 是一个 AI 图书翻译平台,允许用户上传 EPUB 或 PDF 图书,系统调用 Claude、DeepSeek 等大模型完成翻译,最终形成同一本书在多种语言下并存的图书馆。
50%待验证LectuLibre 在单台 VPS、几十万文档的规模下评估后认为 PostgreSQL 内置全文搜索已足够,无需引入 Elasticsearch。
50%待验证LectuLibre 的 translations 表包含 chapter_id、language、content 以及 content_tsv 列,其中 content_tsv 以生成列方式创建,由数据库负责生成逻辑,应用层无需手动维护。
50%待验证LectuLibre 使用 PostgreSQL 触发器函数在 INSERT 或 UPDATE 之前自动重算 content_tsv,使应用层完全不需要关心索引更新。
50%待验证LectuLibre 在 books.title 上建立 gin_trgm_ops 索引,查询时用 similarity(Book.title, q) > 0.3 过滤并按相似度排序,使书名模糊搜索从 1.2s 降到 15ms。
50%待验证LectuLibre 最初把翻译存成 JSON 列,查询时需要不断解析 JSON,既痛苦又缓慢;规范化到独立表后查询更干净并能直接利用 PostgreSQL 全文搜索能力。
50%