š TL;DR
Iām one month into Google Summer of Code with AOSSIE, building Perspective- Perspective analyzes your news or social feed and presents credible counter-narratives from reliable sources-helping you think critically, reduce bias, and see the full picture. Donāt settle for one-sided stories. Get complete, nuanced facts.
šÆ 1. Project Overview
Perspective analyzes news articles to surface hidden biases by combining cleaning, entity extraction, and bias scoring. Iām collaborating with mentors Manav, Pranavi and Bruno on the Perspective repo.
š 2. MonthĀ 1 Milestones
Week | Deliverable | Status |
---|---|---|
1 | Project setup & Figma mockups | ā Done |
2 | Frontend pages (Landing, Loading, Results) | ā Merged PRs |
3 |
cleaner.py & extractor.py modules |
ā Merged PRs |
4 | UVābased backend, scraper module, LangGraph | ā Merged PRs |
š 3. DayābyāDay Highlights
JuneĀ 2ā5:
ā Revamped frontend: Landing & Analyze pages in Next.js+Tailwind.
ā Built Loading & Results screens with global state flow.
ā UI/UX tuning and responsiveness fixes after mentor feedback.JuneĀ 6ā10:
ā Squashed a Reactādateāpicker build bug.
ā Finalized frontend deployment on Vercel.
ā Exploreduv
for Python dependency management; set up new backend architecture.
ā Added a FastAPI scraper module for article ingestion.JuneĀ 11ā15:
ā Dug into LangGraph: designed the pipeline flow (Sentiment ā FactāCheck ā Generate ā Judge ā Retry).
ā Implemented base StateGraph and stubbed out node files (sentiment.py
,fact_check.py
, etc.).
ā Researched errorāhandling patterns and added anErrorCatcher
node.JuneĀ 16ā20:
ā Integrated Groqās Python SDK for sentiment analysis; tuned prompts for deterministic outputs.
ā Built DuckDuckGo search node and LLMāanalysis node for realātime factāchecking.
ā Crafted structured CoT prompts and wired up thegenerate_perspective
node.JuneĀ 21ā25:
ā Developed & integratedjudge_perspective
scoring node (originality, reasoning, factual grounding).
ā Endātoāend tests on real articles (e.g., 2025 French Open final).
ā Refactored for stability: added fallbacks, cleaned up exception flows.JuneĀ 26ā30:
ā Chunking utility for vector DB ingestion; set up Pinecone embeddings & metadata storage.
ā Linked frontend to backend for factācheck results; switched from Render to Hugging Face Spaces for deployment.
ā Automated backend CI/CD with GitHub Actions; local testing viaact
.JulyĀ 1ā7:
ā Polished docs & example pipeline states; pushed final PRs.
ā Monitored deployments, fixed minor bugs, and synced progress with mentors.
š 3. Deep Dive: What I Built
3.1 LangGraph Workflow
- Challenge: While building LangGraph, efficiently handle all the data and making sure to pass right state takes lot of efforts.
- Key Learnings: LangGraph workflow needs logging state after each node and robust error handling.
𤯠4. Challenges & Learnings
-
LangGraph quirks:
- I hit a bug when chaining async nodes. Fixed by adding explicit
await
and restructuring my graph definition. - Tip: Write unit tests for each node in isolationāsaved hours of debugging.
- I hit a bug when chaining async nodes. Fixed by adding explicit
-
uv in deployment :
- uv needs carefull docker setup for deployment.
- Fix: loaded uv in container and ran my main.py with --no-cache paramenter to prevent container permission issues.
-
Collaboration flow:
- Coordinating with three mentors across different time zones taught me to write crystalāclear PR descriptions & use GitHub Projects for tracking.
š 5. Whatās Next (MonthĀ 2)
- Bias Scoring Module: Prototype a heuristicābased scorer combining sentiment analysis + entity context.
- Vector DB Integration: Push cleaned articles & metadata into Pinecone for fast similarity queries.
Iāll be posting updates every 2ā3 weeks-stay tuned!
š Call to Action
- Feedback welcome: Spot a bug, have a shortcut, or a study tip? Drop a comment below.
āThe journey of a thousand miles begins with a single PR.ā ā me, off to write my next one š
Thanks for reading!
Parag Ghatage
GitHub Ā· X Ā· Portfolio
Linkedin
Top comments (1)
I am gradding in 2026 too, I wish to get in some SRE org by the next summer, this was a nice read