news 2026/6/11 7:32:35

Hunyuan-MT ProStreamlit终端扩展:添加历史记录导出CSV/Excel功能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hunyuan-MT ProStreamlit终端扩展:添加历史记录导出CSV/Excel功能

Hunyuan-MT Pro Streamlit终端扩展:添加历史记录导出CSV/Excel功能

1. 项目背景与需求

Hunyuan-MT Pro是基于腾讯混元(Hunyuan-MT-7B)开源模型构建的现代化翻译Web终端。这个工具已经提供了流畅的多语言翻译体验,但在实际使用中,用户经常需要保存翻译历史记录以便后续参考或分析。

当前版本缺少历史记录导出功能,导致用户不得不手动复制粘贴翻译结果。本文将介绍如何为Hunyuan-MT Pro添加历史记录导出功能,支持CSV和Excel两种格式。

2. 功能设计与实现思路

2.1 核心功能设计

新增的历史记录导出功能需要实现以下核心能力:

  • 自动记录:保存每次翻译的源文本、目标文本、时间戳和语言对
  • 数据持久化:使用轻量级数据库存储历史记录
  • 导出选项:提供CSV和Excel两种导出格式
  • 界面集成:在Streamlit侧边栏添加导出控制面板

2.2 技术方案选择

为实现这些功能,我们采用以下技术方案:

  • 数据存储:使用SQLite数据库,轻量且无需额外配置
  • 数据处理:Pandas DataFrame用于数据转换和导出
  • 界面组件:Streamlit原生表单和按钮组件
  • 文件导出
    • CSV:使用Pandas的to_csv()
    • Excel:使用Pandas的to_excel()配合openpyxl引擎

3. 代码实现步骤

3.1 数据库初始化

首先在app.py中添加数据库初始化代码:

import sqlite3 from datetime import datetime # 初始化数据库 def init_db(): conn = sqlite3.connect('translation_history.db') c = conn.cursor() c.execute('''CREATE TABLE IF NOT EXISTS translations (id INTEGER PRIMARY KEY AUTOINCREMENT, source_text TEXT, target_text TEXT, source_lang TEXT, target_lang TEXT, timestamp DATETIME)''') conn.commit() conn.close() # 在应用启动时调用 init_db()

3.2 记录翻译历史

修改翻译函数,添加记录功能:

def save_translation(source_text, target_text, source_lang, target_lang): conn = sqlite3.connect('translation_history.db') c = conn.cursor() c.execute("INSERT INTO translations (source_text, target_text, source_lang, target_lang, timestamp) VALUES (?, ?, ?, ?, ?)", (source_text, target_text, source_lang, target_lang, datetime.now())) conn.commit() conn.close() # 在翻译函数调用后添加 save_translation(input_text, translated_text, source_lang, target_lang)

3.3 添加导出界面

在Streamlit侧边栏添加导出控制面板:

import pandas as pd from io import BytesIO # 在侧边栏添加导出部分 with st.sidebar.expander(" 历史记录导出"): # 获取所有历史记录 conn = sqlite3.connect('translation_history.db') df = pd.read_sql_query("SELECT * FROM translations", conn) conn.close() if not df.empty: st.write(f"共 {len(df)} 条历史记录") # 导出格式选择 export_format = st.radio("导出格式", ["CSV", "Excel"]) # 导出按钮 if st.button("导出历史记录"): if export_format == "CSV": csv = df.to_csv(index=False).encode('utf-8') st.download_button( label="下载CSV文件", data=csv, file_name='translation_history.csv', mime='text/csv' ) else: output = BytesIO() with pd.ExcelWriter(output, engine='openpyxl') as writer: df.to_excel(writer, index=False) st.download_button( label="下载Excel文件", data=output.getvalue(), file_name='translation_history.xlsx', mime='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) else: st.info("暂无历史记录")

4. 功能测试与优化

4.1 基础功能测试

测试要点包括:

  • 翻译记录是否正确保存到数据库
  • 导出功能是否正常工作
  • 导出的文件内容是否完整准确
  • 界面交互是否流畅

4.2 性能优化

对于大量历史记录的情况,添加分页查询和性能优化:

# 优化后的查询函数 def get_history_data(limit=1000): conn = sqlite3.connect('translation_history.db') df = pd.read_sql_query(f"SELECT * FROM translations ORDER BY timestamp DESC LIMIT {limit}", conn) conn.close() return df

4.3 用户体验改进

添加更多实用功能提升用户体验:

# 在导出面板中添加更多选项 with st.sidebar.expander(" 历史记录导出"): if not df.empty: # 添加时间范围筛选 min_date = pd.to_datetime(df['timestamp']).min().date() max_date = pd.to_datetime(df['timestamp']).max().date() date_range = st.date_input("选择时间范围", [min_date, max_date]) # 添加语言对筛选 lang_pairs = df[['source_lang', 'target_lang']].drop_duplicates() selected_pair = st.selectbox("选择语言对", [f"{row['source_lang']}→{row['target_lang']}" for _, row in lang_pairs.iterrows()]) # 根据筛选条件过滤数据 filtered_df = df[ (pd.to_datetime(df['timestamp']).dt.date >= date_range[0]) & (pd.to_datetime(df['timestamp']).dt.date <= date_range[1]) & (df['source_lang'] == selected_pair.split('→')[0]) & (df['target_lang'] == selected_pair.split('→')[1]) ] # 使用过滤后的数据进行导出 # ...

5. 总结与展望

通过本次扩展,我们为Hunyuan-MT Pro添加了实用的历史记录导出功能,大大提升了工具的实用性。用户现在可以方便地保存和管理翻译历史,支持CSV和Excel两种格式,满足不同场景下的需求。

未来可能的改进方向包括:

  • 添加自动清理旧记录的策略
  • 支持更多导出格式如JSON
  • 实现云端同步功能
  • 添加历史记录搜索功能

这个扩展功能代码量不大,但对用户体验的提升非常显著,展示了如何通过小型功能迭代不断完善一个工具。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:38:43

Whisper-large-v3科研辅助:学术讲座语音转录+参考文献自动标注

Whisper-large-v3科研辅助&#xff1a;学术讲座语音转录参考文献自动标注 1. 为什么科研人员需要这个工具&#xff1f; 你有没有过这样的经历&#xff1a;听完一场干货满满的学术讲座&#xff0c;笔记记了一大堆&#xff0c;回去整理时却发现关键术语听错了、人名记混了、时间…

作者头像 李华
网站建设 2026/6/10 14:49:36

Qwen2.5-VL实战:用Chord轻松搞定视频内容分析与目标追踪

Qwen2.5-VL实战&#xff1a;用Chord轻松搞定视频内容分析与目标追踪 你是否曾面对一段监控录像、一段产品演示视频或一段教学实录&#xff0c;却苦于无法快速提取关键信息&#xff1f;想确认“穿红衣服的人是否在第12秒进入画面”&#xff0c;又或者需要一句精准描述“画面中三…

作者头像 李华
网站建设 2026/6/2 20:15:55

如何5分钟解决中文文献管理痛点?揭秘Jasminum的3大颠覆性创新

如何5分钟解决中文文献管理痛点&#xff1f;揭秘Jasminum的3大颠覆性创新 【免费下载链接】jasminum A Zotero add-on to retrive CNKI meta data. 一个简单的Zotero 插件&#xff0c;用于识别中文元数据 项目地址: https://gitcode.com/gh_mirrors/ja/jasminum 痛点直击…

作者头像 李华
网站建设 2026/5/31 5:16:26

VibeVoice Pro真实生成:法语/德语/西班牙语流式语音同步输出效果

VibeVoice Pro真实生成&#xff1a;法语/德语/西班牙语流式语音同步输出效果 1. 零延迟不是口号&#xff0c;是毫秒级的呼吸感 你有没有试过和AI语音对话时&#xff0c;等它“想好”再开口&#xff1f;那种停顿像卡在喉咙里的半句话&#xff0c;让人下意识想补一句“你还在吗…

作者头像 李华
网站建设 2026/5/28 15:19:11

GLM-Image实战部署:Kubernetes集群中GLM-Image服务编排实践

GLM-Image实战部署&#xff1a;Kubernetes集群中GLM-Image服务编排实践 1. 为什么需要在Kubernetes中部署GLM-Image 你可能已经用过GLM-Image的本地Web界面&#xff0c;输入几句话就能生成一张惊艳的AI画作——但当团队协作需求出现时&#xff0c;问题就来了&#xff1a;设计师…

作者头像 李华
网站建设 2026/5/28 12:16:28

MedGemma-X中文交互设计解析:如何让放射科医生零学习成本上手AI

MedGemma-X中文交互设计解析&#xff1a;如何让放射科医生零学习成本上手AI 1. 为什么放射科医生需要“不用学”的AI&#xff1f; 你有没有见过这样的场景&#xff1a;一位从业二十年的主任医师&#xff0c;面对新装的AI辅助系统&#xff0c;反复点错按钮、盯着界面发愣、最后…

作者头像 李华