๐Ÿš€ Introducing my latest application, Docu Talk

Hey Streamlit Community! :waving_hand:

Iโ€™m excited to share Docu Talk, a Streamlit-powered web app that lets you create custom Chat Bots from your PDF documents in just seconds! :robot::page_facing_up:

:small_blue_diamond: Key Features:
:white_check_mark: AI-Powered Responses: Structured and formatted replies based on document content
:white_check_mark: Cloud Integration: Secure communication with cloud-stored files via Gemini
:white_check_mark: Machine Learning Optimization: Predicts response times using historical data

:small_blue_diamond: Streamlit-Powered Frontend:
:white_check_mark: Google/Microsoft/Email Authentication (thanks to Streamlit 1.42.0!)
:white_check_mark: Session & Cookie Management for user persistence
:white_check_mark: Dynamic HTML Components for an interactive UI

:small_blue_diamond: Security & Deployment:
:white_check_mark: Encrypted Password Storage with hashing
:white_check_mark: Whitelisted Database Access via VPC/NAT for enhanced security
:white_check_mark: Cloud Deployment on Google Cloud Run & Streamlit Cloud
:white_check_mark: Automated Email Service with AWS SES
:white_check_mark: Secure File Storage using Google Cloud Storage

:small_blue_diamond: Code Quality & Best Practices:
:white_check_mark: Linted & Verified with ruff
:white_check_mark: Modular Architecture (authentication, pages, servicesโ€ฆ)

:link: Try the App: https://docu-talk-ai-apps.streamlit.app
:laptop: Explore the Open-Source Code: GitHub Repo

Would love to hear your feedback! :rocket:

streamlit #Python #MachineLearning ai #ChatBots #OpenSource #TechInnovation #GoogleCloud aws #SoftwareEngineering #DevCommunity

2 Likes

@Antoine3 nice work! how do you perform search on the document? I donโ€™t see you put it into vector database or anything.

Thank you @mojsilo ! Yes, there is no RAG, but โ€œin-context processingโ€, capable of handling up to 1,000 pages of documents with Gemini!

In-context processing is becoming increasingly interesting compared to RAG for several reasons: models can accept longer inputs, generate faster, and are becoming less and less expensive

1 Like

Nice project! how much does it cost you to provide this service on cloud ? How long can you maintain it with costs?

Hey @Antoine3 , really interesting work! I recently came across Davia (Introduction - Davia Starter Kit), which simplifies UI creation for chatbots. Do you think it could have been useful for your project?

Thank you for your message, @Fuad! Here is the detailed breakdown of the billing:

To give you some context, I initially deployed the application on Cloud Run for a few weeks. Later, I moved it to Streamlit Cloud in hopes of gaining some visibility through the Streamlit Gallery or by convincing Streamlit to communicate about the app.

If I had stayed on Cloud Run, my monthly costs would have been around $10โ€“$15. Currently, on Streamlit Cloud, my total monthly expense is $5~$10.

  • Hosting:

    While using Cloud Run, I configured an instance with 2 CPUs & 4GB RAM, setting min_instances=0, meaning the instance shuts down when there are no active users. For 20~30 monthly users, this cost around $3/month.

    However, if the instance were always running (min_instances=1), the cost would be $100/month for the same configuration.

  • VPC (Virtual Private Cloud):

    To ensure secure communication between Cloud Run and MongoDB Atlas, a static IP is required, which is configured via Cloud NAT. This results in a $3/month networking fee.

  • AI Model Costs:

    I use Gemini from Vertex AI for the generative AI functionality. With 20~30 monthly users, this amounts to approximately $5/month.

  • Database:

    I use a free-tier MongoDB instance with storage under 500MB, so thereโ€™s no additional cost.

  • Email Service:

    I purchased a domain name for $3 and use AWS SES for email services. AWS SES is free up to a high number of requests, which is more than sufficient for my needs.

As a solo developer, Iโ€™ve spent some time optimizing the infrastructure to keep costs as low as possible in the long run. Iโ€™m confident that I can keep the application running smoothly for the future.

Thank you, @John24!

Thatโ€™s interesting, I wasnโ€™t familiar with this tool. I chose to build the application in Streamlit because I have advanced expertise in it and knew I could develop it very quickly (in less than 15 days).

Additionally, I needed custom features beyond just the chatbot itself, such as a login page, managing chatbot settings and a chatbot creation form.