Skip to content

Tan167/ConcallIQ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“Š ConcallIQ β€” Earnings Call Intelligence Platform

Python Streamlit LangChain ChromaDB License

Ask questions about any earnings call transcript using RAG + LLM. Get live news and StockTwits sentiment. Built for analysts, by a developer.

Features β€’ Demo β€’ Tech Stack β€’ Setup β€’ Usage


πŸš€ What is ConcallIQ?

ConcallIQ is an AI-powered earnings call analysis tool that lets you:

  • πŸ“„ Upload any concall PDF and instantly ask questions about it
  • πŸ€– Get precise, cited answers grounded in the actual transcript β€” no hallucinations
  • πŸ“° Fetch live news sentiment about any stock using NewsData.io + LLM scoring
  • πŸ“ˆ Analyze retail investor sentiment from StockTwits (no API key needed)
  • πŸ“Š Compare multiple companies side by side

This is the kind of tool used by hedge funds and trading firms β€” built from scratch with open-source tools and free APIs.


✨ Features

Feature Description Tech
πŸ“€ PDF Upload & Index Upload concall transcripts, auto-chunked and embedded PyPDF2 + pdfplumber
πŸ’¬ RAG Q&A Ask natural language questions, get cited answers LangChain + ChromaDB + Groq
πŸ“‹ Auto Summary One-click comprehensive concall summary LLaMA3 70B
πŸ“° News Sentiment Live news fetched and scored -1 to +1 NewsData.io + LLM
πŸ“ˆ StockTwits Sentiment Retail investor bullish/bearish sentiment StockTwits API (Free)
πŸ“Š Multi-Company Compare Ask same question across multiple concalls Multi-doc RAG
πŸ“ˆ Sentiment Charts Visual gauge charts for sentiment scores Plotly

πŸ—οΈ How It Works

User uploads Concall PDF/Transcript
            ↓
RAG chunks + indexes it (ChromaDB + Local Embeddings)
            ↓
User asks β†’ "What did CEO say about margins?"
            ↓
RAG retrieves relevant chunks β†’ LLM answers with citations
            +
NewsData.io fetches latest Indian & global news sentiment
            +
StockTwits retail investor sentiment (bullish/bearish)
            ↓
Final Answer = Concall Insight + Market Sentiment

πŸ› οΈ Tech Stack

Frontend          β†’  Streamlit
RAG Framework     β†’  LangChain
Vector Store      β†’  ChromaDB (local, free)
LLM               β†’  Groq (LLaMA3 70B / Mixtral) β€” Free tier
Embeddings        β†’  all-MiniLM-L6-v2 (local, free)
PDF Parser        β†’  pdfplumber / PyPDF2
News Sentiment    β†’  NewsData.io + Groq LLM
Social Sentiment  β†’  StockTwits β€” Free, no API key needed
Visualization     β†’  Plotly

πŸ“ Project Structure

ConcallIQ/
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ ingestion/
β”‚   β”‚   β”œβ”€β”€ pdf_loader.py       # Load & parse concall PDFs
β”‚   β”‚   └── chunker.py          # Smart text chunking with overlap
β”‚   β”‚
β”‚   β”œβ”€β”€ rag/
β”‚   β”‚   β”œβ”€β”€ embeddings.py       # Local HuggingFace embeddings
β”‚   β”‚   β”œβ”€β”€ vector_store.py     # ChromaDB setup & retrieval
β”‚   β”‚   └── retriever.py        # Full RAG pipeline
β”‚   β”‚
β”‚   β”œβ”€β”€ sentiment/
β”‚   β”‚   β”œβ”€β”€ news_sentiment.py   # NewsData.io + LLM scoring
β”‚   β”‚   └── reddit_sentiment.py # StockTwits retail sentiment
β”‚   β”‚
β”‚   └── utils/
β”‚       β”œβ”€β”€ logger.py
β”‚       └── exception.py
β”‚
β”œβ”€β”€ data/concalls/              # Store uploaded PDFs
β”œβ”€β”€ app.py                      # Streamlit UI (4 tabs)
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ .env                        # API keys (never commit!)
└── README.md

⚑ Quick Start

1. Clone the repo

git clone https://github.com/YOUR_USERNAME/ConcallIQ.git
cd ConcallIQ

2. Create virtual environment

python -m venv venv
source venv/bin/activate        # macOS/Linux
venv\Scripts\activate           # Windows

3. Install dependencies

pip install -r requirements.txt

4. Set up API keys

Create a .env file:

OPENAI_API_KEY=your_groq_key_here           # Get free at console.groq.com
NEWSDATA_API_KEY=your_newsdata_key_here     # Get free at newsdata.io
OPENAI_BASE_URL=https://api.groq.com/openai/v1

# StockTwits β€” no API key needed!

5. Run the app

streamlit run app.py

Open http://localhost:8501 πŸŽ‰


πŸ”‘ API Keys (All Free!)

Service Cost Link Used For
Groq βœ… Free console.groq.com LLM inference
NewsData.io βœ… Free (200 req/day) newsdata.io Live Indian & global news
StockTwits βœ… Free (no key needed) stocktwits.com Retail investor sentiment
ChromaDB βœ… Free (local) Built-in Vector storage
HuggingFace Embeddings βœ… Free (local) Built-in Text embeddings

Total cost to run: $0 πŸŽ‰


πŸ“– Usage Guide

Upload & Index a Concall

  1. Go to Upload & Index tab
  2. Upload a concall PDF (BSE/NSE filings, investor relations pages)
  3. Enter the company name (e.g. Infosys)
  4. Click πŸš€ Index Concall β€” done in ~30 seconds

Ask Questions

  1. Go to Q&A tab
  2. Select company or ask across all
  3. Use preset questions or type your own:
    • "What was Q3 revenue growth?"
    • "What did the CEO say about AI investments?"
    • "What are the key risks for next quarter?"

Get Sentiment

  1. Go to Sentiment tab
  2. Type any company/stock name or NSE ticker (e.g. Netweb or NETWEB)
  3. Get live news + StockTwits retail sentiment scores with visual gauges

Where to find Concall PDFs

  • BSE India β†’ bseindia.com β†’ Search company β†’ Announcements
  • NSE β†’ nseindia.com β†’ Company page β†’ Transcripts
  • Company investor relations pages

πŸ€– Supported LLM Models (via Groq β€” Free)

Model Speed Best For
llama3-8b-8192 ⚑ Fastest Quick Q&A
llama3-70b-8192 🎯 Best quality Detailed analysis
mixtral-8x7b-32768 ⚑ Fast Long transcripts (32K context)
gemma2-9b-it ⚑ Fast Balanced performance

πŸ™‹ FAQ

Q: Does it work with Hindi/regional language concalls?
A: It works best with English transcripts. Mixed language may reduce accuracy.

Q: How many PDFs can I index?
A: Unlimited β€” ChromaDB is local and only limited by your disk space.

Q: Is my data sent to any server?
A: PDF text is sent to Groq for LLM inference. ChromaDB and embeddings run 100% locally.

Q: Can I use OpenAI instead of Groq?
A: Yes β€” set OPENAI_BASE_URL to https://api.openai.com/v1 and use gpt-4o as the model.


⚠️ Disclaimer

This tool is for educational and research purposes only.
It is not financial advice. Always do your own research before making investment decisions.


Built with ❀️ using Streamlit, LangChain, and Groq

About

RAG-powered earnings call Q&A with live news & StockTwits sentiment. Upload any concall PDF and ask questions grounded in the transcript. Uses LangChain, ChromaDB, Groq, and Streamlit.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors