با رشد تحلیل داده و هوش مصنوعی، تولیدکنندگان API نیاز دارند نیازهای دانشمندان داده و مهندسان یادگیری ماشین را درک کنند. APIهای شما احتمالاً در حال حاضر توسط این گروه استفاده میشوند، اما با درک بیشتر آنها میتوانید نیازهایشان را بهتر برآورده کنید.
چگونه دانشمندان داده از APIها استفاده میکنند
متخصصان داده به روشهای مختلفی از APIها استفاده میکنند. برای سادگی، من آنها را دانشمندان داده مینامم، اما به همان اندازه احتمال دارد عناوینی مانند مهندس داده، تحلیلگر داده، یا مهندس یادگیری ماشین داشته باشند.
دانشمندان داده ممکن است ابتدا هنگام انجام تحلیل اکتشافی داده (EDA) به API شما دسترسی پیدا کنند. تفاوت کلیدی با دانشمندان داده این است که یک توسعهدهنده نرمافزار ممکن است با گرفتن چند صد ردیف برای درک قالب داده راضی باشد، اما دانشمندان داده اغلب به دادههای بسیار بیشتری نیاز دارند تا یک نمونهٔ نماینده داشته باشند.
به همین دلیل، آنها احتمالاً تا جایی که امکان دارد داده از API شما واکشی میکنند، سپس نمونهگیری تصادفی انجام میدهند تا توزیع دادهٔ شما را همراه با معیارهای گرایش مرکزی مانند میانگین و میانه بررسی کنند. آنها نمودارهای پراکندگی ایجاد میکنند تا روابط و همبستگیهای احتمالی بین عناصر مختلف را ببینند و نمودارهای جعبهای روی چند عنصر کلیدی رسم میکنند. (یکی از مربیانم همیشه به من میگفت: «همیشه با رسم دادههایت شروع کن.»)
دانشمندان داده حتی ممکن است اسکریپتی ایجاد کنند که با صفحهبندی حلقه بزند تا تمام محتویات داده را دریافت کند. آنها محتویات API شما را در معیارهای کیفیت داده مانند کامل بودن، سازگاری و یکتایی بررسی میکنند.
اگر آنها API را مفید و باکیفیت بیابند، ممکن است آن را برای طیفی از محصولات داده استفاده کنند. آنها میتوانند گزارشهای تحلیلی یا داشبوردهایی از آن بسازند، و ممکن است دادهها را هنگام پرسوجوی کاربران واکشی کرده و روی ستونهای مفید فیلتر کنند.
آنها همچنین ممکن است از آن برای آموزش یک مدل یادگیری ماشین استفاده کنند؛ فرایندی تکراری که در آن با ترکیبهای مختلفی از ستونهای داده و الگوریتمها برای انجام کارهایی مانند طبقهبندی (برای مثال دستهبندی ایمیل به اسپم یا غیر اسپم) یا رگرسیون (ایجاد پیشبینی از مقادیر عددی آینده بر اساس الگوهای گذشته) آزمایش میکنند. اگر مدل قابلاعتمادی ایجاد کنند، احتمالاً آن را در تولید مستقر میکنند که اغلب شامل ساخت یک API جدید نیز میشود.
اگر آنها به استفادهٔ مداوم از API شما متعهد شوند، ممکن است آن را در یک خط لولهٔ داده قرار دهند، جایی که از آن برای واکشی منظم آخرین بهروزرسانیها و ذخیرهٔ آنها در نوعی ذخیرهساز داده استفاده میکنند. در اینجا آنها روی این حساب میکنند که API شما مطابق تعریف خود باشد، بهروزرسانیهای منظم ارائه دهد، و به طور قابلاطمینان در دسترس باشد.
جدیدترین روش استفادهٔ دانشمندان داده از APIها در برنامههای هوش مصنوعی مولد است. روشهای مختلفی وجود دارد که APIها در این نوع برنامه به کار میروند. یکی از روشها، تولید افزوده به بازیابی (RAG) است که در آن برنامه محتوا را از یک API واکشی میکند و سپس آن را به یک مدل زبانی بزرگ (LLM) میدهد تا نتیجهای ارائه کند. در موارد دیگر، LLM برای ایجاد یک عامل استفاده میشود که مجموعهای از ابزارها—including APIs—به آن داده میشود. در آن حالت، عامل تصمیم میگیرد چه زمانی API را فراخوانی کند و از کدام اندپوینتها و پارامترها استفاده کند.
طراحی APIها برای خدمترسانی به نیازهای آنها
در حالی که تمایل یک دانشمند داده برای دادهٔ باکیفیت و خدمات قابلاعتماد منحصربهفرد نیست، ویژگیهای خاصی وجود دارد که قدردان آنها خواهند بود. اگر این موارد را ارائه دهید، احتمالاً دانشمندان داده را به سمت پلتفرمتان جذب کرده و آنها را حفظ خواهید کرد. در ادامه چند ویژگی مطرح میشود که کاربران علم داده از آنها بهرهمند خواهند شد.
افزودن شناسههای استاندارد خارجی به API شما
API شما احتمالاً شامل شناسههای منحصربهفرد سیستم شماست، مانند شناسههای محصول یا کدهای منطقه. دانشمندان داده احتمالاً میخواهند دادههای شما را با پیوستن به مجموعهدادههای شخص ثالث غنیسازی کنند. شما میتوانید این کار را با افزودن شناسههای استاندارد صنعتی—even اگر الان در سیستم ذخیره یا استفاده نمیکنید—امکانپذیر کنید. نمونههایی از این موارد عبارتاند از کدهای FIPS یا ISO برای استانداردسازی مکانها در ایالات متحده یا سطح بینالمللی و کدهای GTIN برای ردیابی محصولات خردهفروشی.
ارائهٔ یک کیت توسعهٔ نرمافزار (SDK)
از تجربهٔ من، ارائهدهندگان API تا زمانی که برنامهٔ API بزرگتری نداشته باشند، معمولاً SDK ارائه نمیدهند. اما خواهید دید که کاربران علم داده بسیار سریعتر API شما را بررسی میکنند اگر بتوانند با یک دستور pip install سریع در پایتون یا install.packages() در R به آن دسترسی پیدا کنند.
نکتهٔ کلیدی این است که دانشمندان داده اهمیتی به API شما نمیدهند — آنها فقط دادهٔ شما را میخواهند. و سریعترین راه برای دریافت آن استفاده از یک کتابخانه در زبان دلخواهشان است. انواع مختلفی از تولیدکنندگان SDK تجاری و متنباز وجود دارند که پایتون را پشتیبانی میکنند. تعداد کمتری بهنظر میرسد که تولید خودکار کلاینت R را پشتیبانی کنند، اما OpenAPI Generator در زمان نگارش از R پشتیبانی را ذکر میکند.
ارائهٔ تاریخ و زمان آخرین تغییر روی هر اندپوینت
اگر دانشمندان داده API شما را در یک پایپلاین دادهٔ زمانبندیشده استفاده کنند، معمولاً میخواهند یک بار بارگیری کامل از محتوای دادهٔ شما انجام دهند (بیشتر در ادامه) و سپس به طور منظم «دلتـاها»، یعنی رکوردهایی که از آخرین بهروزرسانی آنها تغییر کردهاند، را دریافت کنند.
اگر تاریخ و زمان دقیق آخرین تغییر را در نتایج خود بگنجانید و آن را بهعنوان یک پارامتر پرسوجو اضافه کنید، آنها میتوانند پرسوجوهای هدفمند انجام دهند که برایشان آسانتر است و بار کمتری روی سرویس شما میگذارد. این موضوع بهویژه برای APIهای REST و GraphQL اهمیت دارد که مصرفکننده برای بهروزرسانیها فراخوانیهای مکرر انجام میدهد. سبکهای معماری دیگر زمانی استفاده میشوند که بهروزرسانیها در زمان واقعی یا هنگام وقوع رویدادها به مصرفکنندگان ارسال میشوند، مانند Webhooks، Websockets، Kafka، و صفهای پیام.
ارائهٔ یک دانلود انبوه
این مورد ادامهٔ نکتهٔ قبلی است. برای پایپلاین داده، آنها ترجیح میدهند با یک بارگیری کامل شروع کنند و سپس فقط بهروزرسانیها را دریافت کنند. آنها همچنین از این فایل انبوه هنگام انجام EDA اولیه یا آموزش مدل قدردانی خواهند کرد. اگر روشی برای دریافت یک بارگیری کامل انبوه در قالب CSV یا parquet ارائه دهید، از شما سپاسگزار خواهند بود.
درک ابزارهایی که دانشمندان داده استفاده میکنند
اگر دوست دارید یک مایل در کفش یک دانشمند داده قدم بزنید، یک نقطهٔ شروع عالی استفاده از ابزارهای متنباز استاندارد برای دسترسی به APIهای خودتان است. من به پایتون علاقه دارم، بنابراین با ایجاد یک نوتبوک Jupyter در VS Code شروع میکنم و از کتابخانههای requests یا httpx برای فراخوانی API استفاده میکنم. سپس میتوانید از کتابخانهٔ pandas برای ذخیرهٔ نتایج فراخوانیهای API در دیتافریمها استفاده کنید؛ ساختارهایی شبیه به صفحهگسترده که برای پاکسازی و بررسی دادههای جدولی مفیدند.
میتوانید چند نمودار و تصویرسازی ابتدایی از دادههای خود با کتابخانههایی مانند matplotlib و plotly ایجاد کنید. سپس میتوانید به سرعت یک برنامه دادهٔ مبتنی بر وب با Streamlit یا Gradio بسازید. از اینکه این ابزارهای ساده چقدر سریع به شما اجازه میدهند دادههای API را مانند یک کاربر تجاری بررسی و درک کنید، شگفتزده خواهید شد. آنچه دربارهٔ دادههای خود یاد میگیرید ممکن است شما را متعجب کند.
اگر دوست دارید لبهٔ تکنولوژی را تجربه کنید، میتوانید با یک برنامهٔ هوش مصنوعی مولد در پایتون آزمایش کنید. فریمورکهایی مانند Langchain، Autogen، Llamaindex، و PydanticAI در حال توسعهاند که میتوانند سبکهای مبتنی بر RAG یا مبتنی بر عامل را پیادهسازی کنند. با این حال، محدودیتهایی که در حال حاضر در تمام برنامههای هوش مصنوعی مولد وجود دارد، مانند هذیانسازیها، همچنان برقرارند. اینها همچنین از نظر پیچیدگی یک سطح بالاتر از مثالهای قبلی هستند.
کاربران علم داده را بپذیرید
اگر شما یک ارائهدهندهٔ API هستید و زمان زیادی را صرف صحبت با کاربران علم داده نکردهاید، اکنون زمان مناسبی برای شروع است. با کاربران موجود خود تماس بگیرید تا دانشمندان داده را پیدا کنید و زمانی برای برخی تستهای کاربری با آنها برنامهریزی کنید. ببینید آنها چگونه از APIهای شما با ابزارهای بومی خود استفاده میکنند و شکافها و فرصتهایی برای خدمترسانی بهتر شناسایی کنید. همچنین میتوانید در میتآپهای محلی علم داده، تستکننده جذب کنید. با افزودن ویژگیهایی که نیازهای آنها را برآورده میکند، میتوانید پستهای وبلاگ و راهنماهای کاربری خاص با تمرکز علم داده ایجاد کنید. ممکن است شگفتزده شوید که چند دانشمند داده در حال حاضر از APIهای شما استفاده میکنند و چند نفر دیگر منتظرند اگر فقط تلاش کنید نیازهای خاص آنها را برآورده کنید.
برای اینکه خودتان وارد عمل شوید و APIها را با استفاده از نکات فوق توسعه دهید یا مانند دانشمندان داده از APIها استفاده کنید، کتاب جدید من Hands-On APIs for AI and Data Science: Python Development with FastAPI را بررسی کنید.
