Skip to content
··4 मिनट पढ़ने का समय

तीन महीने बाद: अभी भी coding, अभी भी सीख रहा हूँ, अभी भी कभी-कभी अटक जाता हूँ

10 महीने AI assistants के साथ coding करने के बाद, मैंने सीखा है कि वे interns जैसे हैं — powerful लेकिन specific instructions की ज़रूरत है, जिसका मतलब है कि मुझे frameworks को deeply समझना होगा ताकि real problems solve हो सकें जैसे मेरे slow chatbot को fast बनाना।

Update (2026): S&P 500 financial chatbot project eventually retire हो गया। Sydney वापस है और अब blog content और products पर focus करती है। Sydney को try करें →


मैं debate कर रहा था कि अपनी coding journey के बारे में यह update लिखूँ भी या नहीं। Progress flashy या externally visible नहीं रही — तो क्यों?

खैर, शायद यह post मेरे future self के लिए एक अच्छा reminder serve करे कि progress कभी-कभी slow हो सकती है और growth अक्सर spurts में होती है।

Mid-April में self-evaluating chatbot build करने के बारे में मेरी last post के बाद से, मैंने कुछ courses में dive किया है:

ये Courses क्यों?

मैं इन courses को choose करने के पीछे अपने personal experiences और thought process share करना चाहता हूँ। मेरी उम्मीद है कि यह उन लोगों की मदद कर सकता है जो similar journey पर हैं (या होंगे।)

Machine को Instruct करने में बेहतर होना

Full time job के साथ coding में dabble करते हुए लगभग 10 महीने हो गए हैं। (आप How I Built My Own Chatbot with No Coding Experience: Lessons Learned Oct 2023 में published यहाँ पढ़ सकते हैं।)

Generative AI की मदद के बिना (चाहे chatGPT हो, Anthropic Claude हो या Visual Studio Code में Microsoft CoPilot हो) मैं यह नहीं कर सकता था। हालाँकि, जितना ज़्यादा code करता हूँ, उतना ज़्यादा realize करता हूँ कि ये foundational models powerful हैं, लेकिन वे अभी भी interns जैसे हैं। वे planning या ambiguous tasks solve करने में अभी तक अच्छे नहीं हैं। जितनी specific हमारी instructions होंगी, output उतना ही बेहतर होगा।

इसका मतलब है कि मुझे अपनी coding instructions के साथ increasingly specific होना होगा। लेकिन कैसे? अब तक, मैं natural language में जो चाहता हूँ वो describe कर रहा था। यह basic level पर काम करता है, लेकिन ज़्यादा complex tasks के लिए inadequate है।

Business/User Problems पर Focus करना जो मैं Solve करने की कोशिश कर रहा हूँ

इस website के लिए मेरा chatbot (code-named Sydney) slow था (शायद "है")। Slowness दोनों में होती है:

  • Start up time में
  • And conversation के दौरान

Streaming enabled नहीं है, इसलिए users को complete answer देखने के लिए relatively लंबा इंतज़ार करना पड़ता है।

तो मेरा goal था (है) simple: इसे fast और responsive बनाना

लेकिन ज़्यादा foundational knowledge के बिना, इसे manageable problems में break down करना challenging है। इसीलिए मैंने scalable, secure, और fast front-end frameworks, back-end frameworks और full stack (databases सहित) के बारे में ज़्यादा सीखने का decide किया।

React और Django के साथ मेरे अनुभव

  • React: Django की तुलना में React सीखना और deploy करना relatively easier है। (Duh!) Current chatbot front end React use करती है, और मैंने पाया है कि Claude और ChatGPT ज़्यादातर coding tasks को बिना issues के handle कर सकते हैं। Production environment में React के साथ deployment भी काफी simple था।
  • Django: Django और Django Rest Framework (DRF) की steeper learning curve थी, खासकर Cloud SQL database और security ensuring के साथ deployment में। हालाँकि, मैं अभी भी production environment में DRF के साथ streaming HTML answers काम करा नहीं पा रहा हूँ!

इसलिए अगर आप जानते हैं कि Langgraph streaming को simple front end के साथ कैसे काम करते हैं, तो बताएं!

Financial Chatbot के बारे में क्या जिसका मैंने April में ज़िक्र किया था?

Good news यह है कि इस project ने आप में से कई लोगों का interest spark किया है। Bad news? मैं इसे complete करने के कहीं करीब नहीं हूँ T.T यहाँ बताता हूँ क्यों:

1. Retrieval quality, vector store monthly cost, और embedding cost को Balance करना

जैसा कि Apr post में बताया, मैं Weaviate के Serverless Cloud Vector Store को evaluate कर रहा हूँ। इसकी real cost है। इस project के लिए, मैं शायद look at कर रहा हूँ:

  • Data Volume: 10 million से ज़्यादा, possibly 12.5 - 15 million data objects।
  • Cost Estimate: 512 की vector dimension के साथ, monthly cost $600 से $750 के range में हो सकती है।

यह amount एक company के लिए production environment में manageable है लेकिन एक side project के लिए बहुत steep हो सकती है। इसलिए मुझे cost कम करने के तरीके खोजने होंगे।

Data objects कम करने के तरीके

  • Aggressive Text Cleaning: 10K और 10Q filings में overall text size कम करना help कर सकता है।
  • Chunk Size Increase करना: Chunk size को 256 से, 512 से 1,000 से 2,000 या 3,000 तक बढ़ाकर, मैं data objects को 2x, 4x या 10x कम कर सकता हूँ। हालाँकि, यह retrieval quality को कम कर सकता है।

Vector dimension कम करने के तरीके

Vector dimension कम करना directly retrieval quality के साथ correlated लगता है — dimension जितनी कम, retrieval quality उतनी खराब। मैं अभी भी OpenAI के "text-embedding-3-small" और "text-embedding-3-large" जैसे अलग-अलग embedding models के साथ experiment कर रहा हूँ। अगर आपके पास अच्छी recommendations हैं, तो please share करें!

OpenAI से "text-embedding-3-large" model use करने से embedding phase के दौरान cost भी बढ़ती है। उदाहरण के लिए, 1024 की vector dimension के साथ 23 companies के 10K/10Q filings के पिछले 10 साल के embeddings generate करने में मुझे $4.5 खर्च हुए। इसका मतलब है कि पूरे S&P 500 के लिए $100+ लग सकते हैं। (हाँ, मैं थोड़ा cheapskate हूँ। आपको पहले नहीं पता था :P?)

2. Query translation, structuring, retrieval के दौरान Latency

Query translation और structuring जितनी elaborate होगी, उतनी better search terms / Content search terms generate होंगे, leading to higher-quality retrieval। हालाँकि, यह latency भी बढ़ाता है।

[
"What was Airbnb's operating margin in the 10-K filing for the year 2020?",
"What was Airbnb's operating margin in the 10-K filing for the year 2021?",
"What was Airbnb's operating margin in the 10-K filing for the year 2022?"
]

Wrapping it up

और भी बहुत कुछ है जिस पर मैं काम कर रहा हूँ, लेकिन चूँकि यह post पहले से ज़्यादा लंबी हो गई है, मैं यहीं खत्म करूँगा।

क्या आप भी full time job के साथ code सीख रहे हैं? आप यह कैसे decide करते हैं कि आगे क्या सीखना है जब सब कुछ equally important लगता है?

शुभकामनाओं सहित, Chandler

पढ़ना जारी रखें

मेरा सफ़र
जुड़ें
भाषा
सेटिंग्स