引文
针对Coze大模型对于农历日期支持不好的问题,如:今天农历是几号?我们可以把当天的农历信息告诉大模型来处理,进而需要日期插件这当天的农历日期。
创建Coze日期插件
安装依赖包
代码
from typing import TypedDict
from dataclasses import dataclass
from runtime import Args
import datetime
import logging
from lunarcalendar import Converter, Solar
# Input
class Input:
pass
# Output
class Output(TypedDict):
current_date: str # 格式: yyyy-MM-dd
current_time: str
lunar_date: str
weekday: str
week_number: str
message: str
# Configure logging
logging.basicConfig(level=logging.INFO)
def get_weekday_cn(weekday: str) -> str:
weekday_mapping = {
"Monday": "星期一",
"Tuesday": "星期二",
"Wednesday": "星期三",
"Thursday": "星期四",
"Friday": "星期五",
"Saturday": "星期六",
"Sunday": "星期日"
}
return weekday_mapping.get(weekday, weekday)
def get_current_datetime_info() -> dict:
try:
# Get the current date and time
now = datetime.datetime.now()
# Solar date (格式改为 yyyy-MM-dd)
current_date = now.strftime("%Y-%m-%d")
# Lunar date
solar_date = Solar(now.year, now.month, now.day)
lunar_date = Converter.Solar2Lunar(solar_date)
# Weekday (Chinese)
weekday = now.strftime("%A")
weekday_cn = get_weekday_cn(weekday)
# ISO standard week number
week_number = now.isocalendar()[1]
# Current time (HH:MM)
current_time = now.strftime("%H:%M")
return {
"current_date": current_date, # 使用新格式
"lunar_date": f"{lunar_date.year}年{lunar_date.month}月{lunar_date.day}日",
"weekday": weekday_cn,
"week_number": f"第{week_number}周",
"current_time": current_time,
"message": "success"
}
except Exception as e:
logging.error(f"An error occurred while getting datetime information: {e}")
return {
"message": f"获取日期信息时发生错误: {str(e)}"
}
def handler(args: Args[Input]) -> Output:
datetime_info = get_current_datetime_info()
return {
"current_date": datetime_info.get("current_date", ""),
"current_time": datetime_info.get("current_time", ""),
"lunar_date": datetime_info.get("lunar_date", ""),
"weekday": datetime_info.get("weekday", ""),
"week_number": datetime_info.get("week_number", ""),
"message": datetime_info.get("message", "success")
}
注意:Coze的ide不能直接复制,我们可以使用期自带的AI能力,将代码复制到AI输入框后,在代码的右下角补充:将代码原样输出即可。
测试结果:
{
"current_date": "2025-07-22",
"current_time": "10:56",
"lunar_date": "2025年6月28日",
"message": "success",
"week_number": "第30周",
"weekday": "星期二"
}