电商资讯网站有哪些,wordpress简约文艺,wordpress 悬浮 登录,个人怎么做百度竞价测试data_management函数
这是我最近正在开发的AI工具信息平台的部门功能模块测试#xff0c;基于streamlit架构。整理出来与大家分享#xff0c;也为我以后自己回溯找到资源。
为了测试 data_management 函数并结合 Excel 文件中的 “Tools” 表单内容#xff0c;我们需要…测试data_management函数
这是我最近正在开发的AI工具信息平台的部门功能模块测试基于streamlit架构。整理出来与大家分享也为我以后自己回溯找到资源。
为了测试 data_management 函数并结合 Excel 文件中的 “Tools” 表单内容我们需要进行以下步骤
确保 Excel 文件准备好你的 Excel 文件例如 test_tools.xlsx应包含相关的工具数据。实现 save_all_data 函数确保有一个函数用于保存数据回 Excel 文件。编写完整的测试代码将 data_management 函数整合到一个 Streamlit 应用中以便从 Excel 读取数据、执行管理操作并实时展示结果。
步骤 1准备 Excel 文件
确保你的 Excel 文件 test_tools.xlsx 内容如下
NameCategoryCountryCompanyDescriptionURLOpen SourcePopularityLastUpdated通义千问大语言模型中国阿里巴巴阿里云企业级大模型平台https://tongyi.aliyun.com否4002024/2/11智谱清言App大语言模型中国智谱AI新一代认知智能大模型提供对话、问答等功能https://chatglm.cn/否50002025/1/22Tool A大语言模型USACompany AA great toolhttp://example.com是1002023/1/1Tool B大语言模型CanadaCompany BAnother great toolhttp://example2.com否2002023/1/2Tool C大语言模型UKCompany CAmazing toolhttp://example3.com是1502023/1/3
步骤 2实现 save_all_data 函数
确保你能将数据保存回 Excel 文件。以下是一个简单的示例实现
def save_all_data(excel_file, tools_data, tutorials_data):保存所有数据到 Excel 文件with pd.ExcelWriter(excel_file) as writer:# 将工具数据写入工作表for category, items in tools_data.items():df pd.DataFrame(items)df.to_excel(writer, sheet_namecategory, indexFalse)# 如果有教程数据也可以保存到对应的工作表if tutorials_data: # 示例如果有必要可以添加处理tutorials_df pd.DataFrame(tutorials_data)tutorials_df.to_excel(writer, sheet_nameTutorials, indexFalse)return True步骤 3编写完整的 Streamlit 应用代码
将 data_management 函数整合到一个完整的 Streamlit 应用中读取 Excel 文件并实现数据的管理功能
import pandas as pd
import streamlit as st
import datetime# 国家标志示例
COUNTRY_FLAGS {中国: ,USA: ,Canada: ,UK:
}def save_all_data(excel_file, tools_data, tutorials_data):保存所有数据到Exceltry:tools_rows []for category, items in tools_data.items():for item in items:tools_rows.append({Name: item[name],Category: category,Country: item[country],Company: item.get(company, ),Description: item[description],URL: item[url],Open Source: item[open_source]})tools_df pd.DataFrame(tools_rows)tutorials_rows []for tool_name, tutorials in tutorials_data.items():for tut in tutorials:tutorials_rows.append({TutorialID: tut[id],RelatedTool: tool_name,Title: tut[title],URL: tut[url],Type: tut[type],DifficultyLevel: tut[difficulty],Duration: tut.get(duration, ),Rating: tut.get(rating, None),Language: tut.get(language, 中文),Tags: , .join(tut.get(tags, [])),VersionCompatible: tut.get(version, ),Author: tut.get(author, )})tutorials_df pd.DataFrame(tutorials_rows)with pd.ExcelWriter(excel_file, engineopenpyxl) as writer:tools_df.to_excel(writer, sheet_nameTools, indexFalse)tutorials_df.to_excel(writer, sheet_nameTutorials, indexFalse)return Trueexcept Exception as e:st.error(f保存失败{str(e)})return Falseclass EnhancedConfig:SERPER_API_KEY your api_key # 替换为实际的 API 密钥def render_url(url):根据URL生成超链接if url and url ! 无:return fa href{url} classlink-btn target_blank{url}/aelse:return span无可用链接/spandef classify_tool(name, description):模拟分类工具的功能return 大语言模型 # 示例返回def data_management(excel_file, tools_data):# 新增分类验证功能if st.sidebar.button( 分类质量检查):error_count 0for category, items in tools_data.items():for item in items:predicted classify_tool(item[name], item[description])if predicted ! category:st.warning(f分类不一致{item[name]} 当前分类{category}预测分类{predicted})error_count 1st.info(f完成检查发现{error_count}个潜在分类问题)# 数据管理界面st.sidebar.subheader(数据管理)operation st.sidebar.radio(操作类型, [添加条目, 编辑条目, 删除分类, 增加分类])if operation 添加条目:category st.selectbox(选择分类, list(tools_data.keys()) [新增分类])if category 新增分类:category st.text_input(请输入新分类名称)with st.form(添加表单):name st.text_input(工具名称)url st.text_input(官网URL)country st.selectbox(所属国家, list(COUNTRY_FLAGS.keys()))company st.text_input(公司名称)description st.text_area(工具描述)open_source st.selectbox(是否开源, [是, 否])popularity st.slider(初始流行度, 500, 2000, 1000)if st.form_submit_button(提交):if all([category, name, url]):new_item {name: name,url: url,description: description,country: country,open_source: open_source,company: company,popularity: popularity,last_updated: datetime.datetime.now()}if category not in tools_data:tools_data[category] []tools_data[category].append(new_item)if save_all_data(excel_file, tools_data, {}): # 假设没有教程数据st.success(添加成功)else:st.error(请填写必填字段分类、名称、URL)elif operation 编辑条目:category st.selectbox(选择分类, list(tools_data.keys()))items tools_data.get(category, [])if items:index st.selectbox(选择条目, range(len(items)), format_funclambda x: items[x][name])with st.form(编辑表单):new_category st.text_input(新分类名称, valuecategory)name st.text_input(工具名称, valueitems[index][name])url st.text_input(官网URL, valueitems[index][url])# 确保安全地获取国家try:selected_country_index list(COUNTRY_FLAGS.keys()).index(items[index][country])except ValueError:selected_country_index 0 # 默认到第一个国家country st.selectbox(所属国家, list(COUNTRY_FLAGS.keys()), indexselected_country_index)company st.text_input(公司名称, valueitems[index][company])description st.text_area(工具描述, valueitems[index][description])open_source st.selectbox(是否开源, [是, 否],index[是, 否].index(items[index][open_source]))if st.form_submit_button(保存修改):del tools_data[category][index]if new_category not in tools_data:tools_data[new_category] []tools_data[new_category].append({name: name,url: url,description: description,country: country,open_source: open_source,company: company})if not tools_data[category]:del tools_data[category]if save_all_data(excel_file, tools_data, {}): # 假设没有教程数据st.success(修改已保存)else:st.warning(该分类下没有条目可供编辑或删除)elif operation 增加分类:new_category st.text_input(请输入新分类名称)if st.button(提交):if new_category:if new_category not in tools_data:tools_data[new_category] []save_all_data(excel_file, tools_data, {})st.success(f分类 {new_category} 已成功添加)else:st.error(该分类已存在请选择其他名称。)else:st.error(分类名称不能为空。)elif operation 删除分类:category st.selectbox(选择分类, list(tools_data.keys()))if st.button(确认删除):del tools_data[category]if save_all_data(excel_file, tools_data, {}): # 假设没有教程数据st.success(f分类 {category} 已删除)def main():# 从 Excel 文件读取工具数据excel_file test.xlsxtools_data {}# 读取 Excel 文件内容df pd.read_excel(excel_file, sheet_nameTools)# 构建工具数据字典for _, row in df.iterrows():category row[Category]if category not in tools_data:tools_data[category] []tools_data[category].append({name: row[Name],url: row[URL],description: row[Description],country: row[Country],open_source: row[Open Source],company: row[Company],popularity: row[Popularity],last_updated: row[LastUpdated]})data_management(excel_file, tools_data)if __name__ __main__:main()
步骤 4运行测试
将上述代码保存为 Python 文件例如 data_management_app.py然后在命令行中运行以下命令
streamlit run data_management_app.py验证输出
当应用启动后你应该能够通过侧边栏操作来
进行分类质量检查添加、编辑和删除条目增加或删除分类
确保在每次操作后正确更新 Excel 文件并在页面上显示相应的结果和消息。
注意事项
Excel 文件路径确保 Excel 文件路径正确或与脚本在同一目录下。异常处理在操作中添加异常处理以捕获错误。数据有效性检查确保用户输入的数据格式正确。
通过这些步骤你应该能够测试 data_management 函数。如果有任何问题或进一步的要求请随时告诉我