প্রকল্প সম্পর্কে
discolike-python হলো DiscoLike API-এর জন্য অফিসিয়াল Python SDK এবং CLI। DiscoLike একটি ব্যবসায়িক ওয়েব সার্চ ইঞ্জিন যা বিশ্বব্যাপী ৫০টি ভাষায় ৮০ মিলিয়নেরও বেশি ব্যবসায়িক ওয়েবসাইট ইনডেক্স করে। রিপোজিটরিতে দুটি প্যাকেজ রয়েছে: discolike (SDK লাইব্রেরি) এবং discolike-cli (টার্মিনাল কমান্ড-লাইন ইন্টারফেস, যা SDK-এর উপর নির্ভর করে)। উভয়ের জন্য Python 3.10+ প্রয়োজন।
SDK-তে একটি টাইপড ক্লায়েন্ট (Discolike) এবং একটি অ্যাসিঙ্ক কাউন্টারপার্ট (AsyncDiscolike) রয়েছে যা DiscoLike-এর API-এর সাথে ইন্টারঅ্যাক্ট করার জন্য। মূল ক্ষমতাগুলির মধ্যে রয়েছে: ICP টেক্সট, ফ্রেজ, টেক স্ট্যাক, ভূগোল এবং ৪০+ অন্যান্য ফিল্টার দ্বারা অনুরূপ কোম্পানি আবিষ্কার করা; সেগুলি টানার আগে সেগমেন্ট গণনা করা; মেসি কোম্পানির নাম (ঐচ্ছিক ফোন, শহর, রাজ্য সহ) একক বা বাল্ক CSV মোডে ডোমেইনের সাথে মেলানো; DiscoLike ডেটাসেট দিয়ে CSV ডোমেইন তালিকা সমৃদ্ধ করা; ডোমেইন তালিকা অটো-সেগমেন্ট করা; ICP সংজ্ঞার বিরুদ্ধে ডোমেইন তালিকা বৈধ করা; ফার্মোগ্রাফিক্স, স্কোর, বৃদ্ধির ডেটা, রিডাইরেক্ট, ভেন্ডর এবং সাবসিডিয়ারি সহ সম্পূর্ণ কোম্পানি প্রোফাইল পুনরুদ্ধার করা; টার্গেট কোম্পানিতে যোগাযোগ অনুসন্ধান, লুকআপ, ম্যাচিং এবং আবিষ্কার করা; এবং ওয়েব সার্চ সক্ষম সহ ডোমেইন সেটের উপর DiscoGen গবেষণা চালানো।
অথেনটিকেশন তিনটি পদ্ধতি সমর্থন করে: সাইনআপ (ব্রাউজার ছাড়াই ইমেল এবং নাম থেকে অ্যাকাউন্ট খোলে, মালিক ইমেল দিয়ে নিশ্চিত করে), OAuth লগইন (ব্রাউজার-ভিত্তিক PKCE অথরাইজেশন কোড ফ্লো লুপব্যাক রিডাইরেক্ট সহ, বা হেডলেস মোডে URL প্রিন্ট করে), এবং API কী (পরিবেশ ভেরিয়েবল DISCOLIKE_API_KEY, CLI কনফিগ ফাইল, বা স্পষ্ট প্যারামিটারের মাধ্যমে)। OAuth ক্রেডেনশিয়াল মেয়াদ শেষ হওয়ার ৬০ সেকেন্ডের মধ্যে সক্রিয়ভাবে রিফ্রেশ হয় এবং ৪০১-এর পরে আরও একবার। ক্লায়েন্ট নিজের httpx2.Client বা httpx2.AsyncClient আনারও সমর্থন করে।
সমস্ত রিকোয়েস্ট মডেল প্ল্যাটফর্মের OpenAPI স্পেক থেকে তৈরি এবং কোনো রিকোয়েস্ট পাঠানোর আগে Pydantic দিয়ে স্থানীয়ভাবে বৈধ করা হয়, তাই খারাপ enum মান বা রেঞ্জের বাইরের সংখ্যা কখনও রাউন্ড ট্রিপ খরচ করে না। সমস্ত রেসপন্স টাইপড Pydantic মডেল। ত্রুটিগুলি DiscolikeError থেকে উত্তরাধিকারসূত্রে প্রাপ্ত হয় যার নির্দিষ্ট সাবক্লাস রয়েছে অথেনটিকেশন, প্ল্যান অ্যাক্সেস, নট ফাউন্ড, সার্ভার, রেট লিমিট, ভ্যালিডেশন এবং API সংযোগ ব্যর্থতার জন্য। ক্ষণস্থায়ী ব্যর্থতা স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করা হয় (ডিফল্ট ৩টি প্রচেষ্টা)।
দীর্ঘ চলমান বাল্ক অপারেশন (match.bulk, segment, validate_icp, contacts.bulk_match) ব্লক করার পরিবর্তে একটি Job হ্যান্ডেল ফেরত দেয়। Job.wait() সম্পূর্ণ হওয়া পর্যন্ত ব্লক করে, Job.status() ব্লক না করে পোল করে এবং Job.cancel() বাতিল করে। DiscoGen-পরিবারের কাজগুলিতে, ফেরত দেওয়া JobStatus-এ সতর্কতা, estimated_cost এবং cost_metadata থাকে যার মধ্যে প্রতি-মডেল ব্যবহার এবং সার্চ প্রদানকারী এন্ট্রি অন্তর্ভুক্ত। JobTimeoutError শুধুমাত্র ক্লায়েন্ট-সাইড অপেক্ষার সীমা — কাজটি সার্ভার-সাইডে চলতে থাকে, তাই wait() আবার কল করা যেতে পারে পুনরায় শুরু করতে।
CLI SDK-এর ক্ষমতাগুলিকে প্রতিফলিত করে discover, count, match, extract, validate-icp, append, segment, signup কমান্ড সহ, এবং auth, company, contacts, discogen, queries, account, search-providers এবং llm-providers-এর জন্য কমান্ড গ্রুপ। ফলাফল ডিফল্টরূপে stdout-এ JSON হিসাবে প্রিন্ট হয়, stdout TTY হলে --format table মানব-পাঠযোগ্য আউটপুটের জন্য। অ্যাসিঙ্ক এন্ডপয়েন্ট কাজ শেষ না হওয়া পর্যন্ত ব্লক করতে --wait গ্রহণ করে, অথবা পোলিংয়ের জন্য task_id ফেরত দেয়। এক্সিট কোড মানসম্মত: 0 সাফল্য, 1 সার্ভার ত্রুটি, 2 ভ্যালিডেশন ত্রুটি, 3 অথেনটিকেশন/প্ল্যান ত্রুটি, 4 রেট লিমিটেড, 5 নেটওয়ার্ক ত্রুটি, 6 নট ফাউন্ড।
রিপোজিটরিটি একটি uv ওয়ার্কস্পেস হিসাবে গঠিত যার দুটি সদস্য: packages/discolike (SDK) এবং packages/discolike-cli (CLI)। উন্নয়নে pytest পরীক্ষার জন্য, ruff লিন্টিংয়ের জন্য এবং OpenAPI স্পেক থেকে রিকোয়েস্ট মডেল পুনরুত্পাদনের জন্য একটি কোড জেনারেশন স্ক্রিপ্ট (scripts/gen_requests.py) ব্যবহার করে। examples/ ফোল্ডারে সাধারণ ওয়ার্কফ্লোগুলির জন্য রানযোগ্য স্ক্রিপ্ট রয়েছে যার মধ্যে রয়েছে CRM যোগাযোগ এক্সপোর্টকে DiscoLike persona ID-এর সাথে চেকপয়েন্টিং এবং রিজিউম সহ ম্যাচিং, CSV থেকে বাল্ক-ফাইন্ডিং কাজের ইমেল এবং ICP দ্বারা কোম্পানি আবিষ্কার তারপর DiscoGen দিয়ে সমৃদ্ধ করা। প্রকল্পটি MIT লাইসেন্সের অধীনে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.