tmp
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import { tool } from "langchain"
|
||||
import lunarLib from "lunar-javascript"
|
||||
const { Solar } = lunarLib
|
||||
|
||||
/**
|
||||
* 特定日期日历工具
|
||||
* 基于 lunar-javascript 提供指定日期的完整农历信息
|
||||
*/
|
||||
export const getLunarCalendarInfoTool = tool(
|
||||
async ({ year, month, day }) => {
|
||||
try {
|
||||
const solar = Solar.fromYmd(year, month, day)
|
||||
const lunar = solar.getLunar()
|
||||
|
||||
const result = {
|
||||
solar: solar.toString(),
|
||||
weekday: `星期${solar.getWeekInChinese()}`,
|
||||
lunar: lunar.toString(),
|
||||
ganzhiYear: lunar.getYearInGanZhi(),
|
||||
zodiac: lunar.getYearShengXiao(),
|
||||
solarTerms: lunar.getJieQi() || null,
|
||||
festivals: [...solar.getFestivals(), ...lunar.getFestivals()],
|
||||
yi: lunar.getDayYi(),
|
||||
ji: lunar.getDayJi(),
|
||||
xiShen: lunar.getDayPositionXiDesc(),
|
||||
caiShen: lunar.getDayPositionCaiDesc()
|
||||
}
|
||||
|
||||
return JSON.stringify(result, null, 2)
|
||||
} catch (error) {
|
||||
return JSON.stringify({ error: error.message }, null, 2)
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "get_lunar_calendar_info",
|
||||
description: "获取指定日期的日历信息,包括农历信息、老黄历、当年生肖、今日宜忌、喜神方位、财神方位、今日节气、今日节日等",
|
||||
schema: {
|
||||
type: "object",
|
||||
properties: {
|
||||
year: {
|
||||
type: "number",
|
||||
description: "年份",
|
||||
minimum: 1900,
|
||||
maximum: 2100
|
||||
},
|
||||
month: {
|
||||
type: "number",
|
||||
description: "月份",
|
||||
minimum: 1,
|
||||
maximum: 12
|
||||
},
|
||||
day: {
|
||||
type: "number",
|
||||
description: "日期",
|
||||
minimum: 1,
|
||||
maximum: 31
|
||||
}
|
||||
},
|
||||
required: ["year", "month", "day"]
|
||||
}
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user