Domain Name(BrainForge.TECH)
Inspiration
I was in SF last week at a hackathon, when an organizer towards the end built this little game that I thought was interesting. Essentially, it was a game where you played against ChatGPT4 who roleplayed as a flamboyant iranian rug salesmen, and your goal as the player was to negotiate the price down to $100. As a result, I wanted to create a project that built upon that with fun hackathon related prompts, and was easier to contribute to with simple code, free to run as gemini's API is, and run in a single language.
What it does
Hackerman's challenge enables you to play multiple prompts of different funny hacker scenarios where you negotiate from a position of weakness against the AI who is told to be very exacting in it's choices.
How we built it
The whole tech stack is Streamlit, which is a react front end along with a python backend. We utilized the Google AI API for the Gemini 1.0 Pro Model. We also used multiprocessing in order to synchronize streamlit and gemini.
Challenges we ran into
First issue WIFI: I could not pull DNS servers, manual intervention. Second issue development environment: VScode confused interpreters. Third issue virtual environment: VScode automatic .venv did not work. Fourth issue and largest issue: Gemini and Streamlit both have their own state management, and by combining the issue, we accidentally disrupted either one or the other state. Corrective and mitigative measures were not successful in restoring the statefulness of the API without compromising the functionality of streamlit's rendering. Last issue: deployment had errors with the installation of the multiprocessing package.
Accomplishments that we're proud of & what we learned!
Proud of being able to manipulate the AI model using terminal access. Figuring out secret/env management. Understanding venv better. Learning how to use Streamlit and Gemini 1.0 together. Learning how to integrate different components. Utilizing pair programming effectively. Learned a significant amount about python multiprocessing.
What's next for Hackerman's Challenge
Waiting for Streamlit support to resolve the library issue of being run within a subprocess in order to proceed with debugging the remaining multiprocessing issues. That or rewriting using a conventional js based tech stack, where "front-end" is not reliant on a backend connection, therefore avoiding two seperate state managements.
Built With
- gemini
- google-cloud
- multiprocessing
- python
- streamlit

Log in or sign up for Devpost to join the conversation.