paint-brush
প্রোডাক্ট ম্যানেজার এবং নন-প্রোগ্রামার হিসেবে ChatGPT-এর সাথে আমি কীভাবে একটি ট্রাভেল এআই অ্যাপ তৈরি করেছিদ্বারা@dinpd
4,645 পড়া
4,645 পড়া

প্রোডাক্ট ম্যানেজার এবং নন-প্রোগ্রামার হিসেবে ChatGPT-এর সাথে আমি কীভাবে একটি ট্রাভেল এআই অ্যাপ তৈরি করেছি

দ্বারা NPD PM8m2023/08/24
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

আমি কেবল একটি দরকারী অ্যাপ তৈরি করতে সক্ষম ছিলাম না (আমি যা মনে করি) তবে আধুনিক ফ্রেমওয়ার্কের সাথে যুক্ত হয়েছি এবং সিনট্যাক্স এবং ফ্রেমওয়ার্ক শেখার মধ্যে ডুবে না গিয়ে কিছুটা সময় পেয়েছি, যা আমি চেয়েছিলাম। আমি মনে করি এটি একটি বড় চুক্তি এবং আরও অনেক লোকের জন্য সফ্টওয়্যার বিকাশের দরজা খুলে দেয়।
featured image - প্রোডাক্ট ম্যানেজার এবং নন-প্রোগ্রামার হিসেবে ChatGPT-এর সাথে আমি কীভাবে একটি ট্রাভেল এআই অ্যাপ তৈরি করেছি
NPD PM HackerNoon profile picture
0-item
1-item

আমি এটা করেছি! এটি আমার প্রায় 100 ঘন্টা সময় নিয়েছে, কিন্তু আমি ChatGPT এর সাহায্যে একটি বাস্তব অ্যাপ লিখতে এবং স্থাপন করতে সক্ষম হয়েছি।


তারপর থেকে আমি আরও 100 ঘন্টা বা তার বেশি রক্ষণাবেক্ষণ এবং বৈশিষ্ট্যগুলি যুক্ত করেছি, তাই একটি সুন্দর ফুল ব্লো প্যাশন প্রকল্পে পরিণত হয়েছি।


পরীক্ষার ভিত্তি ছিল "আমি কি, একজন পণ্য ব্যবস্থাপক হিসাবে, যে দীর্ঘ সময় ধরে সক্রিয়ভাবে কোড লিখতে পারেনি, ChatGPT ব্যবহার করে একটি অ্যাপ ডিজাইন, তৈরি এবং স্থাপন করতে পারি?"


আমার একটি শালীন ভিত্তি আছে, আমি CS-এ আমার BS করেছি এবং প্রযুক্তির বিভিন্ন দিক (সিস্টেম ডিজাইন, ডেভেলপমেন্ট, ডেভপস, হোস্টিং) এর কাছাকাছি আছি কিন্তু আমি গত 10+ বছর ধরে উন্নয়নে হাত নেইনি।


আমি একটি চমত্কার ভাল পণ্য জ্ঞান আছে, কিভাবে পুনরাবৃত্তভাবে পণ্য তৈরি করতে হয় এবং কার্যকারিতা কিভাবে পরীক্ষা করা যায় সে সম্পর্কে একটি বোঝার অনুবাদ, যা আমি মনে করি সাহায্য করেছে।


SW ডেভেলপমেন্টের সাথে স্বাভাবিকের মতো, 80%+ সময় সমস্যা সমাধান এবং ডিবাগিংয়ে যায়।

কেন ভ্রমণ এআই

ChatGPT API-এর আশেপাশে দরকারী কিছু একসাথে রাখার জন্য আমার অনুসন্ধানে, আমি ভেবেছিলাম যে GPT ভ্রমণ পরিকল্পনার সমস্যা মোকাবেলা করার জন্য অনন্যভাবে যোগ্য - যাবার জায়গাগুলি খুঁজে বের করা, হিট করার আগ্রহের পয়েন্টগুলি, ভ্রমণপথ ইত্যাদি৷ সেখানে অনেক সিদ্ধান্ত নেওয়ার আছে৷ ভ্রমণের সময় তৈরি করা এবং অনন্য পছন্দ বা পরিস্থিতির উপর ভিত্তি করে কেউ আপনার জন্য এই সমস্ত কিছুকে একত্রিত করে, এমন কিছু যা আমি ভেবেছিলাম মূল্যবান হবে।

ChatGPT দিয়ে কোডিং

আমি এটিতে প্রায় 6 সপ্তাহ কাজ করেছি রাত এবং কয়েক সপ্তাহান্তে, সম্ভবত মোট 100 ঘন্টা। আমার ChatGPT+ অ্যাকাউন্ট ছিল, যাতে বট অ্যাক্সেস করার সময় এবং GPT4 অ্যাক্সেস করার সময় এটি আমাকে আরও ভাল স্থিতিশীলতা দেয়।


এই প্রক্রিয়ার মাধ্যমে আমার অনুসন্ধানগুলি এখানে ছিল:


  • ChatGPT আমাকে কাজের জন্য সঠিক টুল বাছাই করতে সাহায্য করেছে (একক-পৃষ্ঠার অ্যাপের জন্য Vue.js ফ্রেমওয়ার্ক) এবং পুনরাবৃত্তিতে কোডটি ক্র্যাঙ্ক করতে। আমি অবশ্যই এটি ছাড়া এটি করতে পারতাম না। এটি বলার সাথে সাথে, অবশ্যই জটিলতা ছিল:


    1. ChatGPT UI যে সীমাগুলি আরোপ করে (ইনপুট এবং আউটপুটে 4k টোকেন এবং প্রায় 15k প্রসঙ্গ বলে মনে হয়) তা বেশ সীমাবদ্ধ এবং আপনি আপনার প্রশ্নগুলিতে প্রচুর বিভাজন করতে পারেন। এটি আদর্শের চেয়ে কম এবং অতিরিক্ত প্রচেষ্টা লাগে। আমি CLI এর মাধ্যমে অ্যাক্সেস করার চেষ্টা করিনি - শুধু কোথাও পড়েছি যে এটি একই সীমা আরোপ করে না - চেক আউট করার মূল্য।

    2. "কোডের অনুভূতি তৈরি করা" এর গুণমানটি অসঙ্গতিপূর্ণ হয়েছে - কখনও কখনও এটি আরও ভাল করে এবং কখনও কখনও এটি খারাপ করে। আমি নিশ্চিত নই এর সাথে কি সম্পর্ক আছে।

    3. এর সাথে, আমার পরামর্শ হল কোডটি তাড়াতাড়ি গঠন করা শুরু করা হবে (কোডকে ছোট ফাংশনে ভাঙা) কারণ ChatGPT আপনার জন্য স্বয়ংক্রিয়ভাবে এটি করতে যাচ্ছে না, তবে আপনি যদি এটি জিজ্ঞাসা করেন তবে এটি হবে। এটি রাস্তার নিচে সমস্যা সমাধানকে সহজ করে তোলে।

    4. GPT4 3 ঘন্টার মধ্যে 25 টি প্রশ্নের পরে কেটে ফেলে এবং আপনাকে "ডিফল্ট" মডেলে স্যুইচ করে, যা আমি 3.5 বলে অনুমান করি - মজার বিষয় হল এটি বেশ ভালভাবে বাছাই করে এবং আমি প্রায় বলতে চাই এটি GPT4 এর থেকে ভাল করে, কিন্তু কারণ আমি শুরু করিনি 3.5 সহ, এটি একটি আপেল থেকে আপেলের তুলনা নয়।


      আপডেট: সীমা সম্প্রতি 3 ঘন্টার মধ্যে 50 টি প্রশ্নে উন্নীত হয়েছে।


উন্নয়ন এবং স্থাপনার পরিবেশ

  • আমি নতুন-যুগের IDE এর জন্য Replit ব্যবহার করেছি। এটি একটি ভাল ধারণা এবং সম্ভবত ভবিষ্যত, বিশেষ করে যদি তারা এটিকে একটি অর্থপূর্ণ কোডেক্স/ChatGPT ইন্টিগ্রেশনের সাথে একত্রিত করতে পারে। বর্তমানে তাদের কাছে যে AI আছে তা ততটা দরকারী নয় কারণ এটি প্রকল্পের কোড ব্যবহার করে না এবং এর জন্য আমি ChatGPT-এর সাথে যা করছিলাম সেগুলি একই রকম ম্যানিপুলেশনের প্রয়োজন। আমি সত্যিই পছন্দ করেছি যে কীভাবে রিপ্লিট সোর্স নিয়ন্ত্রণের জন্য গিথুবের সাথে একীভূত হচ্ছে, তবে এটি কীভাবে স্টেজিংয়ের যত্ন নেয়।


  • আমি ক্লাউডফ্লেয়ারের সাথে মোতায়েন করেছি কারণ আমি ক্লাউড নেটিভ হিসাবে স্থাপন করতে চেয়েছিলাম। আমি UI এর জন্য CF পৃষ্ঠা এবং ব্যাকএন্ড (API গেটওয়ে) এর জন্য একজন কর্মী ব্যবহার করেছি। আমি পছন্দ করেছি যে পৃষ্ঠাগুলি কীভাবে CICD-এর জন্য Github-এর সাথে একীভূত হচ্ছে - এটি সত্যিই দুর্দান্ত ছিল - মূলত অ্যাপটি মূল শাখায় যে কোনও প্রতিশ্রুতিতে নিজেকে পুনরায় স্থাপন করবে।


    সাধারণভাবে, সিএফ শিলা কারণ এটি গাধা স্টাফ নেটওয়ার্কিং ব্যথা একটি টন সহজতর.

শীঘ্র

আমি বেশ কিছুটা সময় ব্যয় করেছি এবং প্রম্পটে অনেকগুলি পুনরাবৃত্তি করেছি, এটিকে ফ্লাশ করেছি এবং আইডিওসিঙ্ক্রাসিগুলি সমাধান করার চেষ্টা করেছি। প্রাথমিক সিদ্ধান্তগুলির মধ্যে একটি হল ChatGPT APIকে একটি পাঠ্য তালিকা ফেরত দিতে হবে যা আমি তখন বোঝার চেষ্টা করব এবং শ্রেণীবদ্ধ করব বা এটি JSON ফেরত দিতে চাই যা ইতিমধ্যেই এটিতে তৈরি কাঠামো রয়েছে। একটি কাঠামোতে পাঠ্য ডেটা ব্যাখ্যা করার প্রয়োজনের সম্ভাবনা আমাকে ভয় পেয়েছিল কারণ কাঠামোগুলি আরও জটিল হয়ে উঠছিল কারণ আমি ChatGPT থেকে আরও বেশি বেশি ডেটা চেয়েছিলাম (যেমন এই স্নিপেট দ্বারা প্রমাণিত)


সুইজারল্যান্ডের 10 দিনের ভ্রমণের যাত্রাপথ


এই কারণে, আমি JSON-এর জন্য ChatGPT প্রম্পট করার সিদ্ধান্ত নিয়েছি। যাইহোক, JSON সবসময় সুগঠিত না হওয়ার বা প্রম্পটে অত্যধিক অস্পষ্টতা থাকার কারণে এর নিজস্ব পার্শ্বপ্রতিক্রিয়া ছিল, যেখানে ChatGPT এমন একটি ফলাফল দেবে যা আমি আশা করিনি। আমি বলব যে আমি প্রম্পট ফাইন-টিউনিং এবং JSON ত্রুটি পরিচালনার মধ্যে প্রায় 25% সময় ব্যয় করেছি। এটা বেশ একটি শেখার অভিজ্ঞতা ছিল. শেষ পর্যন্ত, এখানে আমি যে প্রম্পট দিয়ে শেষ করেছি:


 SYSTEM_PROMPT = `You are a helpful travel assistant. You perform the requests with diligence and make the best attempt to answer the questions, never refusing due to complexity etc. Reset the conversation if I mention a new location in my user prompt. Return the results in JSON format as an array of objects. Make sure JSON format is complete and valid and does not include unescaped special characters. Please avoid escaping double quotes and instead use single quotes or another method to prevent JSON parsing issues. Do not use "\n" newline symbols in the middle of element text. Each object in the array should have the following keys: - "title" - "description" - "airportCode" (for the destination airport) - "poi" (array of points of interest) - "lodging" (array of lodging options) - "itinerary" (array of objects, each representing a day) - "considerations" - "history" (history related to the destination) - "key_local_phrases" (array of common local phrases) - "cost" The "itinerary" key should contain an array of objects, each object representing a day with the key "activities", which is itself an array of objects. Each activity object should have the following keys: - "description" - "waypoint" (name of the location, not coordinates) - "cost" - "travelTime" - "travelOptions" If travel is involved within the itinerary, include "Travel To" as part of the daily activity and provide the travel time, travel options, and associated cost. Each step in the itinerary should also suggest representative local "food" to try. Focus on most interesting points of interest, lodging, and activities. Consider activities that are popular, affordable, and recommended by the travelers. Make sure you cover the entire duration of the trip or outing. If it says "week-long", it has to cover the entire week. It's OK to group multiple days or weeks together if it's a longer trip. If it doesn't give a timeframe, take a guess based on the nature of a trip. Considerations should include travel restrictions and visa requirements, typical weather, criminogenic conditions including which areas to avoid, recommendations on visit timing, parking situation, and ways to save on travel costs. Here is an example of the desired output format: [ { "title": "Sample Title", "description": "Sample Description", "airportCode": "XYZ", "poi": ["Sample POI1", "Sample POI2"], "lodging": ["Sample Lodging1", "Sample Lodging2"], "itinerary": [ { "day": "Sample Day 1-2 - City or Place", "location": "Wikipedia identifiable name of the place in city,_country or city,_state format", "activities": [ { "description": "Sample Activity1", "waypoint": "Sample Waypoint1 connected to the activity", "cost": "$100", "travelTime": "30 minutes", "travelOptions": "Taxi or Bus" }, { "description": "Sample Activity2", "waypoint": "Sample Waypoint2 connected to the activity", "cost": "$50", "travelTime": "1 hour", "travelOptions": "Ferry or Bus" } ], "food": ["Sample Food1 with short description", "Sample Food2 with short description"] }, { "day": "Sample Day 3 - City or Place", ... }, { "week": "Sample Week 2 - City or Place", ... } ], "considerations": "Sample considerations text", "history": "Sample history text", "key_local_phrases": ["Sample phrase 1 - translation", "Sample phrase 2 - translation"], "cost": "Sample total cost" } ]`;


দ্রষ্টব্য: এই লেখার সময় পর্যন্ত, OpenAI সবেমাত্র ফাইন-টিউনিং বর্ধিতকরণ প্রকাশ করেছে যা আমি মনে করি JSON স্ট্রাকচার্ড ডেটা রিটার্ন আরও শক্তিশালী এবং সামঞ্জস্যপূর্ণ করার জন্য খুব সহায়ক হতে পারে।

ইচ্ছেতালিকা

এই মুহুর্তে আমার ইচ্ছার তালিকার সবচেয়ে বড় আইটেমটি হল দেব পরিবেশ / এআই কোড জেন ইন্টিগ্রেশন। জিনিষগুলিকে সামনে পিছনে আটকানো, কোড স্ট্রাকচারে বিশৃঙ্খলা না করার দিকে নজর দেওয়া (বিশেষত কোড বেস বড় হওয়ার সাথে সাথে) অবশ্যই অনেক কিছু কাঙ্ক্ষিত রেখে যায়।


আমি মনে করি AI কোড জেনের পরবর্তী বড় পদক্ষেপটি হবে ইন্টিগ্রেটেড স্মার্ট কোড এডিটর যা কোডটিকে অভ্যন্তরীণভাবে বিভাগে বিশ্লেষণ করে এবং ব্যবহারকারীকে ম্যানুয়ালি এটি না করেই মডেলে/থেকে প্রাসঙ্গিক ইনপুট প্রদান এবং গ্রহণ করতে পারে।


এর পরে পরবর্তী পদক্ষেপটি ডিবাগিংয়ের উদ্দেশ্যে ব্রাউজারের সাথে একীভূত হবে, শেষ পর্যন্ত একটি বন্ধ-লুপ পুনরাবৃত্তিমূলক ডিবাগিং চক্র তৈরি করবে।


এটি কাজ করার জন্য একটি দুর্দান্ত প্রকল্প হবে!


দ্রষ্টব্য: আইডিএক্স প্রকল্পের সাথে গুগল তাদের আস্তিনে কী করেছে তা দেখতে আমি কৌতূহলী - এটি এমনই হতে পারে।

সারসংক্ষেপ

সামগ্রিকভাবে, আমি কেবল একটি দরকারী অ্যাপ তৈরি করতে সক্ষম ছিলাম না (আমি যা মনে করি) তবে আধুনিক কাঠামোর সাথে যুক্ত হয়েছি এবং সিনট্যাক্স এবং ফ্রেমওয়ার্ক শেখার মধ্যে ডুবে না গিয়ে কিছু সময় হাতে পেয়েছি, যা আমি চেয়েছিলাম। আমি মনে করি এটি একটি বড় চুক্তি এবং আরও অনেক লোকের জন্য সফ্টওয়্যার বিকাশের দরজা খুলে দেয়।


আপনি VoyageAI.app এ অ্যাপটি খুঁজে পেতে পারেন। অ্যাপটি ব্যবহার করার জন্য বিনামূল্যে এবং থাকবে, কোনো বিজ্ঞাপন ছাড়াই, এবং কোনো লগইন নেই (এভাবে ব্যক্তিগত ডেটার কোনো ব্যবহার নেই)।