PosterGenius项目实训(创新实训)-1

一. 项目介绍

PosterGenius是一款基于 Janus(多模态内容理解模型)和 DeepSeek(生成式设计大模型)的端到端学术海报生成系统,致力于解决科研人员在论文展示中的设计痛点。系统通过全自动化流程,将论文PDF直接转化为高质量学术海报,支持用户自定义风格模板,实现从内容理解、信息提取、视觉设计到排版优化的全链路智能化生成,为科研人员节省90%以上的设计时间。

1.智能内容提取与摘要生成:

  • 论文解析:基于Janus模型解析PDF中的文本、公式、图表及参考文献,自动识别论文核心贡献、方法框架和关键数据。
  • 动态摘要:生成可编辑的模块化摘要(如背景、方法、结果、结论),支持用户手动调整信息密度。

2.自适应视觉设计

  • 风格迁移:提供10+预设风格模板(如Nature简约风、生物医学可视化),支持用户上传参考图进行风格迁移。
  • 智能排版:根据内容优先级自动分配布局空间,结合DeepSeek模型的审美评估模块优化字体、配色和图表位置。

3.多模态交互编辑

  • 拖拽式调整:允许用户对生成的海报进行二次编辑(如调整模块位置、修改配色方案)。
  • 实时预览:支持导出PDF、PNG文件。

基于以上需求,初步确定项目前端使用TypeScript + React,后端使用python+FastAPI实现,笔者负责前后端框架的搭建,这也是第一次接触这两钟框架,所以下面介绍一下React以及FastAPI

二. TypeScript + React

1. TypeScript是什么?

  • 定位:微软开发的 JavaScript 超集(在 JS 基础上扩展)。
  • 核心能力:通过 静态类型检查,为变量、函数、对象等添加明确的类型约束。
let age: number = 25;  // 定义数字类型变量
function greet(name: string): string {  // 输入输出均为字符串
  return `Hello, ${name}!`;
}
  • 特点:写代码时即可发现类型错误,代码更健壮,适合大型项目协作。

2. React 是什么?

  • 定位:Meta(原 Facebook)开源的 前端 UI 开发库。
  • 核心能力:基于 组件化 思想,通过声明式语法构建用户界面。
// 定义一个按钮组件
const Button = ({ text }: { text: string }) => {
  return <button>{text}</button>;
};
  • 特点:虚拟 DOM 提升渲染效率,单向数据流简化状态管理。

3. TS + React 组合是什么?

  • 本质:用 TypeScript 编写 React 组件,实现 类型安全的 UI 开发。
  • 典型代码(TSX 文件):
interface UserCardProps {  // 定义组件属性的类型
  name: string;
  age: number;
  avatarUrl?: string;      // 可选属性
}

const UserCard: React.FC<UserCardProps> = ({ name, age, avatarUrl }) => {
  return (
    <div>
      {avatarUrl && <img src={avatarUrl} />}
      <h2>{name}</h2>
      <p>Age: {age}</p>
    </div>
  );
};

总而言之就是,TypeScript + React = 为 JavaScript 添加类型系统 + 组件化 UI 开发,兼顾代码可靠性和开发效率。

以上是对TypeScript + React的简要介绍,详细介绍可见新手入门 React .tsx 项目:从零到实战_react tsx-CSDN博客

三. FastAPI

1. 技术定位

  • 本质:基于 Python 的 现代化 Web 框架,专为构建高性能 API 设计。
  • 核心目标:简化开发流程,同时提供企业级性能和强类型安全。

2. 核心功能

1)异步支持(ASGI)
  • 原生支持 async/await,轻松处理高并发请求(如同时处理数千个 API 调用)。
  • 示例:异步数据库查询
@app.get("/user/{id}")  
async def get_user(id: int):  
    user = await database.fetch_one("SELECT * FROM users WHERE id = :id", {"id": id})  
    return user  
2)自动交互文档
  • 内置 Swagger UI 和 ReDoc,根据代码自动生成 API 文档,无需手动编写。
  • 访问 /docs 即可查看和测试所有接口。
3)数据验证与序列化
  • 基于 Pydantic 模型,自动校验请求参数和响应数据格式。
from pydantic import BaseModel  
class Item(BaseModel):  
    name: str  
    price: float  
    tax: float = 10.0  # 默认值  

@app.post("/items/")  
def create_item(item: Item):  # 请求体会自动校验为 Item 类型  
    return {"total_price": item.price + item.tax}  
4)依赖注入系统
  • 通过依赖声明管理共享逻辑(如数据库连接、权限验证),避免代码冗余。

3. 技术架构

# 典型项目结构  
- `main.py`           # 入口文件(定义路由和核心逻辑)  
- `models.py`         # Pydantic 数据模型  
- `database.py`       # 数据库连接(SQLAlchemy/asyncpg等)  
- `dependencies.py`   # 依赖注入函数  
- `routers/`          # 子路由模块(拆分业务逻辑)  

4. 适用场景

  • 微服务 API(高频接口、低延迟需求)
  • 数据密集型应用(如实时分析、机器学习服务化)
  • 快速原型开发(自动文档和类型提示加速协作)

总之,FastAPI = Python 类型提示 + 异步高性能 + 自动文档,是构建现代 API 的“瑞士军刀”,尤其适合追求开发效率与运行时性能兼顾的团队。

以上是FastAPI的简要介绍,详细介绍可见【FastAPI】从0开始学FastAPI!一篇搞懂!-CSDN博客

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐