42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { tool } from "langchain"
|
|
import lunar from "lunar-javascript"
|
|
const { Solar, Lunar, HolidayUtil, TermUtil } = lunar
|
|
import { getAccurateTime } from "./utils.js"
|
|
|
|
/**
|
|
* 日历工具
|
|
* 提供准确时间、农历信息、节气、节日和老黄历等信息
|
|
*/
|
|
export const getCalendarInfoTool = tool(
|
|
async () => {
|
|
try {
|
|
// 获取准确时间
|
|
const timeInfo = await getAccurateTime()
|
|
|
|
// 获取农历信息
|
|
const date = new Date(timeInfo.timestamp)
|
|
const solar = Solar.fromDate(date)
|
|
const lunar = solar.getLunar()
|
|
|
|
// 组合返回结果
|
|
const result = {
|
|
time: timeInfo,
|
|
weekday: solar.getWeek(),
|
|
lunar: {
|
|
lunar: lunar.toString(),
|
|
solar: solar.toString(),
|
|
|
|
}
|
|
}
|
|
|
|
return JSON.stringify(result, null, 2)
|
|
} catch (error) {
|
|
console.error('Error in calendar tool:', error)
|
|
return JSON.stringify({ error: error.message }, null, 2)
|
|
}
|
|
},
|
|
{
|
|
name: "get_calendar_info",
|
|
description: "获取当前准确日期时间,以及对应的农历日期"
|
|
}
|
|
) |