Inspiration

AI is evolving at an incredible speed, with groundbreaking advancements emerging with shocking frequency. Keeping up with the influx of new terms, products, and companies can be overwhelming. We found ourselves struggling to stay informed amidst this flurry of developments.

This challenge inspired us to create Bellman, a one-stop source for AI news. Bellman is designed to provide users with a comprehensive overview of the AI landscape, helping them stay updated with the latest trends with minimal stress.

What it does

Bellman functions as a news digest, pulling articles from a pool of trusted sources and curating them with AI as the central topic. It processes the article content and summarizes it for the user, providing key takeaways and detailed explanations. Users can also ask follow-up questions related to the content through the application's chat feature. Additionally, Bellman allows users to filter articles by various categories and mark articles as favorites to read later.

How we built it

Over the course of this project, we used several tools in development. Given the project restrictions emphasizing Streamlit, we naturally chose Python as our primary programming language. We leveraged a variety of components from the Streamlit library, including experimental ones like dialog boxes. For AI-generated content, we used two models from the enterprise-grade Snowflake Arctic family.

We used the 4K context window model for summarization and chat functionalities and the snowflake-arctic-embed-m embeddings model for classification. We interacted with these models through Snowflake Cortex using the Python Snowpark library, offering flexible and straightforward ways to work with the language models. Snowpark enabled us to query the Snowflake database with ease, while the Snowflake Cloud interface served as a convenient platform to visualize the data and test queries.

A week was invested on the design and discovery phase as we wanted to prioritize good design and have requirements, components and modules clearly defined. The remaining weeks were spent on learning more about Streamlit and Snowflake's solutions, alongside development of the app itself. We made a task board based on the planned requirements and claimed them according to our interests and proficiencies. We held a meetings once or twice a week to discuss the big picture and remained in touch over text messaging to discuss specific details.

Challenges we ran into

As developers used to JavaScript for the web, using Streamlit was a very novel experience. While it was straightforward to get started and build a skeleton for our app, it sometimes proved difficult to realize our vision of certain components with Streamlit's limitations. It was interesting how we had to completely shift our mindset based on streamlit's architecture, and find workarounds from the tools provided. For example, we imagined the Card Detail view differently, expanding within the grid to show the summary and other insights. Using a dialog box and a tabs container turned out to be just as good of a solution. Another notable hurdle was keeping the app relatively performant, which required us to become closely familiar with Streamlit concepts like session state and the cache decorators. Pulling from news sources in a timely manner and keeping the database up-to-date also proved very challenging, as it had both performance and privacy aspects to account for.

Accomplishments that we're proud of

With 3 weeks of development working on Bellman as a side-project, we are proud to offer a complete proof-of-concept that covers the majority of requirements we had laid out. Implementing the core aspects of our vision was not easy, so it is very gratifying to see it all come together. Some components we are especially proud of are the category filter and the card detail, along with all its parts. Each of these modules presented a challenge that required us to keep our options open and adjust accordingly, so we are happy to have tackled them head-on and come up with respective solutions.

What we learned

This project was an excellent opportunity to learn about AI-powered development in a format that encourages experimentation and incremental implementation. Becoming acquainted with Streamlit and the Snowflake ecosystem required some investment on our time, but it was encouraging to have a wealth of resources from the developers and the community at our disposal. Throughout development, we became more proficient with Python libraries like Pandas and had the opportunity to practice data-related skills like SQL querying. Moreover, we had the opportunity to apply our skills and knowledge on an end-to-end development cycle for an application, which is highly rewarding on its own.

What's next for Bellman AI

We have many ideas for Bellman that were sadly out of scope given the timeline and resources. In the future, we would like to refine Bellman's curation, by taking user feedback into account, being more selective of article quality and news-worthniness, and giving more useful insights. With the implementation of authentication sessions, we will be able to unlock a number of new features, including personalization and a user metric dashboard. We would also like to expand Bellman's searching capabilities, allowing users to rediscover more easily. We hope to continue developing this tool and hope it proves useful to other AI enthusiasts.

Bios

Yumi Ko

Yumi is a passionate full-stack developer with experience in building scalable and impactful applications. She's proficient in React, Node.js, Ruby on Rails, and more. She has led projects, mentored teams, and shipped applications that have reached millions of users. She's a strong advocate for clean code, efficient workflows, and collaborative development.

Anthony Santana

Anthony is a student and graduate researcher at Georgia Tech, specializing in Interactive Intelligence. He holds a Bachelor of Science in Computer Engineering and has applied his engineering skills in various industries, including finance, pharmaceuticals, and energy. Proficient in Python and JavaScript, Anthony has a keen interest in natural language understanding and cognitive applications. Through projects and research, he aims to unlock the potential of AI to create innovative solutions.

Built With

Share this project:

Updates