SunilKumarJB/NewsLens_AI

GitHub: SunilKumarJB/NewsLens_AI

一个将印地语报纸PDF自动转化为结构化文章并生成AI驱动SEO元数据的Web应用,支持语义搜索。

Stars: 0 | Forks: 0

# 新闻透镜 AI ### 天城文文章提取与语义智能门户 **NewsLens AI** 是一个高级、响应式的网络应用和后端服务,它能将标准的天城文(印地语)日报PDF转化为高度结构化的文章,并通过AI生成的SEO元数据(摘要、关键词和分类)进行丰富,同时支持基于概念的语义搜索。 它基于 [Article_extraction.ipynb](file:///usr/local/google/home/sjangbahadur/news_paper_demo/Article_extraction.ipynb) 中展示的工作流构建,利用 **Gemini 3.1 Pro** 进行结构化提取,使用 **Gemini Embedding 2** 生成向量表示。 ## 🏛️ 架构工作流 ``` graph TD A[Frontend UI / Client] -->|Upload PDF| B[FastAPI Backend Server] A -->|Provide GCS URI| B B -->|1. Extract Text| C[Gemini 3.1 Pro Preview] B -->|2. Generate SEO Metadata| D[Gemini 3.1 Pro Preview] B -->|3. Generate Embeddings| E[Gemini Embedding 2] B -->|4. Storage Sync| F[(Local SQLite DB: articles.db)] B -.->|GCP BigQuery Sync| G[(BigQuery Table)] F -->|5. Real-time Silent Sync| A G -.->|5. Real-time Silent Sync| A H[Obsidian UI Search Bar] -->|Semantic Query| B B -->|Numpy Vector Math| F I[Layout Architect UI] -->|Select Persona & Articles| B B -->|6. Synthesize Broadsheet| J[Gemini 3.1 Pro Master Typographer] J -->|Render High-Fidelity HTML| I ``` 1. **多模态输入**:通过前端界面,可以通过本地文件拖放或指定Google Cloud Storage (GCS) 存储桶URI (`gs://...`) 来输入PDF页面或完整的报纸版面。 2. **天城文提取**:Gemini 3.1 Pro 垂直阅读PDF布局(保留栏位流),并完全按照原样(零幻觉)将每篇新闻故事提取为标准JSON格式。 3. **SEO元数据丰富**:对每篇提取出的文章正文进行分析,以生成: - 一段简洁的**AI新闻摘要**(使用天城文印地语)。 - 一个高点击率的搜索引擎**meta描述**。 - 一个优化的**主关键词**和相关的**次关键词**。 - 分类标签(**Tags**)。 4. **向量生成**:利用 `gemini-embedding-2` 模型,将AI生成的摘要文本转换为一个3072维的坐标向量。 5. **混合存储与实时同步**:文章记录、元数据和浮点向量存储在本地SQLite数据库 (`articles.db`) 中,并可选择性地同步到Google BigQuery云表。前端UI在后台静默轮询并同步活跃数据库,以保持仪表盘信息流实时更新。 6. **语义概念搜索**:用户输入搜索查询(印地语或英语)。查询文本被向量化,然后通过一个基于Python的快速余弦相似度检查,在所有已存储文章中本地执行搜索,即时返回最佳的概念匹配结果,并附带匹配百分比指示器。 7. **AI版面设计师(合成与排版)**:用户切换到版面设计师视图,选择一个目标读者画像(例如:千禧一代文摘、传统日报、金融纪事报、煽情小报)以及一个已处理文章的清单。Gemini 3.1 Pro 担任执行总编和排版大师的角色,动态合成、排版并精确适配所选故事,生成一个响应式、独立的高保真HTML报纸版面布局,可供打印或导出。 ## ✨ 核心功能 * **黑曜石美学风格**:精心设计的高级UI,采用半透明毛玻璃背景、活力四射的霓虹渐变、Outfit/Inter Google字体、自定义样式滚动条和发光焦点强调。 * **多模态输入管道**:交互式动画时间轴,跟踪本地PDF上传和直接Google Cloud Storage (GCS) 存储桶路径的处理阶段进度。 * **实时信息流同步**:自动后台轮询,确保客户端仪表盘与从SQLite或BigQuery新处理的文章完美同步,无需手动刷新页面。 * **AI版面设计师**:使用先进的文本适配和模块化网格几何,为特定读者画像(千禧一代文摘、传统日报、金融纪事报、煽情小报)生成完全定制化、响应式的HTML报纸头版。 * **语义查询**:理解概念性查询(例如,搜索*"शादी की तैयारी कैसे करें"*可以匹配到关于婚礼趋势的资源文章)。 * **详细信息覆盖层**:清晰的详情模态框,并排显示完整的新闻故事、日期线/记者信息、页码以及优化的SEO洞察侧边栏。 * **混合数据库回退**:无需GCP凭证依赖即可在SQLite上本地即时运行,同时保持完整的BigQuery同步能力。 ## 🚀 设置与部署说明 ### 💻 本地开发 #### 1. 前置条件 - 已安装 **Python 3.13+**。 - 重新认证本地Google Cloud SDK凭据以避免API令牌错误: ``` gcloud auth login gcloud auth application-default login ``` #### 2. 安装Python依赖项 从工作区目录,安装所需的Python库: ``` python3 -m pip install --user --break-system-packages -r requirements.txt ``` *注意:使用 `--break-system-packages` 是为了在直接使用系统Python环境时,安全地绕过Debian PEP 668环境锁定。* #### 3. 启动应用程序 启动uvicorn开发服务器: ``` python3 -m uvicorn main:app --host 127.0.0.1 --port 8080 --reload ``` 启动后,打开您的网页浏览器并访问: 👉 **[http://127.0.0.1:8080](http://127.0.0.1:8080)** ### ☁️ Google Cloud Run部署 您可以使用提供的自动化部署助手,将此门户作为安全、全托管的无服务器容器部署到Google Cloud Run。 #### 1. 通过Google Cloud SDK认证 确保已安装Google Cloud CLI (`gcloud`),认证您的账户并配置您的活动项目: ``` gcloud auth login gcloud config set project ``` #### 2. 执行部署助手 从根目录运行自动化部署脚本: ``` bash deploy.sh ``` 部署助手将自动: 1. 验证您当前的 `gcloud` 认证和目标GCP项目。 2. 通过 **Google Cloud Build** 构建并标记Docker容器镜像。 3. 将容器部署到 **Google Cloud Run**,并配置所有必需的运行时环境变量。 4. 输出用于访问您已部署Web应用程序的实时HTTPS URL。 ## 📂 文件结构 - `main.py`:FastAPI服务器,用于编排端点并提供静态客户端界面。 - `requirements.txt`:所需的Python软件包(FastAPI、GenAI SDK、NumPy、Scikit-Learn等)。 - `Dockerfile`:用于Google Cloud Run部署的容器规范。 - `deploy.sh`:自动化Google Cloud Run部署助手脚本。 - `services/gemini_service.py`:用于Gemini Pro和Embedding调用的Vertex AI客户端包装器。 - `services/db_service.py`:SQLite数据库连接器和向量相似度协调器。 - `frontend/index.html`:现代天城文界面页面结构。 - `frontend/style.css`:高级暗色模式毛玻璃样式规则。 - `frontend/app.js`:控制视图状态变化和API调用的Vanilla事件驱动JavaScript。
标签:AI摘要生成, Apex, BigQuery, FastAPI后端, Gemini API, Google Cloud Storage, HTML渲染, PDF解析, SEO优化, SQLite数据库, 云存储, 人工智能, 信息提取, 元数据生成, 关键词提取, 内核监控, 印地语处理, 向量嵌入, 响应式Web应用, 多模态安全, 实时同步, 搜索引擎优化, 数据仓库, 数据可视化, 数据提取, 文章结构化, 新闻处理, 机器学习, 用户模式Hook绕过, 语义搜索, 请求拦截, 逆向工具