kira_signup
用户注册成功时触发(由 Supabase Edge Function 发送)。
| 属性 | 类型 | 说明 |
|---|
email | string | 用户邮箱 |
name | string | 用户名称 |
触发流程:
- 用户通过 Supabase Auth 注册
- Supabase 触发
auth.users INSERT webhook
signup-function Edge Function 发送事件到 PostHog
chat
用户发起 AI 对话时触发。
| 属性 | 类型 | 说明 |
|---|
thread_id | string | 对话线程 ID |
model | string | 模型: lite | nova | crazy | ultra |
chat_completion
AI 对话完成时触发(业务埋点,成本由 ai_cost 事件追踪)。
触发时机: Agent onFinish 回调中
| 属性 | 类型 | 说明 |
|---|
thread_id | string | 对话线程 ID |
model | string | 模型名称 |
input_tokens | number | 输入 token |
output_tokens | number | 输出 token |
total_tokens | number | 总 token |
duration_ms | number | 耗时 (ms) |
tool_calls | number | 工具调用次数 |
ai_cost
统一的 AI 成本追踪事件,用于计算每个用户的 AI 使用成本。
触发时机:
agent: Agent onFinish 回调中
tool_llm: 工具内部 LLM 调用完成后 (如 readImage, imageEdit_styleCheck)
tool_image: 图片生成/编辑工具执行完成后
tool_compute: 按计算时间计费的工具执行完成后 (如 upscale)
tool_video: 视频生成完成后 (kira-be 和 kira-video-worker 均会发送)
tool_music: 音乐生成完成后 (kira-music-worker 发送)
| 属性 | 类型 | 说明 |
|---|
thread_id | string | 对话线程 ID |
type | string | 成本类型: agent | tool_llm | tool_image | tool_compute | tool_video | tool_music |
model | string | 模型/服务名称 |
tool_name | string | 工具名称 (可选) |
duration_ms | number | 耗时 (ms) |
total_cost_usd | number | 总成本 (美元) |
LLM 类型额外属性 (agent / tool_llm):
| 属性 | 类型 | 说明 |
|---|
input_tokens | number | 输入 token |
output_tokens | number | 输出 token |
total_tokens | number | 总 token |
input_cost_usd | number | 输入成本 |
output_cost_usd | number | 输出成本 |
tool_calls | number | 工具调用次数 (仅 agent) |
图片类型额外属性 (tool_image):
| 属性 | 类型 | 说明 |
|---|
image_count | number | 生成图片数量 |
cost_per_image_usd | number | 单张图片成本 |
计算类型额外属性 (tool_compute):
| 属性 | 类型 | 说明 |
|---|
compute_time_seconds | number | 计算时间 (秒) |
cost_per_second_usd | number | 每秒成本 |
视频类型额外属性 (tool_video):
| 属性 | 类型 | 说明 |
|---|
video_duration_seconds | number | 视频时长 (秒) |
cost_per_second_usd | number | 每秒成本 |
音乐类型额外属性 (tool_music):
| 属性 | 类型 | 说明 |
|---|
music_duration_ms | number | 音乐时长 (ms) |
music_cost_usd | number | 音乐生成成本 |
cover_cost_usd | number | 封面生成成本 |
lyrics_cost_usd | number | 歌词对齐成本 |
价格表 (更新于 2026-03):
| 模型/服务 | 类型 | 价格 | 来源 |
|---|
gpt-5.2-2025-12-11 | LLM | 1.75/14.0 per 1M tokens | OpenAI |
grok-4-1-fast-reasoning | LLM | 0.2/0.5 per 1M tokens | xAI |
grok-4-1-fast-non-reasoning | LLM | 0.2/0.5 per 1M tokens | xAI |
grok-3-mini-fast | LLM | 0.3/0.5 per 1M tokens | xAI |
byteplus-seedream / seedream / seedream-edit | 图片 | $0.036/张 | BytePlus |
gpt-image-1 | 图片 | $0.063/张 | OpenAI |
fal-kontext | 图片 | $0.04/张 | FAL |
fal-flux-2-pro-edit | 图片 | $0.03/张 | FAL |
fal-bria-eraser | 图片 | $0.04/张 | FAL |
fal-bria-rmbg | 图片 | $0.018/张 | FAL |
nano-banana-pro | 图片 | $0.15/张 | |
illustrious | 图片 | $0.007/张 | Illustrious |
google-gemini-flash-image / google-gemini-flash-image-gen | 图片 | $0.039/张 | Google |
fal-esrgan | 计算 | $0.00111/秒 | FAL |
seedance | 视频 | $0.05/秒 | BytePlus |
grok | 视频 | $0.05/秒 | xAI |
veo | 视频 | $0.15/秒 | Google |
suno_unofficial / suno_instrumental / suno_add_vocals | 音乐 | $0.06/首 (12 credits) | SunoAPI |
suno-cover | 音乐封面 | $0/张 (免费) | SunoAPI |
suno-timestamped-lyrics | 歌词对齐 | $0.0025/次 (0.5 credits) | SunoAPI |
kira-be 中包含 tool_video 成本追踪代码(VideoCostParams 定义于 src/analytics/index.ts),但视频成本事件主要由 kira-video-worker 发送,因为 worker 拥有实际的 provider 响应数据(视频时长、最终成本)。
新增模型时务必同步更新 kira-be/src/analytics/index.ts 中的价格表,否则成本将记为 $0 并输出 console.warn。
工具调用时触发。所有 agent 工具均通过 withTracking() 包装,自动调用 trackToolUsage()。kira-video-worker 在视频生成完成后也会发送。
kira-be 中的 trackToolUsage() 函数被所有 agent 工具调用(通过 withTracking() 包装)。图片工具的成本追踪已迁移至 ai_cost 事件,但 tool_usage 仍会记录。
| 属性 | 类型 | 说明 |
|---|
thread_id | string | 对话线程 ID |
tool_name | string | 工具名称 |
success | boolean | 是否成功 |
duration_ms | number | 耗时 (ms) |
credits_consumed | number | 消耗 credits |
extra | object | 额外信息 |
error_message | string | 错误信息 |
Credits 消耗:
| 工具 | Credits |
|---|
generateImageWithAI | 5 |
removeBackground | 5 |
upscale | 5 |
eraser | 5 |
expand | 5 |
inpaintWithPrompt | 5 |
replaceBackgroundWithPrompt | 5 |
generateVideo (5s) | 60 |
generateVideo (10s) | 120 |
generateVideo (5s, veo) | 180 |
generateVideo (10s, veo) | 360 |
imageEdit (standard: Seedream/Flux) | 5 |
imageEdit (Max: Nano Banana Pro) | 20 |
redux | 5 |
inpaintWithImage | 5 |
replaceBackgroundWithImage | 5 |
generateMusic | 25 |
generateInstrumental | 25 |
addVocals | 25 |
googleSearch | 5 |
getFilterChoiceFromUser | 5 |
getAutoCropResultFromUser | 5 |
readImage | 0 |
initializeWithImage | 0 |
getMaskImageFromUser | 0 |
getExpandMaskImageFromUser | 0 |
generateVideo 额外属性 (kira-be):
| 属性 | 类型 | 说明 |
|---|
action | string | video_submit_success | video_submit_blocked |
task_id | string | 视频任务 ID |
video_duration | string | 视频时长 (秒) |
reason | string | 被拦截原因 (仅 blocked) |
credits_required | number | 所需 credits (仅 blocked) |
generateVideo 额外属性 (kira-video-worker):
Worker 在视频生成的不同阶段发送 tool_usage 事件:
| 属性 | 类型 | 说明 |
|---|
task_id | string | 视频任务 ID |
provider | string | 视频供应商: seedance | grok | veo |
success | boolean | 是否成功 |
duration_ms | number | 处理耗时 (ms) |
credits_consumed | number | 消耗 credits (成功时) |
error_message | string | 错误信息 (失败时) |
thread_created
创建对话线程时触发。
| 属性 | 类型 | 说明 |
|---|
thread_id | string | 线程 ID |
feed_published
发布内容到 Feed 时触发。
| 属性 | 类型 | 说明 |
|---|
feed_id | string | Feed ID |
media_type | string | image | video | audio |
image_id / video_id / audio_id | string | 原始内容 ID |
feed_image_id / feed_video_id / feed_audio_id | string | Feed 存储 ID |
flag | string[] | 标记: ban | duplicate | nsfw |
feed_deleted
删除 Feed 时触发。
| 属性 | 类型 | 说明 |
|---|
feed_id | string | Feed ID |
media_type | string | image | video | audio |
image_id | string? | 原图 ID (图片类型) |
feed_image_id | string? | Feed 图片 ID (图片类型) |
feed_video_id | string? | Feed 视频 ID (视频类型) |
feed_audio_id | string? | Feed 音频 ID (音频类型) |
subscription
订阅成功时触发。
| 属性 | 类型 | 说明 |
|---|
plan | string | 订阅计划 |
first | boolean | 是否首次 |
interval | string | 周期 |
amount | number | 金额 |
currency | string | 货币 |
booster_purchase
购买加油包时触发。
| 属性 | 类型 | 说明 |
|---|
amount | number | 金额 |
currency | string | 货币 |
credits | number | 获得 credits |
booster_tier | string | 档位 |
subscription_canceled
取消订阅时触发。
| 属性 | 类型 | 说明 |
|---|
previous_plan | string | 取消前的订阅计划 |
reason | string | 取消原因 |
reason 枚举值:
| 值 | 说明 |
|---|
canceled | 用户主动取消 |
incomplete | 订阅未完成 |
incomplete_expired | 订阅未完成已过期 |
past_due | 逾期未付款 |
paused | 订阅已暂停 |
unpaid | 未付款 |
deleted | 订阅已删除 |