Download the PHP package sanjarani/openai-laravel without Composer
On this page you can find all versions of the php package sanjarani/openai-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download sanjarani/openai-laravel
More information about sanjarani/openai-laravel
Files in sanjarani/openai-laravel
Package openai-laravel
Short Description A comprehensive PHP package for seamless integration with the OpenAI API, featuring support for the latest models (GPT-4o, o1), Assistants API v2, Tools, streaming, prompt caching, and full compatibility with Laravel 12+.
License MIT
Informations about the package openai-laravel
پکیج PHP برای OpenAI سازگار با لاراول
یک پکیج قدرتمند و مدرن PHP برای تعامل با API قدرتمند OpenAI، با تمرکز ویژه بر سازگاری کامل با لاراول ۱۲ به بالا و پیادهسازی آخرین استانداردها و ویژگیهای پیشرفته OpenAI.
ویژگیهای کلیدی
- پشتیبانی جامع از Endpointهای OpenAI: شامل Chat (gpt-4o, gpt-3.5-turbo)، Completions، Embeddings (text-embedding-3-small, text-embedding-3-large)، Images (DALL·E 3, DALL·E 2)، Assistants API (با قابلیت استفاده از ابزارها مانند Code Interpreter و File Search)، Files، Fine-tuning، Models و Moderations.
- سازگاری با لاراول ۱۲ به بالا: طراحی شده با در نظر گرفتن آخرین ویژگیها و بهترین شیوههای لاراول.
- سرویس پروایدر و Facade: برای یکپارچهسازی آسان با پروژههای لاراول.
- پیکربندی انعطافپذیر: از طریق فایل پیکربندی
config/openai.php
و متغیرهای محیطی (.env
). - کش پرامپت (Prompt Caching): قابلیت کش کردن پاسخهای API برای کاهش هزینهها و افزایش سرعت (قابل فعالسازی و تنظیم).
- پشتیبانی از Streaming: برای Endpointهای Chat و Completions و Fine-tuning Events، امکان دریافت پاسخها به صورت جریانی.
- مدیریت خطای پیشرفته: استفاده از Exceptionهای اختصاصی برای مدیریت بهتر خطاهای API.
- ساختار ماژولار و قابل توسعه: طراحی شده با Endpointهای مجزا و یک کلاس AbstractEndpoint برای سهولت در نگهداری و افزودن قابلیتهای جدید.
- بهروز با آخرین مدلها: شامل پشتیبانی از مدلهای جدید مانند
gpt-4o
وtext-embedding-3-small
. - مستندات کامل: راهنمای جامع برای نصب، پیکربندی و استفاده از تمامی ویژگیها.
نیازمندیها
- PHP ۸.۱ به بالا
- Laravel Framework ۱۲.۰ به بالا
- Composer
نصب
۱. برای نصب پکیج از طریق Composer دستور زیر را اجرا کنید:
(توجه: نام sanjarani/openai-php
یک مثال است. پس از انتشار واقعی پکیج، نام صحیح جایگزین خواهد شد.)
۲. (مخصوص لاراول) فایل پیکربندی و سرویس پروایدر به صورت خودکار توسط لاراول شناسایی میشوند. در صورت نیاز به انتشار دستی فایل پیکربندی، دستور زیر را اجرا کنید:
این دستور فایل openai.php
را در پوشه config
پروژه شما ایجاد میکند.
پیکربندی
پس از نصب، متغیرهای محیطی زیر را در فایل .env
پروژه خود تنظیم کنید:
OPENAI_API_KEY
: کلید API شما از OpenAI.OPENAI_ORGANIZATION_ID
: شناسه سازمان شما در OpenAI (در صورت استفاده).OPENAI_CHAT_MODEL
و سایرOPENAI_*_MODEL
: مدلهای پیشفرض برای هر قابلیت. میتوانید این مقادیر را در فایلconfig/openai.php
نیز مشاهده و تغییر دهید.OPENAI_CACHE_ENABLED
: برای فعال یا غیرفعال کردن کش پاسخهای API.OPENAI_CACHE_STORE
: نام استور کش لاراول که میخواهید استفاده کنید (مثلاًredis
,memcached
). اگرnull
باشد از استور پیشفرض استفاده میشود.OPENAI_CACHE_TTL
: مدت زمان نگهداری آیتمها در کش به ثانیه.
استفاده
میتوانید از Facade OpenAI
برای دسترسی به Endpointهای مختلف استفاده کنید.
مدیریت خطا
در صورت بروز خطا در ارتباط با API، پکیج یک Sanjarani\OpenAI\Exceptions\OpenAIException
پرتاب میکند. میتوانید جزئیات خطا را از این Exception دریافت کنید:
کش کردن پاسخها (Prompt Caching)
اگر کش را در فایل پیکربندی (openai.cache.enabled = true
) فعال کرده باشید، پکیج به طور خودکار پاسخهای موفق از Endpointهایی که از کش پشتیبانی میکنند (مانند Chat, Completions, Embeddings, Models list/retrieve, Assistants retrieve/list) را کش میکند. درخواستهای بعدی با پارامترهای یکسان، پاسخ را از کش دریافت خواهند کرد.
پاسخهایی که از کش بازگردانده میشوند، یک کلید _from_cache
با مقدار true
خواهند داشت.
Endpointها
۱. Chat
برای تعامل با مدلهای مکالمه مانند gpt-4o
و gpt-3.5-turbo
.
ایجاد یک پاسخ Chat:
ایجاد یک پاسخ Chat به صورت جریانی (Streaming):
۲. Completions (Legacy)
برای کار با مدلهای تکمیل متن قدیمیتر (مانند gpt-3.5-turbo-instruct
).
ایجاد یک Completion:
ایجاد یک Completion به صورت جریانی (Streaming):
۳. Embeddings
برای ایجاد بردارهای جاسازی (embedding vectors) از متن.
۴. Images
برای تولید و ویرایش تصاویر با استفاده از مدلهای DALL·E.
تولید تصویر (Generations):
ویرایش تصویر (Edits - DALL·E 2 only):
ایجاد واریاسیون از تصویر (Variations - DALL·E 2 only):
۵. Moderations
برای بررسی اینکه آیا متن با سیاستهای محتوای OpenAI مغایرت دارد یا خیر.
۶. Files
برای آپلود، مدیریت و بازیابی فایلها جهت استفاده در سایر Endpointها مانند Fine-tuning و Assistants.
آپلود فایل:
لیست فایلها:
بازیابی اطلاعات یک فایل:
حذف یک فایل:
بازیابی محتوای یک فایل:
۷. Fine-tuning (Fine-tuning Jobs API v1)
برای ایجاد و مدیریت جابهای fine-tuning.
ایجاد یک Fine-tuning Job:
لیست Fine-tuning Jobs:
بازیابی یک Fine-tuning Job:
لغو یک Fine-tuning Job:
لیست رویدادهای یک Fine-tuning Job (با قابلیت Streaming):
حذف یک مدل Fine-tuned (از طریق Models API):
۸. Models
برای لیست کردن و بازیابی اطلاعات مدلهای موجود.
لیست مدلها:
بازیابی اطلاعات یک مدل:
حذف یک مدل Fine-tuned (این متد در ModelsEndpoint نیز موجود است):
۹. Assistants API (v2)
برای ساخت اپلیکیشنهای هوش مصنوعی با دستیارهای پیشرفته.
تعریف ابزارها (Tools):
ایجاد یک Assistant:
بازیابی یک Assistant:
بهروزرسانی یک Assistant:
لیست Assistantها:
حذف یک Assistant:
مدیریت فایلهای Assistant:
کار با Threads, Messages, Runs (برای تکمیل تعامل با Assistant):
این پکیج در حال حاضر Endpointهای مستقیم برای Threads, Messages, Runs را به صورت مجزا پیادهسازی نکرده است، اما شما میتوانید با استفاده از متد request
در کلاس اصلی OpenAI
یا AbstractEndpoint
به این Endpointها دسترسی پیدا کنید یا آنها را به پکیج اضافه نمایید. ساختار پکیج برای چنین توسعهای آماده است.
مثال (نیاز به پیادهسازی یا استفاده از متد request
عمومی):
توسعه و مشارکت
از مشارکت شما در توسعه این پکیج استقبال میشود. لطفاً برای گزارش باگها یا ارائه پیشنهادات از بخش Issues در GitHub استفاده کنید. برای ارسال Pull Request، لطفاً از استانداردهای کدنویسی پروژه پیروی کنید.
لایسنس
این پکیج تحت لایسنس MIT منتشر شده است. برای جزئیات بیشتر فایل LICENSE
را مطالعه کنید.
All versions of openai-laravel with dependencies
guzzlehttp/guzzle Version ^7.4
illuminate/contracts Version ^11.0 || ^12.0
illuminate/support Version ^11.0 || ^12.0
psr/simple-cache Version ^1.0 || ^2.0 || ^3.0
ext-json Version *