【免费下载链接】Pika-Skills
Pika-Skills 是 Pika Labs 发布的开源 AI Agent 技能项目,其核心能力是调用 Pika Realtime 会议接口,让 AI 以"视频智能体"的身份加入 Google Meet / Zoom 会议。本文是面向新手的 Pika-Skills API 参考完整指南,将逐一拆解 DevKey 认证机制、meeting-session 会议接口、会话状态轮询与退出码速查表,帮助你零基础上手理解它的完整 API 调用链路。
📦 Pika-Skills 是什么?
Pika-Skills 是为 AI Agent 提供的技能库,当前仓库中包含一个核心技能:pikastream-video-meeting。它可以让 AI 以视频会议代理的身份实时加入会议——拥有自己的头像、自己的声音,甚至可以根据system_prompt设定专属"人格"。
⚠️重要提示:Pika-Skills 所依赖的 Pika Developer API 已停止服务,仓库已归档(详见README.md)。本文从技术参考角度解析其 API 机制,供学习与架构借鉴。
上图是项目自带的默认头像(placeholder-avatar.jpg):当加入会议时未指定自定义头像,脚本就会使用这张 1920×1080 的占位图作为 AI 在会中的形象。
📁 仓库结构速览
| 文件 / 目录 | 说明 |
|---|---|
| pikastream-video-meeting/SKILL.md | 技能定义文件:描述触发条件、首次设置流程与入会/离会规范 |
| pikastream-video-meeting/scripts/pikastreaming_videomeeting.py | 核心脚本:实现 join / leave / generate-avatar / clone-voice 四个命令的完整逻辑 |
| pikastream-video-meeting/requirements.txt | Python 依赖(仅需requests库) |
| LICENSE / NOTICE | Apache 2.0 许可声明 |
🔑 DevKey 认证机制完整解析
DevKey 从哪来?两种获取方式
Pika-Skills 的所有 API 请求都通过Developer Key(DevKey,格式以dk_开头)完成身份认证。脚本按以下优先级获取密钥(参见 get_devkey):
- 环境变量
PIKA_DEV_KEY(推荐):运行脚本前预先配置,是 Agent、CI 等非交互场景的必选方式——缺少 TTY 时交互式输入会导致阻塞; - 本地文件
~/.pika/devkey:未设置环境变量时自动读取该文件兜底。
两者都找不到时,脚本会输出no_devkey状态的 JSON,并提示前往 Pika 官方开发者平台申请密钥。
请求头格式:轻量自定义认证
Pika 采用简洁的自定义 Header 认证方式,每个请求都携带以下字段(参见 get_api_config):
| Header 字段 | 示例值 | 作用 |
|---|---|---|
Authorization | DevKey dk_xxx... | 核心认证凭证,注意DevKey前缀(非 Bearer) |
X-Skill-Name | pikastream-video-meeting | 标识调用来源技能 |
X-Sender-Id | 可选 | 发送方标识,用于代理计费归属 |
X-Message-Channel | 可选 | 消息渠道标识,用于代理计费归属 |
API 基础地址与路由规则
基础地址由环境变量PIKA_API_BASE_URL覆盖,未设置时使用脚本内置的 Pika 代理默认地址(DEFAULT_API_BASE)。各接口按职能分挂在不同路径下:
- Realtime 会议接口:
{base}/proxy/realtime/... - Developer 账户接口:
{base}/developer/... - 模型代理接口:
{base}/proxy/openai/...、{base}/proxy/minimax/...
💬 Pika Realtime 会议接口详解
join:入会核心接口(一步到位)
join是整个技能的灵魂,完整执行链路如下(参见 cmd_join):
- 余额预检:每次入会前强制执行资金管线,确保账户余额 ≥100 credits(见下文充值接口);
- 平台推断:从 URL 自动识别会议平台——包含
meet.google.com判定为google_meet,zoom.us/zoom.com判定为zoom;无法识别时需显式传--platform; - 创建会议会话:
POST /proxy/realtime/meeting-session,以 multipart 形式上传头像图片并附带一组表单参数; - 轮询会话状态:每 2 秒调用
GET /proxy/realtime/session/{session_id},当状态变为ready(或视频、机器人双连接)即宣告入会成功。
meeting-session 接口关键参数一览:
| 参数 | 类型 | 说明 |
|---|---|---|
image(文件字段) | 图片 | 机器人头像;未指定时用默认占位头像,也支持 http 图片地址 |
meet_url | 字符串 | Google Meet / Zoom 会议链接 |
bot_name | 字符串 | 机器人在会议中的显示名称 |
platform | 字符串 | google_meet或zoom |
voice_id | 字符串 | 语音 ID,缺省为English_radiant_girl |
meeting_password | 字符串 | 可选,会议密码 |
system_prompt | 字符串 | 可选,机器人人设与背景知识描述 |
会话轮询返回的关键字段:status(会话状态)、video_worker_connected/video_connected(视频流是否接通)、meeting_bot_connected(机器人是否入会)、error_message(出错时的错误信息)。
leave:离开会议
leave只需一次DELETE /proxy/realtime/session/{session_id}请求(参见 cmd_leave),成功后返回{"session_id": "...", "closed": true}。其中session_id来自 join 命令的 stdout 输出。
generate-avatar:生成机器人头像
通过 OpenAI 图像代理调用POST /proxy/openai/v1/images/generations,使用内置默认提示词生成 1024×1024 的肖像图(参见 cmd_generate_avatar):
- 可通过
--prompt自定义风格(例如"卡通猫"会自动补充"适合视频会议的肖像"后缀); - 默认模型
gpt-image-1-mini,输出格式 PNG; - 响应中图片以 base64 或 URL 形式返回,脚本自动解码并落盘。
clone-voice:克隆专属语音
语音克隆走 MiniMax 语音代理,分两步完成(参见 clone_voice):
POST /proxy/minimax/v1/files/upload:上传 10 秒 ~ 5 分钟的清晰人声录音;POST /proxy/minimax/v1/voice_clone:以speech-2.8-hd模型创建音色,voice_id 形如voice_{名称}_{时间戳}。
💡两点实用提示:克隆音色在7 天未使用后被删除,SKILL.md 要求 Agent 每次入会前检查
cloned_at时间并主动提醒用户;mp3 / m4a / wav 以外的音频会先经 ffmpeg 自动转码为 mp3。
💰 余额与充值接口(自动资金管线)
Pika 采用 credits 积分计费,入会要求余额 ≥ 100。资金管线(参见 ensure_funded)全自动完成:
| 步骤 | 接口 | 说明 |
|---|---|---|
| ① 查余额 | GET /developer/balance | 读取当前积分余额 |
| ② 查商品 | GET /developer/topup/products | 获取可购买积分包(含productId、numCredits) |
| ③ 建订单 | POST /developer/topup | 传入product_id,返回checkout_url支付链接 |
| ④ 轮询支付 | 重复GET /developer/balance | 每 10 秒轮询,最长等待 300 秒 |
余额不足时,脚本自动挑选恰好补齐差额的最小积分包,输出checkout_url后等待付款完成再继续入会流程。
🧾 退出码速查表(排错黄金参考)
脚本用标准化的退出码传递执行结果(参见用法文档),是排错时最值得记住的一张表:
| 退出码 | 含义 | 处理建议 |
|---|---|---|
0 | 成功 | — |
1 | 缺少 DevKey | 设置PIKA_DEV_KEY或创建~/.pika/devkey |
2 | 参数校验失败 | 检查会议 URL、platform、头像文件是否存在 |
3 | HTTP 请求错误 | 查看 stderr 中的状态码与响应摘要 |
4 | 会话错误(状态 error / closed) | 检查会议链接是否有效 |
5 | 超时(默认 90 秒) | 可用--timeout-sec延长等待时间 |
6 | 余额不足 | stdout 的 JSON 中含checkout_url,按链接充值 |
⚠️ API 现状:已停止服务
根据仓库最新 README.md 的官方公告:
pika.me/devDeveloper API已停止服务:存量dk_...DevKey 均失效,且不再签发新密钥;- 仓库内所有技能因依赖该 API 而不可用,仓库已归档,仅保留供历史参考;
- 官方正在构建平台无关的新编程访问方式,届时将公布更新后的 API 文档、商业条款与迁移指南。
📌 想体验 Pika 最新模型的读者,请关注 Pika 官方网站与实验平台发布的官方渠道公告。
📝 总结
本文为一份完整的 Pika-Skills API 参考:
- DevKey 认证:
Authorization: DevKey dk_...请求头,来源支持环境变量PIKA_DEV_KEY与~/.pika/devkey文件两种方式,另附X-Skill-Name、X-Sender-Id等归属头; - Pika Realtime 会议接口:以
POST /proxy/realtime/meeting-session创建会话为核心,配合 2 秒间隔的GET /proxy/realtime/session/{id}轮询,实现 join → 状态同步 → leave 的完整闭环; - 周边能力:余额查询、自动充值、头像生成、语音克隆四大接口各司其职;
- 排错抓手:6 个标准化退出码覆盖了从缺密钥到余额不足的全部常见故障。
虽然原始 Developer API 已经停服,但 Pika-Skills 展示的"密钥认证 → 余额预检 → 会话创建 → 状态轮询"设计范式,仍是理解 AI Agent 实时会议架构的一份优秀范本。
核心资料索引:
- 技能定义与交互流程:pikastream-video-meeting/SKILL.md
- API 完整实现源码:pikastream-video-meeting/scripts/pikastreaming_videomeeting.py
【免费下载链接】Pika-Skills
相关推荐
Open-Falcon Falcon-Plus 会话认证指南:`/api/v1/user/auth_session` 接口与 Apitoken 校验机制详解
Open Falcon Falcon Plus 会话认证指南: /api/v1/user/auth_session 接口与 Apitoken 校验机制详解 导读
运维观测指标监控告警Ultra-Pull-To-Refresh API完全参考:接口参数与回调机制详解
Ultra Pull To Refresh API完全参考:接口参数与回调机制详解 Ultra Pull To Refresh是一款功能强大的Android下拉
移动开发UI组件Deis Controller API v1.3 参考:认证、应用、容器与发布管理的完整 REST 接口详解
Deis Controller API v1.3 参考:认证、应用、容器与发布管理的完整 REST 接口详解 本文基于 Deis 仓库中的官方 API 参考文档
后端云原生
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考