DEV Community

Parag Ghatage
Parag Ghatage

Posted on • Originally published at paragghatage.com

One Month into GSoC with AOSSIE: My Journey Building Perspective

šŸš€ 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.

    – Explored uv 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 an ErrorCatcher 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 the generate_perspective node.

  • JuneĀ 21–25:

    – Developed & integrated judge_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 via act.

  • 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

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

  1. 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.
  2. 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.
  3. 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


Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
sysdiver profile image
Shivam

I am gradding in 2026 too, I wish to get in some SRE org by the next summer, this was a nice read