Coze当天日期插件

引文

针对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": "星期二"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值