如果你在搜索 AstroSage API,通常是想做三类产品之一:
- 回答出生星盘问题的占星聊天应用。
- WhatsApp、Telegram、Discord 或网站机器人。
- 一整套占星平台,包含吠陀星盘、dasha、Panchang、婚配、运势和匹配功能。
FreeAstroAPI 与 AstroSage 没有关联。对开发者有价值的是架构思路:我们的吠陀与占星端点返回生产级结构化结果,覆盖范围足以构建类似 AstroSage 的用户体验。
换句话说,不要让 LLM 编造星盘计算。API 负责确定性占星数据,AI 层负责把数据解释清楚。
为什么类似 AstroSage 的应用需要结构化占星数据
如果机器人试图只靠提示词计算所有内容,占星聊天产品很容易出错。模型可能语气自信,但上升点、月亮 Nakshatra、Vimshottari dasha、Panchang 或匹配细节却是错的。
更适合生产的做法:
- 解析用户城市、时区、纬度和经度。
- 调用星盘、dasha、Panchang、行运或匹配端点。
- 保存结构化响应,作为唯一可信数据源。
- 让聊天模型只解释 API 返回的数据。
- 保留内部引用,明确答案来自哪个端点响应。
这样既能让应用拥有智能助理体验,又能保证计算确定且可复现。
类似 AstroSage 的机器人所需核心端点
| 使用场景 | 端点 |
|---|---|
| 解析城市输入 | GET /api/v2/geo/search |
| 生成吠陀出生星盘 | POST /api/v2/vedic/chart |
| 一次请求生成完整吠陀数据 | POST /api/v2/vedic/calculate |
| 获取 Vimshottari dasha 周期 | POST /api/v2/vedic/dasha |
| 获取供 AI 解读的 dasha 事实 | POST /api/v1/vedic/dasha/insights |
| 构建 Gochar 时间线功能 | POST /api/v2/vedic/gochar/timeline |
| 把 Gochar 转成 AI 就绪事实 | POST /api/v2/vedic/gochar/timeline/insights |
| 检测 yoga | POST /api/v2/vedic/yogas |
| 计算 Shadbala 与 Ashtakavarga | POST /api/v2/vedic/strength |
| 生成分盘 | POST /api/v2/vedic/vargas |
| 生成 Panchang | POST /api/v2/vedic/panchang |
| 根据出生信息匹配两人 | POST /api/v2/vedic/match |
| 根据出生信息或月亮信息计算匹配度 | POST /api/v2/vedic/compatibility |
需要新用户引导所需的完整响应时,用 POST /api/v2/vedic/calculate。某个聊天回合只问一个问题时,则用更专门的端点,例如“我现在处于哪个 dasha?”或“今天适合开始新事情吗?”。
推荐的 MCP 聊天流程
如果你的应用是 AI Agent,优先使用托管式 MCP 或自己的工具调用层,不要把每个端点硬塞进提示词。
流程:
- 分析用户问题,判断需要哪个占星事实。
- 检查所需 JSON 是否已在缓存中。
- 缓存未命中时,选择正确的 MCP 工具或 API 端点。
- 用用户保存的出生数据和当前问题上下文调用工具。
- 按端点、输入哈希、用户 ID 和时间戳缓存原始 JSON。
- 给 AI 用户问题和相关 JSON。
- 要求 AI 只根据 JSON 写最终回答,不补编缺失事实。
第一轮 AI 更像路由器,不直接回答用户:
{
"intent": "current_dasha_question",
"needs_tool": true,
"tool": "vedic_dasha",
"cache_key": "user_123:vedic_dasha:2026-04-24:lahiri",
"reason": "The user asked which dasha is active today."
}然后由后端执行工具调用并保存 JSON,再进行第二轮 AI 调用:
User question:
{question}
Tool JSON:
{cached_or_fresh_json}
Instruction:
Answer only from the Tool JSON. If the JSON does not contain the requested fact, say what additional tool or birth detail is needed.这比让模型在一轮里判断、计算、解释都可靠。
缓存策略
按用户、端点、规范化输入、日期或日期范围缓存。
| 数据类型 | 建议缓存方式 |
|---|---|
| 出生星盘、varga、yoga、强度 | 除非出生数据变化,否则永久缓存。 |
| Dasha 时间线 | 永久缓存,但要按新的参考日期重新判断当前周期。 |
| Panchang、每日运势、今日四柱 | 按日期和地点缓存。 |
| Gochar 或行运时间线 | 按日期范围、行星和设置缓存。 |
| 匹配度或配对 | 按两个用户档案和关系设置缓存。 |
始终保存完整原始 JSON。可以另存一个小型“事实”对象用于检索,但原始响应对调试和答案审计很重要。
后续问题处理
后续消息应先复用上下文,再考虑新的工具调用。
| 后续问题 | 处理方式 |
|---|---|
| “为什么?” | 复用前一个 JSON,把证据解释得更清楚。 |
| “那明天呢?” | 保持同一出生档案,调用与明天相关、日期敏感的端点。 |
| “那我的伴侣呢?” | 如果伴侣数据缺失,先询问;已有则调用匹配端点。 |
| “显示星盘” | 调用星盘渲染端点,或用缓存的星盘数据渲染 UI。 |
| “说简单一点” | 不调用新的占星端点,只简化同一回答。 |
| “改用西方占星” | 明确切换体系,调用对应的西方占星端点。 |
把对话记忆、缓存的占星事实和新工具调用分开,后续对话会稳定很多。
可组合的公共端点
吠陀占星端点
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/v2/vedic/chart | 生成含上升点、行星、宫位、Nakshatra 上下文和元数据的吠陀 D1 星盘。 |
POST | /api/v2/vedic/calculate | 生成完整吠陀数据包,可选含 varga、dasha、yoga、Panchang、Shadbala 和 Ashtakavarga。 |
POST | /api/v2/vedic/dasha | 生成校准后的 Vimshottari dasha 时间线和当前周期。 |
POST | /api/v1/vedic/dasha/insights | 提取 AI 就绪的 dasha 事实。 |
POST | /api/v2/vedic/gochar/timeline | 生成吠陀行运与 Gochar 时间窗口。 |
POST | /api/v2/vedic/gochar/timeline/insights | 提取用于搜索、RAG 和聊天解读的 Gochar 事实。 |
POST | /api/v2/vedic/yogas | 检测 yoga,并提供依据与强度。 |
POST | /api/v2/vedic/strength | 生成 Shadbala、Sarvashtakavarga、Bhinnashtakavarga 和强度数据。 |
POST | /api/v2/vedic/vargas | 生成 D1、D9、D10、D30、D60 等分盘。 |
POST | /api/v2/vedic/panchang | 生成 Tithi、Nakshatra、Yoga、Karana、星期、Rahu Kalam、日出和日落。 |
POST | /api/v2/vedic/match | 根据出生信息进行匹配。 |
POST | /api/v2/vedic/compatibility | 根据出生信息或手动提供的月亮信息计算匹配度。 |
西方占星端点
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/v1/natal/calculate | 计算西方本命盘,并可创建报告任务。 |
GET | /api/v1/natal/report/{job_id} | 轮询生成中的心理报告。 |
POST | /api/v1/western/natal/insights | 为 AI 产品输出机器可读的本命事实。 |
POST | /api/v1/western/natal/insights/index-documents | 为本命事实生成搜索索引文档。 |
POST | /api/v1/transits/calculate | 计算行运星盘。 |
POST | /api/v1/western/transits/timeline | 生成长时间范围的行运对本命时间线。 |
POST | /api/v1/western/transits/timeline/index-documents | 为行运时间线生成搜索索引文档。 |
POST | /api/v1/western/transits/insights | 生成更高层的行运洞察窗口。 |
POST | /api/v1/western/transits/search | 在长时间窗口中搜索精确行运经过。 |
POST | /api/v1/western/synastry | 生成完整西方合盘。 |
POST | /api/v1/western/synastry/simplified | 返回更轻量的合盘响应。 |
POST | /api/v1/western/synastry/summary | 生成合盘摘要评分。 |
POST | /api/v1/western/synastrycards | 输出适合移动端的合盘卡片。 |
POST | /api/v1/western/synastry/horoscope | 生成每日或考虑时间因素的关系运势。 |
POST | /api/v1/western/solar/calculate | 计算太阳返照。 |
POST | /api/v1/western/returns/calculate | 进行通用行星返照计算。 |
POST | /api/v1/western/profections/annual | 计算年度小限时间。 |
POST | /api/v1/western/progressions/secondary | 计算次限推运。 |
POST | /api/v1/western/progressions/converse-secondary | 计算反向次限推运。 |
POST | /api/v1/western/progressions/tertiary | 计算三限推运。 |
POST | /api/v1/western/progressions/quotidian | 计算日推运。 |
POST | /api/v1/western/progressions/quaternary | 计算四限推运。 |
POST | /api/v1/western/progressions/{system}/exact-ingresses | 为各推运体系搜索精确入座。 |
POST | /api/v1/western/progressions/{system}/exact-aspects | 为各推运体系搜索精确相位。 |
POST | /api/v1/western/progressions/{system}/calendar | 输出推运日历。 |
星盘渲染与可视化端点
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/v1/natal/chart/ | 将本命盘渲染为 SVG 或 PNG。 |
POST | /api/v1/natal/chart/transits | 渲染本命盘与行运盘。 |
POST | /api/v1/natal/chart/composite | 渲染组合关系盘。 |
POST | /api/v1/natal/chart/synastry | 渲染合盘。 |
POST | /api/v1/svg/kerykeion | 生成与 Kerykeion 兼容的 SVG。 |
地理占星端点
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/v1/western/astrocartography/lines | 生成地图所需的行星线几何数据。 |
POST | /api/v1/western/astrocartography/parans | 生成 Paran 几何数据和交叉带。 |
POST | /api/v1/western/astrocartography/recommendations | 返回按分数排序的地点建议。 |
POST | /api/v1/western/astrocartography/city-check | 为某个城市打分。 |
POST | /api/v1/western/astrocartography/relocation | 生成迁移盘和轴点上下文。 |
运势与基础星座端点
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /api/v1/horoscope/daily/sign | 获取单个星座的每日运势。 |
GET | /api/v1/horoscope/daily/bulk | 获取所有星座的每日运势。 |
POST | /api/v1/horoscope/daily/personal | 根据出生数据生成个性化每日运势。 |
GET | /api/v2/horoscope/daily/sign | 获取 V2 星座运势。 |
POST | /api/v2/horoscope/daily/personal | 生成 V2 个性化运势。 |
POST | /api/v3/horoscope/daily/personal | 最新的个性化运势生成路由。 |
POST | /api/v1/western/signs/sun | 计算太阳星座。 |
POST | /api/v1/western/signs/moon | 计算月亮星座。 |
POST | /api/v1/western/signs/rising | 计算上升星座。 |
POST | /api/v1/western/signs/midheaven | 计算天顶星座。 |
中国占星端点
| 方法 | 路径 | 用途 |
|---|---|---|
POST | /api/v1/chinese/bazi | 计算八字四柱。 |
POST | /api/v1/chinese/bazi/flow | 计算八字流年和流月。 |
GET | /api/v1/chinese/bazi/dictionary | 获取八字互动与神煞词典。 |
GET | /api/v1/chinese/today | 获取当前时刻的四柱。 |
POST | /api/v1/chinese/bazi/time-correction | 校正真太阳时。 |
POST | /api/v1/chinese/bazi/synastry | 计算八字合盘。 |
POST | /api/v1/chinese/bazi/lifespan | 生成《内经》生命曲线。 |
POST | /api/v1/chinese/bazi/health | 分析体质与健康倾向。 |
实用工具与平台端点
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /api/v2/geo/search | 进行需认证的城市搜索。 |
GET | /api/v1/geo/search | 使用旧版城市搜索。 |
POST | /api/v1/ephemeris/calculate | 通过 POST 计算星历。 |
GET | /api/v1/ephemeris | 通过查询字符串计算星历。 |
GET | /api/v1/moon/phase | 获取月相、星座、可视化和解读。 |
GET | /api/v1/moon/month | 获取月度月相时间线。 |
POST | /api/v1/ai/generate | 生成单项 AI 报告。 |
GET | /mcp | 访问托管式 MCP 端点。 |
POST | /mcp | 发起托管式 MCP 工具调用。 |
POST | /api/v1/auth/keys | 创建 API key。 |
GET | /api/v1/auth/keys | 列出 API keys。 |
DELETE | /api/v1/auth/keys/{key_id} | 删除 API key。 |
GET | /api/v1/auth/logs | 获取 API 用量日志。 |
GET | /api/v1/billing/plans | 列出计费套餐。 |
POST | /api/v1/billing/checkout | 创建结账会话。 |
POST | /api/v1/billing/portal | 创建客户门户会话。 |
POST | /api/v1/contact | 发送联系消息。 |
POST | /api/v1/contact/suggestion | 发送产品建议。 |
逐步构建聊天应用
第 1 步:一次性收集出生数据
新用户引导表单应收集:
- 姓名
- 出生日期
- 出生时间
- 出生城市
- 如可获取,收集纬度和经度
- 时区,或使用
AUTO
生产环境中,坐标比城市名可靠,因为很多城市同名。使用城市搜索帮助用户选对地点。
curl -G "https://api.freeastroapi.com/api/v2/geo/search" \
-H "x-api-key: YOUR_API_KEY" \
--data-urlencode "q=Mumbai" \
--data-urlencode "country=IN" \
--data-urlencode "limit=5"第 2 步:创建用户的核心吠陀档案
完成新用户引导后,调用完整计算端点,把响应保存为用户的占星档案。
curl -X POST "https://api.freeastroapi.com/api/v2/vedic/calculate" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"year": 1994,
"month": 8,
"day": 11,
"hour": 6,
"minute": 42,
"city": "Mumbai",
"lat": 19.0760,
"lng": 72.8777,
"tz_str": "AUTO",
"ayanamsha": "lahiri",
"vargas": [1, 9, 10],
"include_yogas": true,
"include_panchang": true,
"include_shadbala": true,
"include_ashtakavarga": true,
"dasha_levels": 3
}'这个响应足以回答 Lagna、月亮 Nakshatra、当前 dasha、事业 yoga、D9 和婚姻等常见问题。
第 3 步:路由每个用户问题
不要为每条消息调用所有端点。先对意图分类。
| 用户问题 | API 调用 |
|---|---|
| “解读一下我的出生星盘” | 使用已保存的 /api/v2/vedic/calculate 数据。 |
| “我现在处于哪个 dasha?” | 调用 POST /api/v2/vedic/dasha,或使用已保存的 dasha 数据。 |
| “这个月会发生什么?” | 调用 POST /api/v2/vedic/gochar/timeline/insights。 |
| “今天吉利吗?” | 调用 POST /api/v2/vedic/panchang。 |
| “我们合适吗?” | 调用 POST /api/v2/vedic/match 或 /api/v2/vedic/compatibility。 |
| “生成我的每日运势” | 调用 POST /api/v3/horoscope/daily/personal。 |
| “显示我的星盘轮” | 调用 POST /api/v1/natal/chart/,或用 /api/v2/vedic/chart 数据构建吠陀表格 UI。 |
这样可以控制延迟和成本。
第 4 步:把结构化事实传给 LLM
提示词应要求 LLM 解释 API 响应,不要重新计算。
You are an astrology assistant for a Vedic astrology app.
Use only the structured API facts below.
Do not invent planetary positions, dashas, Nakshatras, yogas, or compatibility scores.
If the needed fact is missing, ask for the missing input or say that this endpoint was not called.
User question:
{user_message}
FreeAstroAPI facts:
{json_from_relevant_endpoint}第 5 步:添加记忆,但不改变星盘
- 永久事实:出生数据、星盘落点、dasha 时间线、varga、出生时的 Panchang。
- 会话记忆:偏好语言、语气、当前目标、关系背景、最近的问题。
- 最新事实:今日 Panchang、当前 dasha、当前 Gochar、每日运势。
这样可以避免助理把之前的解读误当成新的星盘事实。
第 6 步:构建安全的回答模板
每个聊天答案最好有固定形状:
- 直接回答,一两句话。
- 来自 API 响应的证据。
- 实用解释。
- 可选的下一步问题或动作。
You are currently in Moon Mahadasha and Saturn Antardasha.
The API dasha payload shows Moon as the active Mahadasha lord and Saturn as the active sub-period lord for the selected reference date.
This usually focuses the reading on emotional security, home, responsibility, and long-term discipline.
If you want, I can compare this dasha with your current Gochar timeline.建议的应用架构
在前端和 FreeAstroAPI 之间加入一个小型后端。
User interface
-> Your backend chat route
-> Intent classifier
-> FreeAstroAPI endpoint call
-> Structured payload store
-> LLM response generation
-> Chat answer with endpoint-backed facts不要在浏览器 JavaScript 中暴露 API key。x-api-key 应保留在服务器端。
最小 Node.js 服务器示例
const API_BASE = "https://api.freeastroapi.com";
async function getVedicProfile(birthData: Record<string, unknown>) {
const response = await fetch(`${API_BASE}/api/v2/vedic/calculate`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": process.env.FREEASTROAPI_KEY || "",
},
body: JSON.stringify({
...birthData,
tz_str: "AUTO",
ayanamsha: "lahiri",
vargas: [1, 9, 10],
include_yogas: true,
include_panchang: true,
include_shadbala: true,
include_ashtakavarga: true,
dasha_levels: 3,
}),
});
if (!response.ok) {
throw new Error(`FreeAstroAPI request failed: ${response.status}`);
}
return response.json();
}SEO 内容策略
如果公开发布应用,可以围绕真实搜索意图建立页面:
- “AstroSage API 替代方案”
- “吠陀占星 API”
- “开发者 Kundli API”
- "Dasha API"
- "Panchang API"
- “占星聊天机器人 API”
- “构建占星机器人”
每个页面都应解释具体功能、展示实时示例、列出所用端点并链接到文档。
常见错误
- 不要让 LLM 根据原始出生数据计算星盘。
- 不要忽略时区和历史地点处理。
- 不要为每条消息调用昂贵的端点。
- 不要在未标注体系的情况下混用西方占星和吠陀概念。
- 不要把生成式解读当成确定性星盘数据。
- 不要只保存最终文本,也要保存 API 响应。
开始构建
FreeAstroAPI 提供吠陀星盘、dasha、Panchang、匹配、Gochar、运势、西方星盘、合盘、月球数据和星盘渲染的计算层。
先接入吠陀计算端点,再添加 dasha 和 Panchang 意图,之后扩展到匹配、Gochar 和每日运势。