Skip to content
··3 min basahin

Pag-evolve ng Aking Chatbot: Isang One-Week Sprint Patungo sa Mas Matalinong mga Interaksyon

Inayos ko ang aking chatbot sa isang linggo, mula sa mga basic na post summary hanggang sa full-text search na may chunking, seguridad, at metadata — ito ang natutunan ko tungkol sa pagbabalanse ng kapangyarihan ng AI at gastos.

Update (2026): Ang chatbot na ito ay naging Sydney! Pagkatapos ng maraming iteration, si Sydney ay nakatira na sa /ask/ at nakatuon sa blog content at mga produkto.


Noong unang kong inilunsad ang version 0.1 ng aking DIY chatbot noong nakaraang linggo, ang layunin ko ay gumawa ng conversational agent na kayang mag-synthesize ng impormasyon mula sa aking mga blog post para sumagot ng mga tanong. Habang ang v0.1 ay kumakatawan sa isang malaking unang hakbang bilang isang coding novice, marami itong limitasyon. Ang knowledge base ay naglalaman lamang ng mga buod ng aking mga post, at nahirapan ang chatbot na mag-retrieve ng mga tiyak na detalye tulad ng mga numero o petsa nang tama. Ang aking motivasyon ay ang unti-unting pagpapabuti ng kakayahan ng chatbot sa pamamagitan ng hands-on na pag-aaral. Nagbibigay ang post na ito ng update pagkatapos ng isang linggo ng mga pag-optimize. Ang aking pokus ay ang pagpapalawak ng knowledge base para isama ang buong nilalaman ng artikulo, pagpapalakas ng mga hakbang sa seguridad, at pag-optimize ng AI model para sa cost-effectiveness. Habang may malayo pa itong puntahan ang chatbot, ang mga paunang upgrade na ito ay kumakatawan sa magandang pag-unlad.

Narito ang nagawa simula noong huling bersyon:

1. Functionality

Kasama sa chatbot ang lahat ng pinakabagong post hanggang katapusan ng Oktubre 2023

Naglathala ako ng anim na blog post noong Oktubre, lahat ng ito ay kasama na sa knowledge base ng chatbot. Halimbawa, maaari kang magtanong ng mga katanungan tulad ng: "Sabihin mo sa akin ang mga pangunahing insight tungkol sa Coursera na isinulat ni Chandler" at ang chatbot ay makapagbibigay ng sagot base sa mga artikulong isinulat ko noong Okt 2023.

Ang knowledge base ay naglalaman ng buong blog post vs summary lang

Para sa unang bersyon, dahil sa kawalan ng kaalaman/karanasan ko sa pagtatrabaho sa context window length limitation mula sa OpenAI API, kailangan kong mag-generate ng buod ng bawat blog post at pagkatapos ay i-embed ang mga ito gamit ang OpenAI's embedding API endpoint. Hindi ko alam kung paano i-chunk ang buong artikulo sa mas maliliit na seksyon at i-embed ang bawat isa habang pinapanatili ang konteksto (i.e. metadata, URL, pamagat, atbp...).

Ang unang iteration ng chunking ay natapos nitong linggo. Ang knowledge base ng chatbot ngayon ay may buong blog post vs summary lang. May room pa para sa improvement habang patuloy akong nirerefine ang ideal na chunking limit at approach para sa mahabang artikulo. Sa ngayon, hinahati ko ang mahabang artikulo sa mas maliliit na seksyon na hindi lalampas sa 800 token at ginagamit ang "paragraph" bilang natural na break point.

Sa ganitong paraan sa susunod na bersyon, maaari na itong sumagot ng mga tanong tungkol sa mga tiyak na numero nang mas madali.

Kasama na ang publish date, title, at URL ng blog post

Pagkatapos mag-enter ng tanong ang user, sa retrieval process, ibinibigay din sa chatbot ang pamagat ng blog post, petsa ng paglathala, at URL. Kaya ang chatbot ay makapagbibigay na ngayon ng tiyak na URL o mga petsa ng paglathala pabalik sa mga user kung hinihingi.

Makakatulong ito sa validation kung gusto ng mga user na mag-double-check o basahin ang buong blog post.

2. Seguridad

Nailagay ang mga super basic na hakbang sa seguridad tulad ng:

  • Pag-validate ng mga input bago ipadala sa API
  • Basic na rate limiter function i.e. ilang tanong ang maaari mong itanong bawat minuto sa chatbot
  • Ang mga query at tugon ng chatbot ay bina-validate gamit ang OpenAI moderation API

3. GPT-4 vs GPT-3.5

Patuloy akong gagamit ng GPT-3.5 model para sa chatbot dahil sa gastos. Mas maganda ang mga sagot ng GPT-4 kaysa GPT-3.5. Gayunpaman, dahil hindi ko pa nahanap ang pinakamagandang paraan ng pagtatrabaho sa context window length habang pinapanatili ang conversation history, para sa mga complex na tanong na kailangang tingnan ng chatbot ang maraming post, ang gastos bawat sagot ay mataas tulad ng $0.15 o 0.2 bawat sagot mula sa GPT-4. Hindi ko pa kayang gastusan iyon para sa pet project na ito. T.T

Iyon lang muna. Kung gusto mong subukan ang chatbot, narito ito ulit. Ito ang link sa aking nakaraang post tungkol sa chatbot. Magandang weekend.

Kung gumawa ka ng sarili mong chatbot o nagtrabaho sa embeddings at chunking, curious ako — anong chunk size at approach ang pinakagumana para sa iyo? Nag-e-eksperimento pa rin ako :)

Susunod sa chatbot journey: Ilang buwan pagkatapos, ginawa kong muli ang buong chatbot mula sa simula gamit ang LangChain at FAISS — How I Emerged From Coding Quicksand With an AI Agent.

Maraming salamat,

Chandler

P.S.: Ang bagong course sa Generative AI for Everyone, na itinuro ni Andrew Ng, ay hindi nakaka-disappoint. Ito ay isang Libreng course, na magbibigay sa iyo ng pangkalahatang kaalaman tungkol sa Generative AI, kung paano karaniwang ginagawa ang mga Gen AI software o web application, atbp... Maikli rin ito kaya maaari mong panoorin lahat ng video sa loob ng isang weekend.

Ipagpatuloy ang Pagbasa

Ang Journey Ko
Kumonekta
Wika
Mga Preference