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

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors