Back to Home

Image Describer API 文档 - 图像描述生成 API

概述

Image Describer API 是一款强大的图像理解工具,它能够基于您提供的图像和问题,智能地生成准确、详细且富有洞察力的图像描述。这款 基于AI图像识别 API 能够理解和分析图像内容,并根据您的提示(prompt)生成相应的文本描述。它适用于各种图像理解图像分析图像内容生成场景,让您轻松实现图像问一问图像到文本的转换

应用场景

Image Describer API 可以帮助您在以下领域高效地进行图像理解内容生成

API 密钥

要访问 Image Describer API,您必须首先获取一个有效的 API 密钥。密钥用于验证您的请求和确保 API 的安全访问。

获取 API 密钥

  1. 访问密钥管理页面: 登录系统,然后点击右上角的用户头像。在下拉菜单中,点击“申请 API”以打开 API 密钥管理页面。
API for Image Describer
  1. 创建新的密钥: ** 点击“创建新的密钥”,在弹出的对话框中输入密钥名称,然后点击“创建”。
API for Image Describer
  1. 复制您的密钥: 请注意,密钥只会完整显示一次。 点击复制图标将密钥复制到剪贴板,然后点击“确认”关闭对话框。

    重要提示: 不要与他人共享您的 API 密钥,或将其暴露在浏览器或其他客户端代码中。妥善保管您的密钥以防止未经授权的访问。

API 端点

POST https://api.imagedescriber.app/api/v1/generate_content

请求(Request)参数

请求头部

头部字段类型必填描述
content-typestringapplication/json
authorizationstringBearer ${api_key},其中 ${api_key} 为您的 API 密钥

请求体

{
  "image": "data:image/jpeg;base64,{image_base64_data}",
  "prompt": "这是什么物体?描述它可能的用途。",
  "lang": "zh"
}
参数类型必填描述
imagestring

图片的 URL 或 Base64 编码数据。支持的图片格式请参考 图片格式说明

promptstring针对图像的提问或描述需求,例如:"这是什么?"、"描述一下这张图片。"。
langstring返回描述的语言代码。默认为 en(英语)。支持的语言代码如下表所示。

支持的语言

代码语言
en英语 (默认)
zh中文
fr法语
de德语
es西班牙语
ja日语
ko韩语

请求示例 (cURL)

curl --location 'https://api.imagedescriber.app/api/v1/generate_content' \
--header 'content-type: application/json' \
--header 'authorization: Bearer your_api_key' \
--data '{
    "image":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...", 
    "prompt":"这是什么物体?描述它可能的用途。",
    "lang":"zh"
}'

请求示例 (Python)

import requests
import base64

def image_to_base64(image_path):
  """将图片转换为 Base64 编码"""
  with open(image_path, "rb") as image_file:
    encoded_string = base64.b64encode(image_file.read()).decode("utf-8")
  return encoded_string

def generate_image_description(api_key, image_path, prompt, lang="zh"):
  """使用 Image Describer API 生成图像描述"""
  url = "https://api.imagedescriber.app/api/v1/generate_content"
  headers = {
      "content-type": "application/json",
      "authorization": f"Bearer {api_key}"
  }
  
  image_base64_data = image_to_base64(image_path)
  payload = {
      "image": f"data:image/jpeg;base64,{image_base64_data}",
      "prompt": prompt,
      "lang": lang
  }

  response = requests.post(url, headers=headers, json=payload, stream=True) # 使用 stream=True 处理流式响应

  if response.status_code == 200:
      for chunk in response.iter_content(chunk_size=None, decode_unicode=True): # 逐块处理响应内容
          if chunk:
              print(chunk, end='')
      print()  # 打印一个换行符以结束输出
  else:
    print(f"Error: {response.status_code}")
    print(response.text)

# 示例用法
api_key = "your_api_key"
image_path = "your_image.jpg"
prompt = "这是什么物体?描述它可能的用途。"

generate_image_description(api_key, image_path, prompt)

请求示例 (Next.js)

import fs from 'fs';

// 服务端实现
const buffer = await fs.readFileSync("/temp/test.jpg");
const base64Image = buffer.toString('base64');
const imageData = `data:image/jpeg;base64,${base64Image}`;

// 客户端实现
const file:File = /* 来自 input 或 drop 事件的图片 */;
const arrayBuffer = await file.arrayBuffer();
const bytes = new Uint8Array(arrayBuffer);
const base64Image = btoa(String.fromCharCode.apply(null, bytes as any));
const imageData = `data:${file.type};base64,${base64Image}`;

const body = {
  "image": imageData,
  "prompt": "详细描述一下这张图片",
  "lang": "zh"
};

const response = await fetch('https://api.imagedescriber.app/api/v1/generate_content', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer {your_api_key}'
    },
    body: JSON.stringify(body),
});

const result = await response.json();
console.log(result);

响应

响应体 (流式响应)

API 返回 JSON 格式的响应数据。data 对象中的 content 字段包含 Markdown 格式的生成图像描述。

{
  "code": 0,
  "message": "success",
  "request_id": "unique_request_id_string",
  "data": {
    "content": "Markdown 格式的生成内容" 
  }
}
字段类型描述
codenumber状态码,0 表示成功,非 0 表示错误。
messagestring状态消息,描述请求的状态。
request_idstring唯一请求 ID,用于追踪和排查问题。
dataobject包含生成的内容。
contentstring生成的**图像描述**文本。格式为 **Markdown**。

请求限制

为了保证服务的稳定性和公平性,每个 API 密钥每分钟最多允许 5 个请求相当于每小时 300 次请求。超出限制的请求将被拒绝,并返回错误码 1004

积分系统

如何获取积分?

您可以访问 积分充值页面 购买积分,以支持更多 API 调用。我们提供多种套餐选择,以满足不同用户的需求。

错误处理

以下表格列出了常见的错误码及其含义和解决方案:

错误码描述解决方案
1002未授权请检查您的 authorization 头部是否正确设置。
1003无效的 API 密钥请检查您的 API 密钥是否正确,或重新获取 API 密钥。
1004请求过多,超过频率限制请降低您的请求频率,每分钟最多 5 个请求。
1005参数无效请检查您的请求参数是否符合规范。
2002积分不足
2003内容被安全过滤器阻止请修改您的图片或提示词,确保内容符合规范。
2004图片格式无效

请使用支持的图片格式,参考图片格式说明

2005图片上传失败请检查您的图片 URL 是否有效,或稍后重试上传。
5050内部服务器错误请联系我们的技术支持团队,并提供 request_id。

图片格式说明

目前支持的图片格式包括:JPEGPNGWebP。图片大小不超过 4MB

联系我们

如果您有任何问题或建议,请随时通过以下方式联系我们:

立即开始使用 Image Describer API,解锁图像理解的无限可能!