【免费下载链接】VedAstro
A non-profit, open source project to make Vedic Astrology easily available to all.
VedAstro 是一个非营利、开源的吠陀占星(Vedic Astrology)项目,其核心亮点是免费的 AI 占星聊天服务ChatAPI。它把Cohere Embeddings 向量检索、NLP 余弦相似度和多款大语言模型(LLM)串成一条流水线,让你能用自然语言追问自己星盘(Kundli)里的任何一条预测。本文面向新手,用最少代码把这套“AI 占星师”是如何工作的讲清楚 🧿
VedAstro 与 ChatAPI:一个能对话的 AI 占星师
VedAstro 用 C# 实现了完整的吠陀占星计算引擎(行星位置、Dasa 大运、宫位力量等),而 ChatAPI 是它在 ChatAPI.razor 页面暴露出来的对话式入口。它的定位是:
- 🗣️对话式解读:针对你的出生时间,把几百条预测变成可追问的聊天
- 🔍语义检索:用 Cohere Embeddings 把问题“翻译”成向量,再找到最相关的预测
- 🎯多模型分工:Cohere Command R Plus 负责主答,Mistral、Llama 等负责筛选与润色
- 🌍完全开源:用户反馈会沉淀为公开的学习数据集,持续“喂”给模型
一次提问的完整流水线:从输入到回答
在 ChatAPI.cs 中,一条用户消息会经过这样的流程:
- 防呆检查:问题太短(少于 5 个字符)或被识别为“何时发生”类问题,直接给提示,引导你去 Life Predictor 页面
- 切片:
GetPredictionAsChunks()把整份星盘的预测清单算出每条的Weight(权重)——基于 Shadbala 宫位/行星力量求和,按权重排序后打包成文本块 - 语义筛选:
PickOutMostRelevantPredictions_*()让轻量 LLM 从整块文本中挑出与问题最相关的几条 - 生成回答:
AnswerQuestionDirectly_CohereCommandRPlus()以“自信的专业占星师”为系统提示,基于筛选结果作答(Temperature 0.9、TopP 0.1) - 追问:回复附带固定追问按钮Why? / How? / Tell me more...,追问会携带上一轮问答上下文再次进入 LLM
每一轮对话(人类和 AI 的消息)都会写入 Azure 的ChatMessage表,为后续反馈学习留好数据。
Cohere Embeddings 是怎么接入的?
向量生成集中在 LLMEmbeddingManager.cs 和GetEmbeddingsForTextList_CohereEmbed():
- 调用 Azure 上托管的Cohere
embed-english-v3.0无服务器推理端点 - 每次最多发送95 条文本,超出自动分批并合并结果
- 请求体里用
input_type区分用途:问题用search_query,文档用search_document——这正是语义搜索的最佳实践:两侧用不同视角嵌入,检索更准
检索结果存入 Azure 表PresetQuestionEmbeddings,实体定义见 PresetQuestionEmbeddingsEntity.cs,开源样本数据在 PresetQuestionEmbeddings.csv。
余弦相似度:找到“最相关”的那条预测
向量拿到之后,比的是方向而不是长度。核心公式在 NLPTools.cs 的CosineSimilarity():
相似度 = 两向量点积 ÷(各自模长之积),取值 -1 到 1,越接近 1 语义越一致
GetSimilarity()对每个候选预测计算一次分数、按分数降序排列,取 Top 结果交给 LLM。同文件里还有简易分词器Tokenize()和词袋模型工具,方便你理解从文本到向量的完整链路。
另外,DocToEmbeddings/Program.cs 展示了进阶玩法:把整本《Muhurtha Or Electional Astrology》PDF 抽取成树状文本块(Chunk),为将来“占星书籍语义搜索”打基础。
让 AI 占星师越用越聪明
ChatAPI 页面特别强调两点:
- 即时学习:每次“好/坏”反馈都会进入模型的决策路径,AI 相当于实时纠正错误
- 开放回馈:匿名学习模型会上传到 HuggingFace 开源数据集(见 HuggingFace/ 目录),让整个社区受益
想深入了解接口细节,可以翻阅 nlp-api-url-guide.jpg 中的 URL 结构说明图。
关键源码路径速查 📁
| 模块 | 路径 | 作用 |
|---|---|---|
| 对话主逻辑 | ChatAPI.cs | 提问分流、LLM 调用、消息存储 |
| 向量生成 | LLMEmbeddingManager.cs | Cohere / Ada 嵌入 API 封装 |
| NLP 基础工具 | NLPTools.cs | 余弦相似度、分词、词袋 |
| 嵌入数据表 | PresetQuestionEmbeddingsEntity.cs | 预设问题向量实体 |
| 前端页面 | ChatAPI.razor | 聊天 UI 与服务说明 |
| 文档向量化 | DocToEmbeddings/Program.cs | PDF 切块入库实验 |
总结
VedAstro 的 ChatAPI 是“向量检索 + LLM 生成”这一主流 RAG 思路在占星领域的完整落地:Cohere Embeddings 负责理解你问的是什么,NLP 余弦相似度负责选出对的预测,LLM 负责说得像一位占星师。作为全球首个完全开源的吠陀 AI 占星项目,它的每一层逻辑都摊开在仓库里,非常适合想学习 NLP 应用与 LLM 工程实践的开发者阅读和二次开发 ✨
【免费下载链接】VedAstro
A non-profit, open source project to make Vedic Astrology easily available to all.
相关推荐
VedAstro完整指南:这个免费开源的吠陀占星平台如何3分钟生成你的Vedic星盘
VedAstro完整指南:这个免费开源的吠陀占星平台如何3分钟生成你的Vedic星盘 VedAstro 是一个非营利的 免费开源吠陀占星(Vedic Astro
吠陀占星Dasa周期计算原理:VedAstro Vimshottari Dasa八级周期源码深潜
吠陀占星Dasa周期计算原理:VedAstro Vimshottari Dasa八级周期源码深潜 VedAstro 是一个非营利开源项目,目标是让吠陀占星(Ve
VedAstro准确性揭秘:吠陀占星为何能提前预测Steve Jobs与Marilyn Monroe的人生节点
VedAstro准确性揭秘:吠陀占星为何能提前预测Steve Jobs与Marilyn Monroe的人生节点 VedAstro 是一个非营利开源项目,用算法化
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考