Skip to content

guyue55/ArticleWeb

Repository files navigation

ArticleWeb

面向"内容生产、领取与发布"的全流程 AI 内容创作平台。支持多分类、多模型、多用户协作:集成了 AI 在线创作、热点选题发现、本地库自动入库等核心功能,帮助创作者高效产出高质量内容并发布到外部平台。

项目背景与定位

解决的问题

本项目旨在解决内容创作者面临的选题难、创作效率低、多平台管理混乱等痛点。通过集成全网实时热点发现与多模型 AI 创作能力,构建从选题、生成、编辑到管理的一站式闭环。

工作原理

  1. 热点发现阶段:通过联网搜索接口(如 Tavily)实时抓取全网各分类下的热门选题,并提供原始来源溯源。
  2. AI 在线创作阶段:用户选择提示词模板,系统调用多供应商大模型(通过 LiteLLM 统一接入)在线生成文章。
  3. 本地入库阶段(可选):保留原有的离线扫描机制,定期扫描本地 generated_articles/ 目录并同步至系统。
  4. 编辑与分发阶段:用户通过集成的 Vditor 编辑器进行深度润色,一键保存至文库,支持导出 Markdown/HTML 等多种格式。

技术特点

  • AI 引擎:集成 LiteLLM,支持 OpenAI、Anthropic、文心一言、DeepSeek 等 100+ 供应商。
  • 动态模板:基于 Jinja2 实现高级提示词渲染,支持动态变量表单。
  • 全网溯源:AI 生成内容自动关联参考来源链接,确保内容真实性与可信度。
  • 安全加固:完善的 API Key 脱敏机制与系统参数在线配置管理。
  • 现代编辑:集成 Vditor,提供 Typora 级的所见即所得编辑体验。

系统架构

核心模块

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│  AI 创作中心    │<──>│   热点发现层    │<──>│   联网搜索 API  │
└─────────────────┘    └─────────────────┘    └─────────────────┘
       │                      ▲                      │
       ▼                      │                      ▼
┌─────────────────┐    ┌──────┴──────────┐    ┌─────────────────┐
│  多模型路由层   │<──>│   管理后台中心  │<──>│   数据库/文件   │
│  (LiteLLM)      │    │ (参数/模板/模型)│    │ (Article/Meta)  │
└─────────────────┘    └─────────────────┘    └─────────────────┘

核心功能

  • AI 在线创作:支持选择模板、填写变量、在线流式生成。
  • 热点选题溯源:实时发现行业热点,并记录所有参考来源 URL。
  • 多模型供应商管理:支持 OpenAPI 标准模型的自动扫描与同步。
  • 系统配置中心:在线管理 API Key 等敏感参数,支持自动脱敏展示。
  • 领取记录管理:按工作流管理文章状态(待领取 → 已领取 → 已发布)。
  • 后台自动扫描:定时扫描本地文件目录并完成入库。

使用流程

1. 配置 AI 环境

  • 登录管理后台 /articles/admin/ai/
  • “系统参数配置” 中添加 TAVILY_API_KEY(用于热点发现)
  • “供应商管理” 中添加 AI 供应商(如百度文心),点击“扫描模型”自动同步模型列表。

2. AI 在线创作

  • 点击侧边栏 “AI 创作”
  • 选择分类获取实时热点,点击感兴趣的选题自动填充
  • 选择 Prompt 模板,填写必要参数,点击“立即生成”
  • 在编辑器中完成润色后,点击“保存文章”入库

3. 本地离线扫描 (传统模式)

  • 将本地生成的 .md 文件放入 generated_articles/<分类>/
  • 系统会自动或通过命令 python manage.py scan_articles 完成入库。

快速开始

  • 环境要求
    • Python ≥ 3.9
    • uv (推荐) 或 pip
  • 安装依赖
uv pip install -r requirements/dev.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 初始化与运行
python manage.py migrate
python manage.py runserver

配置说明

  • TAVILY_API_KEY:联网搜索必备。
  • ARTICLE_SCAN_ENABLED:是否启用离线文件后台扫描。
  • 更多配置见 .env.example 或管理后台配置页。

项目结构

apps/
  articles/
    services/              # 核心业务层 (AI生成、热点搜索)
    management/commands/   # 后台任务调度
    models.py              # 数据模型 (含 AIProvider, PromptTemplate 等)
    api.py                 # RESTful 接口 (Django Ninja 实现)
  common/                  # 基础工具与脱敏逻辑
docs/                      # AI 创作模块设计说明书及开发规范
templates/                 # 前端模板 (含 AI 创作中心及管理后台)

常用命令

python manage.py runserver      # 启动开发服务器
python manage.py scan_articles  # 手动触发本地扫描
pytest -q                       # 运行自动化测试

贡献

  • 欢迎提交 Issue 与 PR。请确保代码遵循 docs/Development_Specifications.md 中的规范。

许可

  • 如需开放协议,请新增 LICENSE 文件并在此声明。

About

文章领取与下载平台

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages