Paper2Figure 的请求参数定义。 注意: - 为了兼容 dataflow_agent 内部对 state.request 的访问, 这里额外提供 language 字段,并实现一个简单的 get 方法, 使其既能通过属性访问(.language),也能通过 dict 风格访问(.get)。
| 92 | |
| 93 | |
| 94 | class Paper2FigureRequest(BaseModel): |
| 95 | """ |
| 96 | Paper2Figure 的请求参数定义。 |
| 97 | |
| 98 | 注意: |
| 99 | - 为了兼容 dataflow_agent 内部对 state.request 的访问, |
| 100 | 这里额外提供 language 字段,并实现一个简单的 get 方法, |
| 101 | 使其既能通过属性访问(.language),也能通过 dict 风格访问(.get)。 |
| 102 | """ |
| 103 | |
| 104 | # ---------------------- 基础 LLM 设置 ---------------------- |
| 105 | language: str = "en" |
| 106 | # 工作流内部有角色会访问 state.request.language |
| 107 | |
| 108 | chat_api_url: str = settings.DEFAULT_LLM_API_URL |
| 109 | # 与大模型交互使用的 API URL |
| 110 | |
| 111 | # ---------------------- 图类型 & 难度设置 ---------------------- |
| 112 | figure_complex: str = "easy" |
| 113 | # 绘图难度:仅在 graph_type == "model_arch" 时生效,前端透传 easy/mid/hard |
| 114 | |
| 115 | resolution: str = "2K" |
| 116 | # 图像分辨率:2K 或 4K,影响生成图像的质量和生成时间 |
| 117 | |
| 118 | chat_api_key: str = "fill the key" |
| 119 | # chat_api_url 对应的 API KEY;用于访问后端 LLM 服务 |
| 120 | |
| 121 | api_key: str = "" |
| 122 | # 如果使用第三方外部 API(如 OpenAI),在此填写外部 API Key;为空则使用内部服务 |
| 123 | |
| 124 | image_api_url: str = "" |
| 125 | image_api_key: str = "" |
| 126 | |
| 127 | model: str = settings.PAPER2FIGURE_TEXT_MODEL |
| 128 | # 用于执行理解、抽象、描述生成的文本模型名称 |
| 129 | |
| 130 | gen_fig_model: str = settings.PAPER2FIGURE_IMAGE_MODEL |
| 131 | # 用于生成插图 / 构图草图的图像模型名称 |
| 132 | |
| 133 | bg_rm_model: str = f"{get_project_root()}/models/RMBG-2.0" |
| 134 | |
| 135 | # 新增模型参数 |
| 136 | vlm_model: str = settings.PAPER2FIGURE_VLM_MODEL |
| 137 | tec_vlm_desc_model: str = settings.PAPER2FIGURE_REF_IMG_DESC_MODEL |
| 138 | chart_model: str = settings.PAPER2FIGURE_CHART_MODEL |
| 139 | fig_desc_model: str = settings.PAPER2FIGURE_DESC_MODEL |
| 140 | technical_model: str = settings.PAPER2FIGURE_TECHNICAL_MODEL |
| 141 | tech_route_template: str = "" |
| 142 | tech_route_palette: str = "" |
| 143 | |
| 144 | # ---------------------- 输入类型设置 ---------------------- |
| 145 | input_type: Literal["PDF", "TEXT", "FIGURE"] = "PDF" |
| 146 | # 指定输入内容的形式: |
| 147 | # - "PDF": 输入为 PDF 文件路径 |
| 148 | # - "TEXT": 输入为纯文本内容 |
| 149 | # - "FIGURE": 输入为图片文件路径(如 JPG/PNG),用于图像解析或转图 |
| 150 | |
| 151 | input_content: str = "" |