finsight-api / README.md
ManasDubey's picture
fixes + OpenAI integration
28f02d1
|
Raw
History Blame Contribute Delete
2.67 kB
metadata
title: FinSight API
emoji: 📈
colorFrom: blue
colorTo: green
sdk: docker
app_port: 8000
pinned: false
short_description: Grounded AI financial research API

FinSight API

Production backend for FinSight - an AI financial research tool that can't invent a number. It answers questions about public companies by grounding every figure in a verifiable source (an SEC XBRL fact, an NSE results filing, or an indexed filing passage) and checking it against that source before returning it.

A FastAPI service running an OpenAI agent loop with a local sentence-transformers embedding model for retrieval over Postgres + pgvector. It runs as a Docker container (the model needs real memory), which is why it's deployed here rather than on a serverless function.

Endpoints

Route Purpose
POST /chat, /chat/sync Grounded research answers (streaming / sync)
GET /companies Company list
GET /companies/{ticker}/financials XBRL financial facts
GET /companies/{ticker}/filings Filing list
GET /companies/{ticker}/prices, /quote/{ticker} Prices and quotes
GET /screener, /results/latest, /compare Screener, latest results, comparisons
GET /market/overview Market snapshot
GET /diff/companies Companies with ≥2 comparable filings for a form
GET /diff/{ticker}, POST /diff/{ticker}/narrate Filing-to-filing change analysis
GET /health Liveness + table counts

Configuration

Set these under Settings → Variables and secrets (as secrets):

Name Required Notes
OPENAI_API_KEY yes OpenAI API key from platform.openai.com
OPENAI_MODEL no Defaults to gpt-4o-mini
DATABASE_URL yes Supabase Postgres session pooler URI (port 5432)
SUPABASE_URL yes Supabase project URL
SUPABASE_SERVICE_ROLE_KEY yes Server-side only
SEC_EDGAR_USER_AGENT yes e.g. Your Name you@example.com
CORS_ORIGINS yes Frontend origin(s), comma-separated
RESEND_API_KEY no Family-invite emails; falls back to copy-link

Deploy

The Space repo root is the backend/ directory of the FinSight repo (HF needs the Dockerfile at the root). Push that subtree:

git remote add space https://huggingface.co/spaces/ManasDubey/finsight-api
git subtree push --prefix backend space main

HF builds the Dockerfile and routes traffic to app_port: 8000. Once live, GET https://ManasDubey-finsight-api.hf.space/health returns {"status":"healthy", ...} with non-zero table counts.

Research & education, not investment advice.