定制 teamones/embedding 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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=1024encoding_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

依赖

teamones/embedding 适用场景与选型建议

teamones/embedding 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 02 月 09 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 teamones/embedding 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 teamones/embedding 我们能提供哪些服务?
定制开发 / 二次开发

基于 teamones/embedding 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 24
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2026-02-09