当前位置: 首页 > wzjs >正文

网站模块顺序调整线上销售怎么做推广

网站模块顺序调整,线上销售怎么做推广,上海做网站价格,wordpress莫名文章针对智能设备语音指导大模型自动定闹钟策略 目前没有很好的办法让大模型提高定时这种准确任务,那么我就希望代码解析推算出准确时间,并由大模型播报,通过制作插件嵌入大模型解决定闹钟幻觉的问题: from runtime import Args from …

针对智能设备语音指导大模型自动定闹钟策略

目前没有很好的办法让大模型提高定时这种准确任务,那么我就希望代码解析推算出准确时间,并由大模型播报,通过制作插件嵌入大模型解决定闹钟幻觉的问题:

from runtime import Args
from typings.time_calculation.time_calculation import Input, Output
import re
import json
from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta
from dateutil.parser import parse
import randomclass SmartAlarmClock:def __init__(self, args):self.time_ranges = {'凌晨': (0, 6),'早上': (6, 8),'上午': (8, 11.5),'中午': (11.5, 13),'下午': (13, 18),'晚上': (18, 23)}self.chinese_num_map = {'零': 0, '一': 1, '二': 2, '两': 2, '三': 3, '四': 4,'五': 5, '六': 6, '七': 7, '八': 8, '九': 9,'十': 10}def _chinese_to_arabic(self, cn_num):"""转换中文数字到阿拉伯数字(0-99)"""if cn_num in self.chinese_num_map:return self.chinese_num_map[cn_num]if '十' in cn_num:parts = cn_num.split('十')ten = 10 if parts[0] == '' else self.chinese_num_map.get(parts[0], 0) * 10unit = self.chinese_num_map.get(parts[1], 0) if len(parts) > 1 else 0return ten + unitreturn 0def get_current_time_period(self):"""获取当前时间段名称"""now = datetime.now()current_hour = now.hour + now.minute / 60for period, (start, end) in self.time_ranges.items():if start <= current_hour < end:return periodreturn '晚上'def parse_chinese_time(self, text):"""解析中文时间表达式如'三点半'、'三点一刻'等"""pattern = r'([一二三四五六七八九十零]+)点(半|一刻|三刻|(\d+)分)?'match = re.search(pattern, text)if not match:return Nonehour_cn = match.group(1)hour = self.chinese_num_map.get(hour_cn, 0)if hour == 0:try:hour = int(hour_cn)except:return Noneminute_type = match.group(2)minute = 0if minute_type == '半':minute = 30elif minute_type == '一刻':minute = 15elif minute_type == '三刻':minute = 45elif match.group(3):minute = int(match.group(3))return hour, minutedef parse_time_expression(self, text, args):"""解析用户的时间表达式"""now = datetime.now()text = text.replace(' ', '')# 初始化默认时间为当前时间alarm_time = now.replace(second=0, microsecond=0)days_later = 0month = now.monthday = now.dayyear = now.yeardelta_match = re.search(r'('r'(\d+|半)(?:个?)?(小时|分钟|钟头|个小时|钟)?(?:\s*半)?'r'|(半钟头)'r'|(\d+\s*个\s*半\s*(?:小时|钟头|钟))'r'|(([一二三四五六七八九十两\d]+)刻钟?)'r')(后|以后)', text)if delta_match:num = 0unit = ''if delta_match.group(4):num = 0.5unit = '小时'elif delta_match.group(5):match = re.search(r'(\d+)\s*个\s*半', delta_match.group(5))if match:num = int(match.group(1)) + 0.5if any(word in delta_match.group(5) for word in ['小时', '钟头', '钟']):unit = '小时'else:unit = '分钟'elif delta_match.group(6):num_str = delta_match.group(7)if num_str.isdigit():num = int(num_str)else:num = self._chinese_to_arabic(num_str)unit = '分钟'num = num * 15else:num_str = delta_match.group(2)unit = delta_match.group(3) if delta_match.group(3) else ''if num_str == '半':num = 0.5if not unit:if '钟头' in delta_match.group(0):unit = '小时'else:unit = 'minutes'else:num = int(num_str)if unit in ['小时', '个钟头', '个小时', '钟']:delta = timedelta(hours=num)elif unit == '分钟':delta = timedelta(minutes=num)else:delta = timedelta(minutes=num if num != 0.5 else 30)alarm_time = now + deltaif alarm_time.day != now.day:alarm_time = alarm_time.replace(hour=0, minute=0, second=0, microsecond=0)return alarm_time# 处理日期部分if '大后天' in text or '大大后天' in text:days_later = text.count('大') + 2elif '后天' in text:days_later = 2elif '明天' in text:days_later = 1date_match = re.search(r'(\d{1,2})[月号](\d{1,2})?[号日]?', text)if date_match:if date_match.group(2):month = int(date_match.group(1))day = int(date_match.group(2))else:day = int(date_match.group(1))if day < now.day:month += 1if month > 12:month = 1year += 1# 应用日期调整if days_later > 0:alarm_time += timedelta(days=days_later)else:try:alarm_time = alarm_time.replace(year=year, month=month, day=day)except ValueError:import calendarlast_day = calendar.monthrange(year, month)[1]alarm_time = alarm_time.replace(year=year, month=month, day=last_day)# 处理时间段period_hour_adjust = 0for period, (start, end) in self.time_ranges.items():if period in text:if period in ['下午', '晚上']:period_hour_adjust = 12break# 提取具体时间hour = minute = 0chinese_time = self.parse_chinese_time(text)if chinese_time:hour, minute = chinese_timeelse:time_match = re.search(r'(\d{1,2})[:点](\d{1,2})?', text)if time_match:hour = int(time_match.group(1))minute = int(time_match.group(2)) if time_match.group(2) else 0# 应用时间段调整if hour != 0:# 处理时间段调整if (period_hour_adjust == 12 and hour < 12) or hour >= 13:hour += period_hour_adjusthour = hour % 24# 设置时间alarm_time = alarm_time.replace(hour=hour, minute=minute)# 检查是否需要调整到第二天if alarm_time <= now:# 如果用户没有明确指定时间段,且时间小于当前时间if period_hour_adjust == 0 and days_later == 0 and not date_match:# 如果是上午时间(0-12点),尝试调整为下午if hour < 12:alarm_time = alarm_time.replace(hour=hour+12)# 如果调整后时间仍然过去,则设置为第二天if alarm_time <= now:alarm_time += timedelta(days=1)alarm_time = alarm_time.replace(hour=hour)  # 恢复原始小时数else:# 下午时间已经过去,设置为第二天alarm_time += timedelta(days=1)return alarm_timedef generate_response(self, alarm_time, reminder_text):"""生成响应JSON"""now = datetime.now()if alarm_time is None:return json.dumps({"status": "error","message": "时间已过,无法设置过去的闹钟。"}, ensure_ascii=False)# 计算日期差值delta_days = (alarm_time.date() - now.date()).days# 确定日期显示方式if delta_days == 1:date_display = "明天"elif delta_days == 2:date_display = "后天"elif delta_days == 3:date_display = "大后天"elif delta_days > 3:date_display = f"{alarm_time.year}{alarm_time.month}{alarm_time.day}日"else:  # 当天date_display = "今天"time_str = alarm_time.strftime("%H:%M")time_str12 = alarm_time.strftime("%I:%M")hour = alarm_time.hour + alarm_time.minute / 60period = '凌晨'for p, (start, end) in self.time_ranges.items():if start <= hour < end:period = pbreakresponse_template = [f"收到!主人请放心, 将在{date_display} {period}{time_str12}准时提醒您{reminder_text}。",f"好的主人!您去忙吧,{date_display} {period}{time_str12},我会准时提醒您{reminder_text}。",f"好的,我会在{date_display} {period}{time_str12}提醒您{reminder_text}。",f"没问题包在我身上!,我会在{date_display} {period}{time_str12}准时提醒您{reminder_text}。"]# JSON模板仍使用原始日期格式JSON_template = str({"intention": "F", "date": alarm_time.strftime("%m/%d"), "time": time_str})return json.dumps({"status": "success","date": alarm_time.strftime("%m/%d"),"time": time_str,"period": period,"message": response_template[random.randint(0, 3)] + JSON_template}, ensure_ascii=False)def process_request(self, user_input, args):"""处理用户输入"""reminder_match = re.search(r'提醒我(.+)$|提醒(.+)$', user_input)reminder_text = reminder_match.group(1) or reminder_match.group(2) if reminder_match else "提醒您"alarm_time = self.parse_time_expression(user_input, args=args)return self.generate_response(alarm_time, reminder_text)def handler(args: Args[Input])->Output:alarm = SmartAlarmClock(args=args)response = alarm.process_request(args.input.user_description, args)return {"response": response}

插件输入输出参数配置:

在这里插入图片描述

结果展示

在这里插入图片描述

以上就是最终定时结果

http://www.dtcms.com/wzjs/199366.html

相关文章:

  • 自建站运营悟空建站seo服务
  • 怎么开一个做网站的工作室西安seo优化排名
  • 柳州企业网站建设价格如何推广平台
  • 销售类电商网站如何做优化谷歌商店下载官方
  • 做动漫主题的网站百度网站
  • 福建公司网站开发青岛网站推广系统
  • 宁波做网站的大公司有哪些最火的推广软件
  • wordpress电子书与公众号什么叫seo优化
  • 详情页设计论文东莞seo推广
  • 唐山网站建设唐山推动高质量发展
  • 如何购买网站流量百度网站推广排名优化
  • 有没有好的ppt网站做参考的全球最牛的搜索引擎
  • 服务佳的广州网站建设广州seo营销培训
  • 上虞网站建设文广网络网推怎么推广
  • 湖北网站定制开发价格表自己搭建一个网站
  • 网站微信收款二维码怎么做微信公众号怎么推广
  • 上海网页制作系统四川企业seo推广
  • 食品网站建设需求分析2019年 2022疫情爆发
  • wordpress整站密码访问公司的网站
  • 沧州网站优化搜索引擎营销的主要方法包括
  • 电子商务网站建设与管理的重要性郑州建网站的公司
  • 一家公司做两个网站怎么申请网址
  • 网站制作多少钱公司编程培训机构加盟哪家好
  • 国务院关于加强政府网站建设建网站用什么软件
  • 网站建设话术分析谷歌浏览器下载手机版最新版
  • godaddy域名 网站公安局备案网红推广接单平台
  • 广州官方网站建设黑客入侵网课
  • 合肥市网站制作淘宝运营主要做些什么
  • 怎样做网站测试企业优化推广
  • 品牌做网站还是app南宁网站建设服务公司