Documentation Index
Fetch the complete documentation index at: https://docs.geekai.co/llms.txt
Use this file to discover all available pages before exploring further.
下面提供一写创建skillS的模板,然后可以根据这个模板来创建自己所需要的skillS,可以每一个模型对应创建一个skills,方便后续的调用,模板里面的sk-xxxx记得换成自己的api key
HappyHorse-1.0
happyhorse-t2v
创建一个快乐马文生视频技能happyhorse-t2v,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/videos/generations'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer $GEEKAI_API_KEY'
--data '{
"model":"happyhorse-1.0-t2v",
"prompt":"小猫小狗在草丛中打闹",
"duration": 10
}'
当task_status=succeed时,通过video_result对象的url字段提取视频结果URL作为最终生成视频URL输出,否则提示视频生成失败并提取错误信息输出,设置系统环境变量GEEKAI_API_KEY值为sk-xxxxxxxxxx,并设置超时时间为10分钟
happyhorse-r2v
创建一个快乐马参考图生视频技能happyhorse-r2v,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/videos/generations'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer $GEEKAI_API_KEY'
--data '{
"model":"happyhorse-1.0-r2v",
"prompt":"根据这个图片文案去做个视频",
"images": ["image1_base64_data","image2_base64_data", ...],
"duration": 10
}'
用户传入参考图以base64格式数据传到images参数,对应base64格式是data:;base64,,多张图片以数组形式传入。
当task_status=succeed时,通过video_result对象的url字段提取视频结果URL作为最终生成视频URL输出,否则提示视频生成失败并提取错误信息输出,设置系统环境变量GEEKAI_API_KEY值为sk-xxxxxxxxxx,并设置超时时间为10分钟
happyhorse-1.0-i2v
创建一个快乐马首帧生视频技能happyhorse-1.0-i2v,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/videos/generations'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer $GEEKAI_API_KEY'
--data '{
"model":"happyhorse-1.0-i2v",
"prompt":"根据这个图片文案去做个视频",
"image": "image1_base64_data",
"duration": 10
}'
用户传入参考图以base64格式数据传到image参数,对应base64格式是data:;base64,。
当task_status=succeed时,通过video_result对象的url字段提取视频结果URL作为最终生成视频URL输出,否则提示视频生成失败并提取错误信息输出,设置系统环境变量GEEKAI_API_KEY值为sk-xxxxxxxxxx,并设置超时时间为10分钟
happyhorse-1.0-video-edit
创建一个快乐马视频编辑技能happyhorse-1.0-video-edit,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/videos/generations'
--header 'Content-Type: application/json'
--header 'Authorization: Bearer $GEEKAI_API_KEY'
--data '{
"model":"happyhorse-1.0-video-edit",
"prompt": "将视频中女孩的衣服替换为图片中的衣服",
"video": "$video_url",
"images": ["image1_base64_data","image2_base64_data", ...],
"duration": 10
}'
用户传入参考图以base64格式数据传到images参数,对应base64格式是data:;base64,,多张图片以数组形式传入。
当传入的是视频请把本地视频上传成公网可访问 URL传递到video参数。
当task_status=succeed时,通过video_result对象的url字段提取视频结果URL作为最终生成视频URL输出,否则提示视频生成失败并提取错误信息输出,设置系统环境变量GEEKAI_API_KEY值为sk-xxxxxxxxxx,并设置超时时间为10分钟
kling-video-v3-omni
创建一个可灵视频生成技能kling-video-v3-omni,支持三种生成模式,对应生成示例如下:
模式一:纯文本生成视频(Text-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3-omni",
"prompt":"广角跟踪镜头:一辆影青色的双门轿跑在沙漠公路上行驶,热浪扭曲清晰可见,头顶烈日高悬",
"quality": "std",
"aspect_ratio": "16:9",
"with_audio": false
}'
模式二:图片生成视频(Image-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3-omni",
"prompt":"她转身一笑,然后缓缓走出画面",
"image":"$image_url",
"quality": "std",
"aspect_ratio": "16:9",
"with_audio": false
}'
模式三:多镜头视频生成(Multi-Shot)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3-omni",
"prompt":"她转身一笑,然后缓缓走出画面",
"quality": "std",
"aspect_ratio": "16:9",
"with_audio": false
"duration": 8,
"extra_body": {
"multi_shot": true,
"shot_type": "customize",
"multi_prompt": [
{
"index": 1,
"prompt": "<<<image_1>>>第一镜头:她转身一笑",
"duration": "3"
},
{
"index": 2,
"prompt": "第二镜头:她缓缓走出画面",
"duration": "5"
}
],
"image_list": [
{
"type": "first_frame",
"image_url": "$image_url"
}
]
}
}'
参数处理规则:
- 当用户只提供文本 prompt,且未提供图片时,使用模式一(纯文本生成视频)。
- 当用户提供图片,且没有镜头描述时,使用模式二(图片生成视频)。
- 当用户提供图片,且包含多个镜头描述时,使用模式三(多镜头生成)。
多镜头模式处理规则:
- 传入的图片需要添加到 extra_body.image_list 数组中。
- image_list 中每个元素包含:
- type:首帧即一张图片设置为first_frame,尾帧即第二张图片设置为end_frame
- image_url:如果是公网 URL,则直接传递到 image_url 参数里面,如果不是 URL,则先上传为公网可访问 URL 再传递到 image_url 参数里面。
- 当传入多张图片时,需要按顺序依次添加到 image_list 数组中。
- 将每个镜头分别映射为 extra_body.multi_prompt 数组中的一个元素。
- multi_prompt 中每个元素对应一个独立镜头,并包含以下字段:
- index:镜头顺序,从 1 开始递增
- prompt:该镜头的具体描述
- duration:该镜头时长,单位为秒
- 多个镜头按用户描述顺序依次加入 multi_prompt 数组。
- 如果某个镜头引用了参考图,则可在该镜头 prompt 中使用
<<<image_1>>>、<<<image_2>>> 等占位符,并与 image_list 中的图片顺序对应。
- 最终总时长应与各镜头 duration 之和保持一致;如果用户未单独指定总时长,则自动根据各镜头 duration 求和填写 duration 字段。
图片参数处理规则:
- 用户传入图片时,如果是公网 URL,则直接传递到 image 参数。如果不是 URL,则可以使用litterbox.catbox.moe 这个匿名文件上传服务将图片上传为公网可访问 URL 再传递到image参数,
- 多镜头模式下,如需引用图片,也应先确保图片已转换为公网可访问 URL,再写入 extra_body.image_list。
结果处理规则:
- 当 task_status = succeed 时,通过 video_result 对象的 url 字段提取视频结果 URL,并作为最终输出结果。否则则提示视频生成失败并提取错误信息输出。
其他要求:
- 设置系统环境变量 GEEKAI_API_KEY 值为sk-xxxxxxxxxx
- 超时时间设置为 10 分钟。
kling-video-v3
创建一个可灵视频生成技能kling-video-v3,支持三种生成模式,对应生成示例如下:
模式一:纯文本生成视频(Text-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3",
"prompt":"广角跟踪镜头:一辆影青色的双门轿跑在沙漠公路上行驶,热浪扭曲清晰可见,头顶烈日高悬",
"quality": "std",
"aspect_ratio": "16:9",
"with_audio": false
}'
模式二:图片生成视频(Image-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3",
"prompt":"她转身一笑,然后缓缓走出画面",
"image":"$image_url",
"quality": "std",
"aspect_ratio": "16:9",
"with_audio": false
}'
模式三:多镜头视频生成(Multi-Shot)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"kling-video-v3",
"prompt":"她转身一笑,然后缓缓走出画面",
"image":"$image_url",
"duration": 8,
"extra_body": {
"multi_shot": true,
"shot_type": "customize",
"multi_prompt": [
{
"index": 1,
"prompt": "第一镜头:她转身一笑",
"duration": "3"
},
{
"index": 2,
"prompt": "第二镜头:她缓缓走出画面",
"duration": "5"
}
]
}
}'
参数处理规则:
- 当用户只提供文本prompt时,使用模式一(纯文本生成)
- 当用户提供图片时:
- 如果只有一个prompt,使用模式二(图片生成视频)
- 如果有多个镜头描述,使用模式三(多镜头生成),多个镜头,处理规则如下:
- 将每个镜头分别映射为 extra_body.multi_prompt 数组中的一个元素
- multi_prompt 中每个元素对应一个独立镜头
- index 按镜头顺序从 1 开始递增
- prompt 填写该镜头的具体描述
- duration 填写该镜头时长,单位为秒
- 多个镜头按用户描述顺序依次加入 multi_prompt 数组
- 最终总时长应与各镜头 duration 之和保持一致,或自动按各镜头时长求和填写 duration 字段
- 图片参数:
- 用户传入图片时,如果不是URL链接,则使用litterbox.catbox.moe 这个匿名文件上传服务将图片上传为公网可访问 URL 再传递到image参数,如果是URL链接,则直接传递到image参数
- 当task_status=succeed时,通过video_result对象的url字段提取视频结果URL输出
- 否则提示视频生成失败并提取错误信息输出
- 设置系统环境变量GEEKAI_API_KEY值为sk-xxxxxxxxxx
- 设置超时时间为10分钟
注意:kling-video-v3-omni和kling-video-v3的中,图片需要一个完整的公网可访问的url,litterbox.catbox.moe 这个匿名文件上传服务如果不可以的话,可以使用极客智坊的上传文件接口来获取url,这样在对话中可直接使用url
Doubao-Seedance-2.0
创建一个豆包视频生成技能doubao-seedance-2.0,支持三种生成模式,对应生成示例如下:
模式一:纯文本生成视频(Text-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"doubao-seedance-2.0",
"prompt":"小猫对着镜头打哈欠",
"aspect_ratio": "16:9",
"async": true
}'
模式二:图片生成视频(Image-to-Video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model":"doubao-seedance-2.0",
"prompt":"无人机以极快速度穿越复杂障碍或自然奇观,带来沉浸式飞行体验",
"image":"$image_url",
"image_tail": "$image_tail",
"aspect_ratio": "16:9",
"extra_body": {
"real_person_mode": true
},
"async": true
}'
模式三:参考视频生成(reference-video)
curl --location --request POST 'https://geekai.co/api/v1/videos/generations' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--data '{
"model": "doubao-seedance-2.0",
"prompt": "@图1戴着眼镜穿着蓝色T恤的男生和@图2的柯基小狗,坐在@图3的草坪上,3D卡通风格",
"images": ["$image1_url","$image2_url", ...],
"video": ["$video_url","$video2_url", ...],
"audio": ["$audio_url","$audio2_url", ...],
"with_audio":true,
"extra_body": {
"real_person_mode": true
},
"async": true
}'
查询接口:
curl --location --request GET 'https://geekai.co/api/v1/videos/{task_id}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $GEEKAI_API_KEY'
参数处理规则:
- 当用户只提供文本prompt时,使用模式一(纯文本生成)
- 当用户提供图片时:
- 当用户明确使用首帧、首尾帧图生视频,或提供首帧图与尾帧图,并应通过 image 和可选的 image_tail 参数传入时,使用模式二(图片生成视频)。
- 当用户明确使用参考素材生成,或参考图片需要通过 images 数组传入,或同时提供参考视频、参考音频中的一种或多种素材时,使用模式三(参考视频生成)。
图片参数处理规则:
- 模式二中:
- image 参数用于传入首帧参考图
- image_tail 参数用于传入尾帧参考图(可选)
- 模式三中:
- images 参数为数组,支持传入一张或多张参考图片
- 即使只有一张参考图片,只要该图片需要通过 images 数组传入,也应使用模式三
- 如果用户传入的是公网 URL,则直接传递到对应参数。
- 如果用户传入的不是 URL,而是本地文件,则需要litterbox.catbox.moe 这个匿名文件上传服务上传为公网可访问 URL,再传递到对应参数。
- 模式三中,video 、audio 参数用于传入参考视频、参考音频、是需要公网可访问的 URL
- 模式三中,images 数组中的图片顺序需要与 prompt 中 @图1、@图2、@图3 的引用顺序保持一致。
异步任务处理规则
- 调用创建接口后:
- 如果返回 task_status = pending,说明任务已提交成功,需要从返回结果中提取 task_id
- 提取 task_id 后,继续调用查询接口轮询任务状态
查询结果处理规则:
- 当 task_status = pending 或 running 时,表示任务仍在处理中,需要继续轮询查询接口
- 当 task_status = succeed 时,通过 video_result 对象中的 url 字段提取最终生成视频 URL 并输出
- 当 task_status = failed 时,提示视频生成失败,并提取错误信息输出
- 轮询超时时间设置为 10 分钟
- 如果超过 10 分钟任务仍未完成,则返回“任务仍在处理中”,并输出 task_id 供后续继续查询
其他要求
- 设置系统环境变量 GEEKAI_API_KEY 的值为 sk-xxxxxxxxxx
- 创建和查询使用的GEEKAI_API_KEY 是一样的,可以共用
- 超时时间设置为 10 分钟
注意:dobao-seedance-2.0-fast和doubao-seedance-2.0的接口和参数基本一致,只需替换对应的名称model即可,
另外,doubao-seedance-2.0的图片images,iamge_tail ,image,video,audio参数,需要一个完整的公网可访问的url,如果上述不可以的话,可以使用极客智坊的上传文件接口来获取url,这样在对话中可直接使用
Nano Banana 2
生成一个nano-banana-2生图技能,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/chat/completions' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model": "gemini-3.1-flash-image-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "$text"
},
{
"type": "image_url",
"image_url": {
"url": "$image_url"
}
}
],
"image": {
"aspect_ratio": "5:4"
}
}
]
}'
文生图只需要传递text信息即可,图生图需要传递image_url,对应url字段值支持base64和http链接两种格式,多个文本/图片以多条text/image_url传递到content数组。
如果传入的图片要使用base64编码,则需要将图片数据进行base64编码,并使用data:image/png;base64,$的格式进行传递。
图片生成成功,则返回响应并提取data数组中对象的url字段值,否则返回错误信息。生图耗时长,将超时时间设置为5分钟。设置系统环境的GEEKAI_API_KEY的值为sk-xxxxxxxxxx
GPT-Image-2
生成一个gpt-image-2生图技能,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/images/generations' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model":"gpt-image-2",
"prompt": "$text",
"image": "$image_url",
"images": ["$image1_url","$image2_url", ...],
"response_format": "url",
"quality": "low",
}'
文生图不需要传递image,images参数,
图生图的话:
- 单张图片从image参数传递,对应image_url字段值支持base64和http链接两种格式。
- 多张图片从images参数传递,对应image_url字段值支持base64和http链接两种格式,多个图片以数组形式传递到image数组里面。
如果传入的图片要使用base64编码,则需要将图片数据进行base64编码,并使用data:;base64,的格式进行传递。
图片生成成功,则返回响应并提取data数组中对象的url字段值,否则返回错误信息。生图耗时长,将超时时间设置为5分钟。设置系统环境的GEEKAI_API_KEY的值为sk-xxxxxxxxxx。
gpt-image-1.5和gpt-image-2模型使用的方法一样,替换对应的模型名称即可
Doubao-Seedream-5.0-Lite
生成一个doubao-seedance-5.0-lite生图技能,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v1/images/generations' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model":"doubao-seedream-5.0-lite",
"prompt": "$text",
"image": ["$image1_url","$image2_url", ...],
"size": "2K",
}'
文生图不需要传递image参数,
图生图的话:支持传入单张图片或者多张图片,多张图片以数组的形式传入image,对应image_url字段值支持http链接和base64编码的格式,
如果传入的图片要使用base64编码,则需要将图片数据进行base64编码,并使用data:;base64,的格式进行传递
图片生成成功,则返回响应并提取data数组中对象的url字段值,否则返回错误信息。生图耗时长,将超时时间设置为5分钟。设置系统环境的GEEKAI_API_KEY的值为sk-xxxxxxxxxx。
Doubao-Transcribe
生成一个doubao-transcribe语音转录技能,对应生成示例如下:
curl --location --request POST 'https://geekai.co/api/v2/audio/transcriptions' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"model":"doubao-transcribe",
"audio": {
"url": "$audio_url",
"format": "$audio_format"
}
}'
参数处理规则:
audio.url 用于传入音频内容,支持以下两种形式:
- 以 http:// 或 https:// 开头的公网可访问音频 URL
- base64 编码的音频数据
audio.format 用于指定音频格式,可选值包括 mp3、wav 等,应根据实际文件格式填写。
如果用户传入的是公网音频 URL,则直接传递到 audio.url。
如果用户传入的是本地音频文件或其他非 URL 音频内容,则先转换为 base64 编码,格式为,直接使用base64不需要data:;base64,前缀,再传递到 audio.url。
如果用户未明确提供音频格式,则优先根据文件扩展名判断;若无法判断,则根据 MIME 类型或内容推断。
结果处理规则:
- 调用成功后,从响应中提取以下字段:
- text:转录后的文本内容
- id:转录结果 ID
- duration:音频时长,单位为秒
默认优先输出 text
如需补充信息,可同时输出 id 和 duration
如果接口调用失败,则提示“语音转录失败”,并输出错误信息
其他要求:
设置系统环境的GEEKAI_API_KEY的值为sk-xxxxxxxxxx。
超时时间设置为 5 分钟。
GPT-4o-Transcribe
生成一个gpt-4o-transcribe语音转录技能,对应生成示例如下:
curl --location 'https://geekai.co/api/v1/audio/transcriptions' \
--header 'Authorization: Bearer $GEEKAI_API_KEY' \
--form '$file=@/path/to/file.mp3' \
--form 'model="gpt-4o-transcribe"' \
--form 'response_format="json"'
参数处理规则:
该接口使用 multipart/form-data 方式提交音频文件。
- file 参数用于传入待转录的音频文件。
- model 固定设置为 gpt-4o-transcribe。
- response_format 固定设置为 json。
如果用户传入的是本地音频文件,则直接作为 file 参数上传。
如果用户传入的是公网可访问的音频 URL,则先下载音频文件,再以 file 参数的形式上传。
如果用户传入的是 base64 编码的音频数据,则先解码为音频文件,再以 file 参数的形式上传。
音频格式可为 mp3、wav 等常见格式,实际上传时根据原始文件格式保留对应扩展名。
结果处理规则:
调用成功后,从响应中提取以下字段:
- id:转录结果 ID
- text:转录结果内容
- duration:音频时长,单位为秒
需要注意:返回结果中的 text 字段可能是一个 JSON 字符串,而不是直接的纯文本。
如果 text 字段是 JSON 字符串,则需要先将其解析为 JSON 对象,再提取其中的 text 字段作为最终转录文本。
默认优先输出解析后的最终转录文本。
如有需要,可同时附带输出 id 和 duration 信息。
如果接口调用失败,则提示“语音转录失败”,并输出错误信息。
其他要求:
设置系统环境的GEEKAI_API_KEY的值为sk-xxxxxxxxxx。
将超时时间设置为 5 分钟。