Skip to content

AI and Predictions

Edoardo BAROLO edited this page Jul 17, 2026 · 1 revision

AI & Predictions

OpenJyotish integrates with local LLMs for chart interpretation, teaching, and predictions.

Setup

# Ollama
ollama pull llama3.2          # or mistral, qwen2.5:14b
ollama pull nomic-embed-text  # for vector search
ollama serve

# LM Studio
# Load a model (llama3.2, mistral, etc.)
# Load nomic-embed-text-v1.5 for embeddings

Auto-detection: OpenJyotish probes LM Studio (port 1234) first, then Ollama (11434).

RAG Pipeline

The AI receives a comprehensive prompt containing:

  • Chart data — all 9 planets with signs, houses, nakshatras
  • Strengths — Shadbala, Bhava Bala, Vimsopaka Bala
  • Yogas — all detected combinations
  • Dasa periods — current MD/AD with upcoming transitions
  • Transits — current positions with SAV scores
  • Ashtakavarga — SAV bindus per sign
  • Chalit shifts — cusp-based house changes
  • Special points — upagrahas, lagnas, karakas
  • Learning data — KP sub-lords, marana karaka, vaiseshikamsas
  • Textbook citations — FTS5 or vector search results

Commands

# Full chart reading
jhora ai "birthdata"

# Topic-specific
jhora ai --topic career "birthdata"
jhora ai --topic relationship "birthdata"
jhora ai --topic health "birthdata"

# Question answering
jhora ai --mode ask -q "When will I marry?" "birthdata"

# Remedial measures
jhora ai --mode remedies "birthdata"

# AI Teacher (learn Vedic astrology)
jhora teach "What is Shadbala?" --chart "birthdata"
jhora teach "How do I predict career?" --chart "birthdata"

JSON API (AI Tool-Calling)

jhora analyze "birthdata"
# → 10KB JSON, 16 sections, pipe to AI agents
import json, subprocess
data = json.loads(subprocess.run(
    ["jhora", "analyze", birthdata], capture_output=True, text=True
).stdout)

Vector Database

16 textbooks (1.96M chars) are chunked and stored in SQLite. FTS5 keyword search works immediately. Vector/semantic search requires Ollama or LM Studio with an embedding model.

# Build vector DB (one time)
python3 -c "from jhora.ai.embeddings import EmbeddingStore; EmbeddingStore().build()"

Context Budgeting

For small local models, the prompt auto-truncates:

Budget What fits For which models
2048 Compact chart + analysis 3B-7B quantized
4096 Full chart + analysis + textbook 7B-13B
8192 Everything (default) 13B+
jhora ai --context 4096 "birthdata"  # for small models

Clone this wiki locally