我没招了jpg

import pandas as pd
import requests
import re
import json
from tqdm import tqdm
from datetime import datetime, timedeltadef calculate_stop_duration(arrival_time_str, departure_time_str):"""计算列车停留时长,处理跨天和异常情况"""try:if arrival_time_str == '无数据' or departure_time_str == '无数据':return "无数据"# 统一时间格式(处理"23:41"和"23:41:00"混用情况)arrival_time_str = arrival_time_str if len(arrival_time_str.split(':')) == 3 else arrival_time_str + ':00'departure_time_str = departure_time_str if len(departure_time_str.split(':')) == 3 else departure_time_str + ':00'arrival_time = datetime.strptime(arrival_time_str, '%H:%M:%S')departure_time = datetime.strptime(departure_time_str, '%H:%M:%S')# 处理跨天情况(如23:40到达,00:12离开)if departure_time < arrival_time:departure_time += timedelta(days=1)duration = departure_time - arrival_timehours, remainder = divmod(duration.seconds, 3600)minutes = remainder // 60# 优化输出格式(小于1小时只显示分钟)if hours == 0:return f"{minutes}分钟"else:return f"{hours}小时{minutes}分钟"except Exception as e:return f"计算错误: {str(e)}"def call_llm(content: str):"""调用大模型API(与原baseline相同)"""url = "https://api.siliconflow.cn/v1/chat/completions"payload = {"model": "Qwen/Qwen3-8B","messages": [{"role": "user", "content": content}]}headers = {"Authorization": "Bearer sk-xxx","Content-Type": "application/json"}resp = requests.request("POST", url, json=payload, headers=headers).json()content = resp['choices'][0]['message']['content'].split('</think>')[-1]pattern = re.compile(r'^```json\s*([\s\S]*?)```$', re.IGNORECASE)match = pattern.match(content.strip())if match:return json.loads(match.group(1).strip())return contentdef create_question_list(row: dict):"""生成多样化问题列表(包含简单查询和时间推理)"""question_list = []train_number = row["车次"]departure_station = row["始发站"]# 1. 基础信息查询question_list.append(f'{train_number}号车次应该从哪个检票口检票?')question_list.append(f'{train_number}号车次应该从哪个站台上车?')question_list.append(f'{train_number}次列车的终到站是哪里?')question_list.append(f'{train_number}次列车的候车区域是哪里?')# 2. 时间推理问题if row['到点'] != '无数据' and row['开点'] != '无数据':# 停留时长question_list.append(f'{train_number}次列车在{departure_station}站的停留时长是多久?')# 发车时间查询(验证模型能否处理时间格式)question_list.append(f'{train_number}次列车什么时候从{departure_station}站发车?')# 3. 比较类问题(需要多行数据,可在后续扩展)# question_list.append(f'从{departure_station}出发的车次中,哪趟停留时间最长?')return question_list# 主流程
if __name__ == "__main__":# 1. 读取数据data = pd.read_excel('data/info_table.xlsx').fillna('无数据')# 2. 预处理时间数据data['停留时长'] = data.apply(lambda row: calculate_stop_duration(str(row['到点']), str(row['开点'])), axis=1)# 3. 生成提示词模板prompt = '''你是专业的列车乘务员,请严格根据以下列车信息回答问题:
# 列车信息
{}# 用户问题列表
{}注意:
1. 所有时间计算已考虑跨天情况
2. 对于"无数据"的问题,如实回答"暂无该信息"
'''output_format = '''# 输出格式
```json
[{"q": "问题文本","a": "答案文本(直接引用或计算得出)"
}]
```'''# 4. 生成训练数据train_data = []error_log = []for idx, row in tqdm(data.iterrows(), total=len(data)):try:row_dict = row.to_dict()questions = create_question_list(row_dict)# 调用LLM生成答案(使用原始数据+计算后的停留时长)llm_response = call_llm(prompt.format(row_dict, questions) + output_format)if isinstance(llm_response, list):train_data.extend([{"instruction": qa["q"], "output": qa["a"]} for qa in llm_response])else:error_log.append({"row": row_dict, "error": "LLM返回格式错误"})except Exception as e:error_log.append({"row": row_dict, "error": str(e)})# 5. 保存结果with open('train_data_v2.json', 'w', encoding='utf-8') as f:json.dump(train_data, f, ensure_ascii=False, indent=2)if error_log:with open('error_log.json', 'w', encoding='utf-8') as f:json.dump(error_log, f, ensure_ascii=False, indent=2)print(f"生成完成!有效数据{len(train_data)}条,错误{len(error_log)}条")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91312.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91312.shtml
英文地址,请注明出处:http://en.pswp.cn/web/91312.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前后端】node mock.js+json-server

JSON-Server 一个在前端本地运行&#xff0c;可以存储json数据的server。前端开发可以模拟服务端接口数据&#xff0c;在本地搭建一个JSON服务&#xff0c;自己产生测试数据。 使用npm全局安装json-server &#xff1a;npm install -g json-server可以通过查看版本号&#xff0…

疏老师-python训练营-Day30模块和库的导入

浙大疏锦行 知识点回顾&#xff1a; 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何导入 一.学习知识点 DAY30 …

神经网络知识讨论

AI 核心任务与数据类型&#xff1a;特征提取核心&#xff1a;AI 的核心是从原始输入数据中提取特征&#xff0c;CV 是将图像数据转换为计算机可识别的特征&#xff0c;NLP 是将文本数据转换为特征&#xff0c;数据挖掘是将结构化数据转换为特征。数据类型特点&#xff1a;图像数…

kotlin类型可为空,进行空安全的区别

定义一个可为空的变量b(String?),默认没有&#xff1f;是不可以为空的 var b: String? "Kotlin" b null print(b) // 输出 null默认不可为空 var a: String "Kotlin" a null // 编译器报错&#xff0c;null 不能被赋给不为空的变量空安全调用&#x…

Mysql事务基础

事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行 事务的特点 A&#xff08;Atomicity&#…

FastAPI入门:安装、Pydantic、并发和并行

本系列参考FastAPI官方文档&#xff1a;https://fastapi.tiangolo.com/zh/python-types/安装 使用pip安装&#xff1a; pip install fastapi此外还需要 ASGI 服务器&#xff0c;生产环境可以使用 Uvicorn 或者 Hypercorn。 ASGI服务器&#xff1a;异步服务网关接口&#xff0c;…

欢乐的周末 - 华为OD统一考试(JavaScript 题解)

题目描述 小华和小为是很要好的朋友,他们约定周末一起吃饭。 通过手机交流,他们在地图上选择了多个聚餐地点(由于自然地形等原因,部分聚餐地点不可达)。 求小华和小为都能到达的聚餐地点有多少个? 输入描述 第一行输入m和n,m代表地图的长度,n代表地图的宽度 第二行…

算法竞赛阶段二-数据结构(38)数据结构动态链表list

动态链表&#xff08;List&#xff09;的基本概念动态链表是一种线性数据结构&#xff0c;通过节点间的指针连接实现动态内存分配。与数组不同&#xff0c;链表的大小可随需增减&#xff0c;插入和删除操作的时间复杂度为 O(1)&#xff08;已知位置时&#xff09;&#xff0c;但…

Qt 移动应用推送通知实现

推送通知是移动应用提升用户粘性的核心功能——无论是即时消息提醒、活动推送还是状态更新&#xff0c;都需要通过推送功能触达用户。Qt虽未直接提供跨平台推送API&#xff0c;但可通过集成原生服务&#xff08;如Firebase Cloud Messaging、Apple Push Notification service&a…

Word和WPS文字如何制作分栏试卷?想分几栏分几栏

使用Word和WPS文字制作试卷的时候&#xff0c;通常会使用A3大小的纸张&#xff0c;横向布局。但是如果题目的题干、问题、选项文字太少&#xff0c;会带来试卷上有较大的空白&#xff0c;既不美观又浪费纸&#xff0c;解决办法就是将试卷分栏&#xff0c;根据需要分成多栏&…

ubuntu 安装vmware tools

VMware Workstation菜单栏->虚拟机->安装VMware Tools 打开ubuntu内加载的光盘&#xff0c;复制VMwareTools-10.3.26-22085142.tar.gz&#xff0c;解压出来 sudo ./vmware-install.pl #执行安装软件 VMware Tools 安装完成以后重启Ubuntu&#xff0c;重启以后就可以直…

【实时Linux实战系列】在实时应用中进行负载均衡

在实时应用中&#xff0c;负载均衡是确保系统能够高效处理多个任务的关键技术。通过合理调度任务到不同的处理单元&#xff0c;负载均衡可以提高系统的整体性能&#xff0c;减少延迟&#xff0c;并提高资源利用率。在实时 Linux 系统中&#xff0c;负载均衡尤为重要&#xff0c…

bash的特性-命令和文件自动补全

一、前言在 Linux Shell 编程和日常使用中&#xff0c;Bash 的自动补全功能 是一个非常强大且实用的特性。它不仅可以节省输入时间&#xff0c;还能有效减少拼写错误&#xff0c;提升命令执行效率。本文将带你全面了解 Bash 的自动补全机制&#xff0c;包括&#xff1a;✅ 命令…

Ubuntu系统 系统盘和数据盘扩容具体操作

Linux磁盘配置和需求&#xff0c;以下是完整的操作方案&#xff1a; 可以看到系统盘vda3 还有48GB 数据盘则是还有512GB没有挂载使用&#xff0c;下面是完成数据扩容的具体操作 一、完成系统盘扩容&#xff08;使用98GB空间&#xff09; # 1. 扩展逻辑卷&#xff08;LVM架构&am…

从0到1学Pandas(七):Pandas 在机器学习中的应用

目录一、数据预处理1.1 特征提取1.2 数据标准化与归一化1.3 特征编码二、特征工程2.1 特征选择​2.2 特征组合与衍生​2.3 缺失值处理策略​三、模型训练与评估3.1 数据集划分3.2 模型训练与预测3.3 模型评估与调优四、Pipeline 构建4.1 自动化工作流4.2 模型部署与应用4.3 模型…

LangChain和LangGraph 里面的 `create_react_agent`有什么不同

这两个函数虽然名称相同&#xff0c;但来自不同的库&#xff08;LangChain 和 LangGraph&#xff09;&#xff0c;它们在实现和使用上有一些关键区别&#xff1a; 主要区别特性LangChain 的 create_react_agentLangGraph 的 create_react_agent所属库LangChainLangGraph设计目的…

PostgreSQL 与 Oracle 数据库字段类型的详细对比

一、数值类型对比数据类型OraclePostgreSQL说明整数NUMBER(p,0)SMALLINT/INT/BIGINTOracle 统一用 NUMBER&#xff0c;PG 区分精度范围浮点数BINARY_FLOATREAL单精度浮点双精度浮点BINARY_DOUBLEDOUBLE PRECISION双精度浮点高精度小数NUMBER(p,s)NUMERIC(p,s)精确数值存储自增序…

JVM 性能调优实战:让系统性能 “飞” 起来的核心策略

在 Java 应用的生命周期中&#xff0c;性能问题如同隐藏的 “暗礁”—— 初期可能不显眼&#xff0c;但随着用户量增长和业务复杂度提升&#xff0c;微小的性能损耗会被无限放大&#xff0c;最终导致系统响应迟缓、频繁卡顿甚至崩溃。JVM 性能调优的目标&#xff0c;就是通过优…

Android Handler 完全指南

在 Android 开发中&#xff0c;Handler 是线程通信的核心工具 —— 当你在子线程下载图片后需要更新 UI&#xff0c;当你在 TCP 连接中收到数据需要通知界面&#xff0c;当你需要延迟执行某个任务时&#xff0c;都会用到 Handler。这个看似简单的类&#xff0c;却蕴含着 Androi…

梳理Ego-Planner模式下5通道、6通道与无人机模式的关系

Copilot said: 你需要梳理Ego-Planner模式下5通道、6通道与无人机模式的关系&#xff0c;以及轨迹跟随、紧急情况和人工接管的流程。下面结合你的描述和三张图片&#xff0c;对核心逻辑进行总结和整理&#xff1a; --- ## 一、状态组合与对应模式&#xff08;见图1&#xff09;…