واحد 5 / 11

Cloud AI و LLM API ادغام: چت، جریان و امنیت

سود:

  • امکان ایجاد یک معماری امن ابری LLM که کلید API را روی کلاینت نگه نمی دارد، اما از طریق یک پروکسی back-end می رود.
  • امکان نوشتن یکپارچه‌سازی‌های قوی که سرعت درک شده را با پخش جریانی افزایش می‌دهد و به آرامی موقعیت‌هایی مانند زمان‌بندی، خطاهای شبکه و محدودیت‌های سرعت را مدیریت می‌کند.
  • امکان کاهش هزینه با کوتاه کردن توکن ارسال شده و زیر سوال بردن ضرورت داده های شخصی قبل از رفتن به ابر

هوش مصنوعی روی دستگاه قدرتمند اما محدود است. هنگامی که می‌خواهید یک «دستیار چت هوشمند»، خلاصه‌سازی متن طولانی، یا تولید خلاقانه پیچیده را به یک برنامه اضافه کنید، به مدل‌هایی نیاز دارید که بزرگتر از آن هستند که روی گوشی قرار بگیرند. اینجاست که هوش مصنوعی ابری وارد عمل می شود: برنامه شما از طریق یک API (رابط برنامه نویسی برنامه – رابط استانداردی که در آن دو نرم افزار داده ها را به یکدیگر ارسال و دریافت می کنند) به یک مدل زبان بزرگ (LLM) متصل می شود. در این واحد ما یاد خواهیم گرفت که چگونه LLM را به روشی ایمن، سریع و مقرون به صرفه در یک برنامه تلفن همراه ادغام کنیم. تاکید اساسی بر امنیت خواهد بود: یکپارچگی LLM که به درستی نصب نشده باشد می تواند کلید API شما را نشت کند و منجر به صورتحساب هایی به ارزش هزاران پوند شود.

قانون طلایی معماری: کلید را روی مشتری نگه دارید

خطرناک ترین اشتباهی که می توان در یکپارچه سازی هوش مصنوعی ابری مرتکب شد، قرار دادن کلید API (رمز عبور مخفی که اجازه استفاده از سرویس را می دهد) مستقیماً در کد برنامه تلفن همراه است. برنامه‌های تلفن همراه در دستگاه کاربر دانلود می‌شوند و کد را می‌توان با مهندسی معکوس خواند — تجزیه برنامه کامپایل‌شده و دیدن آنچه در داخل آن است. اگر کلید شما در داخل برنامه است، شخصی می‌تواند آن را استخراج کند و درخواست‌های نامحدودی از حساب شما داشته باشد.

معماری صحیح این است: برنامه تلفن همراه درخواست ها را به سرور باطن خود شما (سرور پروکسی که شما کنترل می کنید) ارسال می کند. کلید فقط روی سرور قرار دارد. سرور به سرویس LLM می رود و پاسخ را به برنامه برمی گرداند. این میان افزار همچنین محدودیت سرعت، جلوگیری از سوء استفاده و کنترل هزینه را فراهم می کند.

رویکرد

کلید کجاست

امنیت

کلید در برنامه است (FALSE)

در مشتری، عمومی

نشت می کند، اسکناس منفجر می شود

کلید در باطن است (TRUE)

در سرور، مخفی شده است

ایمن، قابل کنترل

احتیاط: هنگامی که از هوش مصنوعی برای ادغام LLM ابری می‌خواهید، ممکن است مثالی تولید کند که کلید را مستقیماً در کد برنامه برای راحتی شما بنویسد. هرگز این را زنده نگیرید. اطمینان حاصل کنید که عبارت "کلید API نباید روی کلاینت باشد، از طریق پروکسی باطن بروید" را در اعلان قرار دهید.

استریم: افزایش سرعت درک شده

پاسخ‌های LLM می‌تواند طولانی باشد و تولید کامل آن‌ها چند ثانیه طول می‌کشد. گذاشتن کاربر در انتظار روی صفحه خالی تجربه بدی است. راه حل جریان است - نمایش پاسخ کلمه به کلمه، همانطور که تولید می شود. کاربر بر املای متن نظارت می کند، مانند ChatGPT. این به طور چشمگیری سرعت درک شده و روانی را افزایش می دهد. جریان در تلفن همراه به معنای افزودن قطعات (توکن ها - قطعه متن تولید شده توسط مدل) از سرور به رابط هنگام ورود است. هنگام چاپ ادغام با هوش مصنوعی، صراحتاً جریان را درخواست کنید.

نکته: یک دکمه «مکث» در پاسخ جریان اضافه کنید. کاربر باید بتواند زمانی که پاسخی را که می خواهد دریافت کند، تولید را متوقف کند. این هم تجربه را بهبود می بخشد و هم با کاهش تولید توکن های غیر ضروری، هزینه را کاهش می دهد. در میانه پاسخ طولانی، ممکن است کاربر قبلاً پاسخ خود را پیدا کرده باشد.

مدیریت هزینه، تاخیر و خطا

Cloud LLM هزینه پول (کارمزد هر توکن) و هزینه زمانی (تاخیر) را با هر درخواست حمل می کند. سه رشته ضروری است. Cost: limit prompt and response length, do not send unnecessarily long system instructions, default to small and cheap model if possible. تأخیر: استفاده از جریان، تنظیم مهلت زمانی، در صورت کندی شبکه به کاربر اطلاع دهید. خطا: قطع شدن شبکه، سرویس ممکن است 429 (درخواست های بسیار زیاد) یا 500 (خطای سرور) را برگرداند. هر کدام را به آرامی مدیریت کنید، برنامه را خراب نکنید. همچنین، LLM گاهی اوقات پاسخ های بی معنی یا نادرست (توهم) می دهد. یک لایه تأیید پاسخ در مناطق بحرانی اضافه کنید.

سه کیف کوچک

مورد 1 - کلید لو رفته. یک استارت‌آپ کلید OpenAI را مستقیماً در برنامه React Native خود تعبیه کرد تا سریع از آن خارج شود. سه هفته پس از انتشار برنامه، کلید مهندسی معکوس شد و یک شبه 2400 دلار استفاده شد. تیم مجبور شد کلید را باطل کند و یک پروکسی باطن راه‌اندازی کند. درس: میانبری که برای راحتی استفاده می شود، گران ترین مسیر شد.

مورد 2 - افت خروج با جریان کاهش یافت. یک برنامه آموزشی ابتدا ویژگی پرسش و پاسخ خود را بدون پخش جریانی منتشر کرد. کاربران پس از 6 ثانیه انتظار بیکار خارج می شدند. هنگامی که جریان اضافه شد، اولین کلمه در 0.8 ثانیه ظاهر شد و نرخ رهاسازی از 48٪ به 12٪ کاهش یافت. مدل مشابه، سرعت یکسان - فقط تفاوت در ارائه.

مورد 3 - کنترل هزینه. یک برنامه کل تاریخچه چت را با هر پیام کاربر به مدل ارسال می کرد. در مکالمات طولانی، یک درخواست به 8000 توکن می رسید که هزینه را افزایش می داد. تنها با ارسال چند پیام آخر و خلاصه، تیم توکن‌های هر درخواست را 70 درصد کاهش داد و صورت‌حساب ماهانه را به یک سوم کاهش داد. درس: آنچه را که ارسال می کنید اندازه بگیرید.

اعلان ضعیف / اعلان قوی

اعلان ضعیف: "یک چت مانند ChatGPT را به برنامه من اضافه کنید."

اعلان قدرتمند: "یک دستیار چت را به برنامه iOS/Swift خود اضافه کنید. معماری: برنامه درخواستی را به باطن خود من ارسال می کند، کلید LLM API روی CLIENT نیست، از طریق پروکسی می رود. - پاسخ پخش می شود، کلمه به کلمه نمایش داده می شود - دکمه "توقف" تولید را قطع می کند - مدیریت 5، مهلت زمانی 5، 02، وقفه 5، 4-09 و وضعیت خطای 5، 02، وقفه 5، 4-09 و وضعیت خطای 5، 02، وقفه 5، 4-09 error را کنترل می کند. تاریخچه چت را کوتاه کنید: 6 پیام آخر را ارسال کنید + خلاصه (کنترل هزینه) ابتدا نمودار معماری را توضیح دهید، سپس کد مشتری و پروکسی را جداگانه بدهید."

قالب های قابل کپی

الگوی معماری امن: "ادغام ابر LLM را در برنامه [پلتفرم] من طراحی کنید. قانون: کلید API فقط در باطن. Client -> my proxy -> LLM. در پروکسی: احراز هویت، محدودیت نرخ هر کاربر، ثبت درخواست. مسئولیت های مشتری و پروکسی را جداگانه فهرست کنید، سپس کد را صادر کنید."

الگوی پخش جریانی: "یک پاسخ پخش جریانی را به این صفحه گپ اضافه کنید: - هنگام رسیدن قطعات به حباب پیام اضافه کنید - نشانگر نشانگر/انیمیشن در حین تایپ کردن - دکمه "توقف" جریان را لغو کنید - متن جزئی را حفظ کنید و در صورت وجود خطایی در حین پایان جریان [کد موجود] هشدار دهید."

الگوی Cost-Lency: "کاهش هزینه و تاخیر در این ادغام LLM: - چگونه می توانم رمز ارسال شده را کاهش دهم (مخفف تاریخچه، خلاصه)؟ - در کدام صورت مدل کوچکتر/ارزانتر کافی است؟ - پیشنهاد زمانبندی و تلاش مجدد استراتژی[کد]"

الگوی تحمل خطا: "این تماس LLM را انعطاف پذیر کنید: - رفتار مجزا برای بدون شبکه، مهلت زمانی، 429 (محدودیت نرخ)، 500 (سرور) - پیام غیر فنی و مودبانه به کاربر - یادداشت تایید در برابر خطر توهم در پاسخ های مهم [کد]"

اشتباهات رایج

  • جاسازی کلید API در برنامه گران ترین و رایج ترین اشکال امنیتی؛ کلید قطعاً در انتهای پشتی نهفته است.
  • عدم استفاده از جریان گذاشتن کاربر در انتظار پاسخ های طولانی، کاربر را از خود دور می کند.
  • ارسال کل تاریخچه چت با هر درخواست. هزینه رمز و تأخیر را چند برابر می کند.
  • دور زدن شرایط خطا اگر 429/500/timeout رسیدگی نشود، برنامه از کار می افتد یا مسدود می شود.
  • در نظر گرفتن پاسخ LLM به عنوان صحیح بدون سوال. توهم واقعی است. لایه تأیید را در منطقه بحرانی اضافه کنید.
  • ارسال اطلاعات کاربر به LLM غیر ضروری. بپرسید که آیا داده های شخصی مورد نیاز است یا باید قبل از رفتن به ابر پنهان شوند.

به طور خلاصه

Cloud LLM قابلیت‌های بزرگی را به ارمغان می‌آورد که روی دستگاه به موبایل نمی‌خورد، اما نیازمند امنیت و نظم هزینه است. قانون طلایی: کلید API هرگز روی کلاینت نیست، بلکه از طریق پروکسی backend می رود. جریان سرعت درک شده و حفظ را تا حد زیادی افزایش می دهد. توسط دکمه "توقف" پشتیبانی می شود. هزینه با کوتاه کردن توکن ارسال شده تعیین می شود. انعطاف پذیری با رسیدگی به تمام موارد خطا به خوبی به دست می آید. پاسخ های LLM ممکن است شامل توهم باشد. در مناطق بحرانی، تأیید ضروری است و داده‌های شخصی قبل از ارسال به فضای ابری بررسی می‌شوند.

وظیفه کاربردی

با استفاده از «الگوی معماری امن» برای ویژگی «خلاصه متن» یا «چت»، طراحی پروکسی کلاینت + باطن را از هوش مصنوعی درخواست کنید. بررسی کنید که کلید API فقط در پشتیبان طراحی تولید شده قرار دارد. سپس حداقل دو روش برای کاهش رمز ارسال شده با "الگوی تاخیر هزینه" استخراج کنید و پیام مودبانه را بنویسید تا برای شرایط خطا به کاربر نمایش داده شود (مثلاً 429).

چک لیست

  • [ ] من تأیید کردم که کلید API در پشتیبان قرار دارد و نه در مشتری
  • [ ] من جریان پاسخ را انجام دادم و یک دکمه "مکث" اضافه کردم
  • [ ] من مهلت زمانی، خطای شبکه، 429 و 500 موقعیت را کنترل کردم
  • [ ] رمز ارسالی را با مخفف/خلاصه گذشته کاهش دادم
  • [ ] من اعتبار سنجی در برابر خطر توهم را در پاسخ LLM در نظر گرفتم
  • [ ] قبل از رفتن به فضای ابری، ضرورت/پوشاندن اطلاعات شخصی را بررسی کردم