teamones/embedding
Composer 安装命令:
composer require teamones/embedding
包简介
Unified multi-modal embedding SDK for Doubao/GLM/OpenAI
README 文档
README
统一多模态向量化 SDK,支持 Doubao / OpenAI / GLM,提供 文本、图片 URL、视频 URL 的向量生成,支持 多模态向量归一化与拼接,PHP 7.4 完全兼容。
特性
- 多 Provider 支持:
Doubao/OpenAI/GLM - 多模态输入(Doubao):文本、图片 URL、视频 URL
- OpenAI / GLM 自动提取文本部分
- 默认向量参数:
dimensions=1024,encoding_format=float,用户可覆盖 - HTTP 请求异常捕获 & 超时处理
- 多模态向量归一化 + 拼接,直接输出统一向量
- 简单易用,统一接口
安装
composer require teamones/embedding
使用示例
1. Doubao 多模态向量
<?php require 'vendor/autoload.php'; use Teamones\Embedding\Client; $client = new Client('doubao', [ 'endpoint' => 'https://ark.cn-beijing.volces.com/api/v3/embeddings', 'api_key' => '你的API_KEY', 'timeout' => 10 ]); $input = [ ["type"=>"text","text"=>"天很蓝"], ["type"=>"image_url","image_url"=>["url"=>"https://example.com/image.png"]], ["type"=>"video_url","video_url"=>["url"=>"https://example.com/video.mp4"]] ]; try { // 返回 EmbeddingResponse 对象 $response = $client->embed( $input, "doubao-embedding-vision-251215", ["dimensions"=>512,"encoding_format"=>"float"] ); print_r($response->vectors); // 返回统一多模态向量 $unifiedVector = $client->embed( $input, "doubao-embedding-vision-251215", ["dimensions"=>512,"encoding_format"=>"float"], true // unified = true ); echo "统一向量长度: " . count($unifiedVector) . PHP_EOL; print_r(array_slice($unifiedVector, 0, 10)); // 仅示例前10维 } catch (\RuntimeException $e) { echo "请求异常: " . $e->getMessage() . PHP_EOL; }
2. OpenAI / GLM 向量(仅文本)
$clientOpenAI = new Client('openai', [ 'endpoint' => 'https://api.openai.com/v1/embeddings', 'api_key' => '你的OPENAI_KEY' ]); $inputMulti = [ "天很蓝", ["type"=>"text","text"=>"太阳明亮"], ["type"=>"image_url","image_url"=>["url"=>"xxx"]] // 会自动忽略 ]; $unifiedVector = $clientOpenAI->embed( $inputMulti, "text-embedding-3-small", ["dimensions"=>256], true ); echo "统一文本向量长度: " . count($unifiedVector) . PHP_EOL;
参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
dimensions |
向量维度 | 1024 |
encoding_format |
向量编码格式 | float |
timeout |
HTTP 请求超时(秒) | 10 |
unified |
是否返回归一化拼接后的向量 | false |
异常处理
- HTTP 请求异常、非 200 返回码 → 抛出
\RuntimeException - JSON 解析失败 → 抛出
\RuntimeException - 超时或网络异常 → 抛出
\RuntimeException
示例:
try { $vector = $client->embed($input, $model, [], true); } catch (\RuntimeException $e) { echo "请求异常: " . $e->getMessage(); }
安全与注意事项
- Doubao 多模态只支持 URL 方式,不支持 base64 输入
- OpenAI / GLM 仅支持文本输入,多模态输入会自动忽略非文本
- 用户可以通过
$opt覆盖默认参数dimensions/encoding_format
依赖
- PHP >= 7.4
- yurunsoft/yurun-http
teamones/embedding 适用场景与选型建议
teamones/embedding 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 02 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 teamones/embedding 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 teamones/embedding 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 24
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2026-02-09