مدل های توسعه داده شده در ماتریکس علاوه بر سایت ماتریکس، به صورت API نیز در دسترس هستند. به طور کلی دو روش برای استفاده از مدل های بازارچه هوش مصنوعی ماتریکس ماتریکس وجود دارد.
در ابتدا به تفاوت بین مفهوم و کاربرد API و SDK میپردازیم تا هدف نهایی Matrix SDK مشخص شود. همانطوری که میدانید API مخفف Application Programming Interface میباشد و ابزاری است که ارتباط بین اپلیکیشن های مختلف را با استفاده از سرویس های مختلفش امکان پذیر میکند. برای مثال یک برنامه اندروید با درخواست پردازش به API ماتریکس و بدون هیچ دانشی از مدل های موجود در ماتریکس می تواند داده خود را پردازش کند.
از طرفی دیگر (Software Development Kit (SDK مجموعه ای از ابزارها، مثالها و قطعه کدهایی برای توسعه دهندگان است که بر روی یک یا چند API ساخته می شود تا توسعه دهندگان پیاده سازی و استفاده از API را از ابتدا شروع نکنند. SDK ماتریس را می توان به سه بخش تقسیم کرد.
جهت نصب کیت توسعه ماتریکس ابتدا باید یک محیط مجازی پایتون (Virtual Environment) داخل سیستم خود بسازید. اگر از آناکوندا برای مدیریت پکیج های خود استفاده میکنید نیازی به ساخت محیط مجازی نیست. اگر با محیط مجازی آشنایی ندارید می توانید آموزش ساخت محیط مجازی را مشاهده کنید.
پس از مشخص شدن Interpreter پایتون، دستور زیر را جهت نصب SDK داخل ترمینال پایتون خود وارد کنید:
pip install matrix-sdk
پس از اجرای این دستور تمامی پکیج های مورد نیاز برای استفاده از کیت ماتریکس نصب خواهند شد.
جهت حذف پکیج ماتریکس نیز می توانید از دستور زیر استفاده کنید:
pip uninstall matrix
جهت ارتباط با API ماتریکس باید از طریق وبسایت یک API Token دریافت کنید و مقدار آن را کپی کنید. اسکریپت client در matrix-sdk وظیفه درخواست به مدل مورد نظر را دارد. شما میتوانید با ساخت آبجکت client
از کلاس Client
موجود در sdk ماتریکس، درخواست اجرای مدل ها را انجام دهید. کلاس Client
مقدار API Key و نام مدل را از شما می گیرد. جهت اطلاع از نام مدل مورد نظر خود می توانید از تابع get_repo_list
موجود در matrix.client.request
استفاده کنید. همچنین می توانید نام مدل مورد نظر خود را در بخش عامل های هوش مصنوعی و با انتخاب مدل خود پیدا کنید.
from matrix.client.request import Client
MATRIX_TOKEN = "your api token"
model_name = "matrixai/text2image"
client = Client(MATRIX_TOKEN, model_name)
اگر مدل مورد نظر نیاز به فایل خاصی مثل image ,pdf و ... دارد ابتدا باید آن را آپلود نمایید. در پاسخ به درخواست آپلود شما لیست دریافت میکنید که شامل اسم هر فایل و آیدی مربوط به آن فایل در سرور ماتریس است. هر کدام از این آیدی ها را در مرحله بعد ارسال کنید به عنوان ورودی به مدل داده خواهد شد.
files = [
"/path/to/local-file/example.png",
"/another/file/path/...",
]
file_ids = client.upload_files(files)
print(file_ids)
ثبت درخواست اجرای مدل توسط call انجما می شود. ورودی call به صورت زیر است که در آن repo_name همان اسمی است که در لیست مدلها میبینید. ساختار آن نیز مشخص است._ file_ids در اینجا همان آیدی فایلهایی است که در مرحله قبل بارگذاری نمودید. ( اگر ورودی مدل تنها متن است، نیازی نیست این فیلد را قرار دهید) در پاسخ به شما یک id_task داده می شود که از آن می توانید برای پیگیری وضعیت درخواست خود استفاده کنید:
inputs = {
"repo_name": "author_username/repo_name",
"inputs": {
"text":"your input text", # Required
"file_ids":[file_id1, file_id2, ....] # Optional
}
}
response = client.call(inputs)
print(response)
آیدی که در مرحله قبل داده شده بود را برای پیگیری درخواست استفاده نمایید. در صورت SUCCESS به شما یک دیکشنری برگردانده می شود که اطالعات کامل درخواست شامل تاریخ، اسم مدل، ورودیهای داده شده، خروجی ها و ... داده می شود. اگر خروجی فایل است در بخش بعد میتوانید نتایج خود را دانلود کنید.
response = client.request_status(task_id="request task id from last step")
اگر خروجی شما به صورت فایل باشد، url فایل خروجی در قسمت قبل برای شما ارسال می شود. شما می توانید با استفاده از متد download_file و ارسال url فایل های خود را دانلود کنید.
file = client.download_file(response["output"]["files"][0])