Inspiration
Ask Arlington is a 24/7 assistant that breaks down city council meetings, budget discussions, and community updates into clear, easy-to-understand summaries—keeping residents informed and engaged even if they can’t attend meetings in perso
What it does
Ask Arlington provides clear, accessible summaries of city council meetings, budget discussions, and community updates. It distills complex information into formats that are easy for everyone to understand, ensuring that residents remain informed about what’s happening in their city—even if they can’t attend the meetings.
How we built it
We developed an interactive chatbot for Arlington residents using Python (Flask) for the backend API and React for the frontend interface. The conversation logic is powered by LangGraph, orchestrating interactions with LangChain components and Google's Gemini LLM.
When users ask about city budgets or council meetings, a Retrieval-Augmented Generation (RAG) system is triggered. This involves querying a PineconeDB vector database – where city documents are stored as embeddings – for relevant context. The Gemini LLM then uses this context to generate an informed answer.
Gemini also classifies user input, distinguishing questions from feedback (like reporting a broken streetlight). If feedback is detected, the bot confirms with the user before saving it to a JSON file. Users can also vote ('Approve'/'Reject') on city resolutions presented by the bot, with votes saved separately. LangGraph seamlessly manages the flow between these different states (answering, classifying, confirming feedback, voting), while Flask handles API requests and session state. Language switching between English, Spanish, and French is also supported.
Challenges we ran into
Key challenges involved integrating with a cloud vector database, effectively synchronizing LangGraph's complex conversational state with the frontend using Flask sessions, and ensuring the retrieved RAG context was prompted correctly to the LLM for accurate answer generation. Reliably classifying user intent was also complex.
Accomplishments that we're proud of
We successfully built a multi-turn chatbot integrating RAG for city documents, LLM-based intent classification, feedback collection, voting, and multilingual support (Spanish/French) via a Flask API.
What we learned
We gained valuable experience in state management for LangGraph web apps, intent handling strategies, RAG pipeline tuning, and techniques for multilingual interactions.
What's next for AskArlington
Future steps include deployment, enhancing cybersecurity measures, implementing user login functionality, expanding RAG to retrieve other types of city information beyond budgets/meetings, improving retrieval accuracy, refining LLM prompts, and adding more robust error handling.
Log in or sign up for Devpost to join the conversation.