具权威的小企业网站建设手机做的兼职网站设计
具权威的小企业网站建设,手机做的兼职网站设计,闵行区网页设计公司,泰州网站制作策划Hunyuan-MT Pro Streamlit终端扩展#xff1a;添加历史记录导出CSV/Excel功能
1. 项目背景与需求
Hunyuan-MT Pro是基于腾讯混元#xff08;Hunyuan-MT-7B#xff09;开源模型构建的现代化翻译Web终端。这个工具已经提供了流畅的多语言翻译体验#xff0c;但在实际使用中…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(indexFalse).encode(utf-8) st.download_button( label下载CSV文件, datacsv, file_nametranslation_history.csv, mimetext/csv ) else: output BytesIO() with pd.ExcelWriter(output, engineopenpyxl) as writer: df.to_excel(writer, indexFalse) st.download_button( label下载Excel文件, dataoutput.getvalue(), file_nametranslation_history.xlsx, mimeapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet ) else: st.info(暂无历史记录)4. 功能测试与优化4.1 基础功能测试测试要点包括翻译记录是否正确保存到数据库导出功能是否正常工作导出的文件内容是否完整准确界面交互是否流畅4.2 性能优化对于大量历史记录的情况添加分页查询和性能优化# 优化后的查询函数 def get_history_data(limit1000): conn sqlite3.connect(translation_history.db) df pd.read_sql_query(fSELECT * FROM translations ORDER BY timestamp DESC LIMIT {limit}, conn) conn.close() return df4.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星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。