千问32B大模型离线回答日期问题
【代码】千问32B大模型离线回答日期问题。
·
图片来源极简壁纸
离线大模型如何回答日期时间?
- 如 [“大前天哪一天”,“下个月第一周的周四是几号”,“去年的今天的大前天是哪一天?”,“昨天的昨天是几号”,“前天的后天是哪一天”,“去年的前天是星期几”,“上年圣诞节是什么时候”]
- 目前我的解决方案是通过提示词让模型理解日期然后回答
- 具体做法 提取字符串里的日期 转为日期格式 再加星期内容
- 优点:离线通过提示词能够回答大部分日期问题
- 缺点:目前测试对上年、去年的这种问题理解的不太行 是因为这种日期转出来是 yyyy-mm-dd 导致模型理解有问题 暂时没什么解决的头绪
代码
import json
import time
from datetime import datetime
import jionlp as jio
import jieba
import requests
def qwen_time(question):
now = time.localtime()
nowt = time.strftime("%Y-%m-%d %H:%M:%S", now) # 这一步就是对时间进行格式化
_re_time = jio.ner.extract_time(question, time_base=time.time())
if _re_time:
week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
_week = datetime.strptime(str(nowt), "%Y-%m-%d %H:%M:%S")
data_time = f"- 今天的当前时间为:{nowt} {week_list[_week.weekday()]}, "
seg_list = jieba.cut(question, cut_all=False)
for q1 in seg_list:
re_time = jio.ner.extract_time(q1, time_base=time.time())
# print(re_time)
for i in re_time:
if type(i["detail"].get("time", "")) == list:
d_time = i["detail"]["time"][0]
_week = datetime.strptime(d_time, "%Y-%m-%d %H:%M:%S")
data_time += f'\n- {i["text"]}日期是:{d_time.split(" ")[0]} {week_list[_week.weekday()]}。'
question = f'{data_time}\n- 理解日期的内容,并进行日期计算回答问题:{question}'
data = {"query": question, "knowledge_base_name": "sample_yanshi", "history": [], "stream": False, "source": 2}
data = json.dumps(data)
resource = requests.post(url="http://xxxxxxxxx/xxxxx", data=data).json()["answer"]
print(f"[问]:{question}")
print(f"[答]:{resource}\n")
if __name__ == '__main__':
a = ["大前天哪一天","下个月第一周的周四是几号","去年的今天的大前天是哪一天?","昨天的昨天是几号","前天的后天是哪一天","去年的前天是星期几","上年圣诞节是什么时候"]
for i in a:
qwen_time(i)
[问]:- 今天的当前时间为:2024-12-04 15:52:22 星期三,
- 大前天日期是:2024-12-01 星期日。
- 理解日期的内容,并进行日期计算回答问题:大前天哪一天
[答]:大前天是星期日,也就是2024年12月1日。
[问]:- 今天的当前时间为:2024-12-04 15:52:24 星期三,
- 下个月日期是:2025-01-01 星期三。
- 周四日期是:2024-12-05 星期四。
- 理解日期的内容,并进行日期计算回答问题:下个月第一周的周四是几号
[答]:下个月的第一周的周四,就是在2025年1月2日,那时候你会迎接一个超级美好的周四哦!
[问]:- 今天的当前时间为:2024-12-04 15:52:27 星期三,
- 去年日期是:2023-01-01 星期日。
- 今天日期是:2024-12-04 星期三。
- 大前天日期是:2024-12-01 星期日。
- 理解日期的内容,并进行日期计算回答问题:去年的今天的大前天是哪一天?
[答]:去年的今天的大前天,就像是在玩时间穿梭游戏一样,其实是落在了2022年的12月30日,星期六。
[问]:- 今天的当前时间为:2024-12-04 15:52:29 星期三,
- 昨天日期是:2024-12-03 星期二。
- 昨天日期是:2024-12-03 星期二。
- 理解日期的内容,并进行日期计算回答问题:昨天的昨天是几号
[答]:昨天的昨天就是前天哦,那是2024年12月2日,一个礼拜一呢。
[问]:- 今天的当前时间为:2024-12-04 15:52:31 星期三,
- 前天日期是:2024-12-02 星期一。
- 后天日期是:2024-12-06 星期五。
- 理解日期的内容,并进行日期计算回答问题:前天的后天是哪一天
[答]:前天的后天就是今天哦,所以是2024年12月4日,星期三,一个充满活力的日子呢!
[问]:- 今天的当前时间为:2024-12-04 15:52:34 星期三,
- 去年日期是:2023-01-01 星期日。
- 前天日期是:2024-12-02 星期一。
- 理解日期的内容,并进行日期计算回答问题:去年的前天是星期几
[答]:去年的前天是星期六,那是2022年12月31日,距离现在有一年的时间哦。
[问]:- 今天的当前时间为:2024-12-04 15:52:36 星期三,
- 上年日期是:2023-01-01 星期日。
- 圣诞节日期是:2024-12-25 星期三。
- 理解日期的内容,并进行日期计算回答问题:上年圣诞节是什么时候
[答]:上年的圣诞节是在2023年12月25日,那时候还是星期一呢,是不是感觉时间过得飞快呀?
更多推荐
所有评论(0)