SuperAPI AI 工具集

laravel-ai-sdk

智能体与模型

查看项目

更新于 10-15 21:48

技能介绍

用途:在 Laravel 13 中借助 laravel/ai 包集成 AI 能力,包括智能体、工具调用、嵌入、结构化输出与流式响应。

主要能力:统一 API 通过 Lab 枚举覆盖 17 家提供方;智能体以类实现 Agent 契约并使用 Promptable trait;工具调用支持第一方 FileSearch 与按智能体自定义工具;嵌入支持 Embeddings::for([...])->generate() 与 Str::of(...)->toEmbeddings();流式支持原生 SSE 及 Vercel AI SDK 协议兼容;结构化输出使用 agent(schema: fn ($s) => ...) 配合 JsonSchema。

使用方式:密钥在 .env 中按提供方各设一个变量(如 OPENAI_API_KEY、ANTHROPIC_API_KEY),由 config/ai.php 读取。智能体须实现 Laravel\Ai\Contracts\Agent 并使用 Promptable trait,通过重写 tools(): iterable 显式声明工具。流式应直接从路由返回 $agent->stream(...),不要缓冲到内存。示例:$response = (new SalesCoach)->prompt('Summarize this call');$embedding = Str::of('Napa Valley wine')->toEmbeddings();Route::get('/coach', fn () => (new SalesCoach)->stream('Analyze this'));

适用场景:需要在 Laravel 后端接入多提供方模型、构建类智能体、调用工具、生成向量用于语义搜索、向前端推送流式输出或要求结构化 JSON 输出的项目。

限制与注意:不要硬编码提供方字符串,应使用 Lab::Anthropic、Lab::OpenAI 等枚举;不要在 config/ai.php 直接存密钥,应使用 env();工具必须显式注册,未从 tools() 返回就不会被调用;嵌入生成成本较高,建议存入数据库缓存;应设置显式 #[Timeout] 避免过长生成;不要在 Embeddings::for() 上手动逐条循环,应传入完整数组以利用批量处理。具体安装步骤、各提供方支持细节与定价暂未提供。