You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Python的报告自动化工具开发问询:文本编辑模块实现困境

ChatGPT反馈文本编辑功能实现方案

核心数据结构设计

先把图片、标签、ChatGPT文本做关联绑定,确保编辑操作能精准对应到目标图片:

  • 用Python类封装每个图片的元数据:
    class ImageReportItem:
        def __init__(self, img_path, tag, raw_gpt_text):
            self.img_path = img_path
            self.tag = tag
            self.raw_gpt_text = raw_gpt_text  # 保存ChatGPT原始输出,用于恢复
            self.edited_text = raw_gpt_text  # 编辑后的文本,初始等于原始文本
    
  • 遍历图片文件夹时,生成ImageReportItem列表,后续所有编辑操作都基于这个列表。

编辑功能实现路径

根据工具使用场景选择对应方案:

1. 命令行交互式编辑(轻量快速)

适合无GUI需求的场景,通过命令行菜单实现选择、修改、删除操作:

  • 先列出所有带标签的图片条目,显示编号、标签、文本预览;
  • 用户输入编号选择要编辑的条目,提供操作选项:修改文本、删除文本片段、添加内容、恢复原始文本、调用ChatGPT重写;
  • 用prompt_toolkit库实现多行文本输入(默认input()仅支持单行,该库更适合长文本编辑)。

示例代码片段:

from prompt_toolkit import prompt

def edit_item(item):
    print(f"\n当前编辑(标签:{item.tag}):")
    print(f"原始文本:{item.raw_gpt_text}")
    print("输入新文本(按Ctrl+D结束输入):")
    new_text = prompt(multiline=True, default=item.edited_text)
    item.edited_text = new_text

# 调用示例:遍历item_list,让用户选择编号
for idx, item in enumerate(item_list):
    print(f"{idx+1}. 标签[{item.tag}]:{item.img_path} - {item.edited_text[:50]}...")
selected_idx = int(input("请输入要编辑的条目编号:")) - 1
edit_item(item_list[selected_idx])

2. GUI可视化编辑(直观易用)

适合面向非技术用户的场景,用Tkinter/Streamlit快速搭建界面:

  • 用表格展示图片缩略图、标签、当前文本,每行提供「编辑」「重写」「恢复」按钮;
  • 点击「编辑」弹出文本编辑器(比如Tkinter的Text组件),支持多行编辑、快捷键操作;
  • 点击「重写」直接调用已对接的ChatGPT API,传入当前文本的修改需求(如“重写这段描述,更专业”),替换编辑框内容。

3. 批量文件导入导出(高效批量修改)

适合需要大量编辑的场景:

  • 将所有ImageReportItem的标签、原始文本、编辑后文本导出为CSV或Markdown文件;
  • 用户用本地编辑器(如VS Code、Excel)批量修改文本;
  • 编写导入逻辑,将修改后的文件内容同步回ImageReportItem列表,自动校验标签和图片的对应关系。

关键细节处理

  • 保留原始文本:始终保存ChatGPT的原始输出,避免编辑后无法恢复;
  • 标签关联校验:编辑时显示对应图片的路径(命令行)或缩略图(GUI),防止编辑错条目;
  • 重写功能集成:在编辑界面增加「调用ChatGPT重写」按钮,直接复用已有的API对接代码,传入当前文本和重写指令,更新编辑后文本。

内容的提问来源于stack exchange,提问作者DJ-coding

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 14:25:55