Prism Workers AI — провайдер Cloudflare Workers AI для Prism PHP та Laravel AI SDK. Він маршрутизує запити через Cloudflare's AI Gateway /compat endpoint.

- Генерує тексти природною мовою, структуровані відповіді та відповіді в режимі стріму.
- Створює векторні представлення за допомогою Cloudflare embedding models.
- Автоматизує виконання tool-ів із підтримкою складних multi-step workflows.
- Витягує та використовує reasoning content із підтримуваних reasoning models.
- Підтримує контекст розмови через session affinity для prompt prefix caching.
- Сумісний із Prism PHP та agent() helper у Laravel AI SDK.
Генерація тексту та стрімінг
Генеруйте текст за допомогою будь-якої Workers AI моделі через fluent API Prism:
use Prism\Prism\Facades\Prism;
$response = Prism::text()
->using('workers-ai', 'workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast')
->withPrompt('Hello!')
->asText();
Стрім працює аналогічно:
$stream = Prism::text()
->using('workers-ai', 'workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast')
->withPrompt('Tell me a story')
->asStream();
Embeddings
На відміну від вбудованого xAI driver Prism, цей пакет підтримує embeddings:
$response = Prism::embeddings()
->using('workers-ai', 'workers-ai/@cf/baai/bge-large-en-v1.5')
->fromInput('Hello world')
->generate();
Tool Calling
Пакет підтримує tool calling з multi-step workflows. Workers AI вимагає, щоб content завжди був присутній в assistant messages, навіть якщо він порожній під час tool call responses — цей пакет автоматично це враховує:
$response = Prism::text()
->using('workers-ai', 'workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast')
->withTools([$weatherTool])
->withMaxSteps(3)
->withPrompt('What is the weather?')
->asText();
Reasoning Models with Thinking Content
Пакет витягує reasoning content із reasoning models, таких як Kimi K2.5. Ланцюжок reasoning доступний поряд із фінальною відповіддю:
$response = Prism::text()
->using('workers-ai', 'workers-ai/@cf/moonshotai/kimi-k2.5')
->withMaxTokens(2000)
->withPrompt('What is 15 * 37?')
->asText();
$response->text; // "555"
$response->steps[0]->additionalContent['thinking'];
// "The user is asking for the product of 15 and 37..."
При стрімінгу ви отримуєте thinking events перед текстовим виводом:
$stream = Prism::text()
->using('workers-ai', 'workers-ai/@cf/moonshotai/kimi-k2.5')
->withMaxTokens(2000)
->withPrompt('Explain briefly why the sky is blue.')
->asStream();
foreach ($stream as $event) {
// ThinkingStartEvent, ThinkingEvent (deltas), ThinkingCompleteEvent
// then TextStartEvent, TextDeltaEvent, TextCompleteEvent
}
Задайте withMaxTokens(2000) або більше при використанні reasoning models, бо reasoning tokens враховуються у ліміті.
Інтеграція з Laravel AI SDK
Якщо ви використовуєте laravel/ai, пакет також реєструє драйвер workers-ai:
use function Laravel\Ai\agent;
$response = agent(instructions: 'You are a helpful assistant.')
->prompt('Hello!', provider: 'workers-ai');
Детальніше про пакет — на GitHub: meirdick/prism-workers-ai.
Примітка: пакет вимагає PHP 8.2+ та Prism PHP ^0.99, опційно підтримується Laravel AI SDK ^0.3.