OpenSearch permite llamar al servicio de extracción de contenido de imágenes mediante una API, integrar el servicio en sus flujos de trabajo empresariales y utilizar el texto analizado para la recuperación de imágenes y la respuesta a preguntas.
Lista de servicios
|
Nombre del servicio |
ID del servicio |
Descripción |
Límite de QPS de la API |
|
Image Content Understanding Service 001 |
ops-image-analyze-vlm-001 |
Analiza el contenido de la imagen y reconoce texto mediante un modelo grande multimodal, lo que habilita aplicaciones como la recuperación de imágenes y la respuesta a preguntas. |
10 Nota
Para solicitar un límite de QPS de API mayor, envíe un ticket al soporte técnico. |
|
Image OCR Service 001 |
ops-image-analyze-ocr-001 |
Extrae texto de imágenes mediante OCR, lo que habilita aplicaciones como la recuperación de imágenes y la respuesta a preguntas. |
-
Obtenga las credenciales de autenticación
La plataforma abierta AI Search requiere una clave de API para la autenticación. Para obtener instrucciones, consulte Get an API key.
-
Obtenga el endpoint del servicio
Puede llamar al servicio a través de la red pública o de una VPC. Para más detalles, consulte Get the service endpoint.
Crear una tarea de extracción asíncrona
Método de solicitud
POST
URL
{host}/v3/openapi/workspaces/{workspace_name}/image-analyze/{service_id}/async
-
host: El endpoint del servicio de API. Puede acceder al servicio de API a través de la red pública o mediante una VPC. Para más información, consulte Obtain an endpoint.En la consola de AI Search Open Platform, elija API Keys en el panel de navegación izquierdo. Luego encontrará el Public API Domain Name y el Private API Domain Name en la sección Access Domain Name, en la parte superior de la página.
workspace_name: El nombre del workspace. Por ejemplo,default.service_id: El ID del servicio integrado del sistema. Por ejemplo,ops-image-analyze-vlm-001.
Parámetros de solicitud
Parámetros de encabezado
Autenticación por clave de API
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
|
Content-Type |
String |
Obligatorio |
Especifica el tipo de medio del cuerpo de la solicitud. Debe ser application/json. |
application/json |
|
Authorization |
String |
Obligatorio |
La clave de API para la autenticación, con el prefijo Bearer . |
Bearer OS-d1**2a |
Parámetro del cuerpo
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
|
service_id |
String |
Sí |
ID del servicio integrado:
|
ops-image-analyze-vlm-001 |
|
document.url |
String |
No |
La URL del archivo. Se debe especificar este parámetro o |
http://path/to/***.jpg |
|
document.content |
String |
No |
El contenido del archivo codificado en Base64. Se debe especificar este parámetro o |
"aGVsbG8gd29ybGQ=" |
|
document.file_name |
String |
No |
El nombre del archivo. Si se omite este parámetro, el nombre se infiere de |
test.jpg |
|
document.file_type |
String |
No |
El tipo de archivo (por ejemplo, |
jpg |
Parámetros de respuesta
|
Parámetro |
Tipo |
Descripción |
Valor |
|
result.task_id |
String |
El ID de la tarea asíncrona de análisis de imágenes. |
6177bf71-f87f-4d86-ab0c-e2b64dfe**** |
Solicitud cURL
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <YOUR_API_KEY>" \
"http://***-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/image-analyze/ops-image-analyze-vlm-001/async"
--data '{
"document": {
"url": "https://img01.yzcdn.cn/****/2017/05/11/FoTMgBa0SvUaAeFruY7i7O_EUMhf.jpg%21middle.jpg",
"file_type": "jpg"
}
}' \
Ejemplo de respuesta
Respuesta normal
{
"request_id":"CD4E26F0-23FF-449C-83DC-20CC8FF1****",
"latency":8.0,
"http_code":200,
"result":{
"task_id":"cd4e26f0-23ff-449c-83dc-20cc8ff1****"
}
}
Ejemplo de respuesta de error
Si una solicitud de acceso falla, la salida contiene un code y un message que explican el error.
{
"request_id":"0CCAC03B-D83F-432F-B6BA-C3049576****",
"latency":0.0,
"code":"InvalidParameter",
"http_code":400,
"message":"document.content or document.url required, and both cannot be present at the same time"
}
Estado de la tarea de extracción asíncrona
Método de solicitud
GET
URL
{host}/v3/openapi/workspaces/{workspace_name}/image-analyze/{service_id}/async/task-status?task_id=${task_id}
host: El endpoint del servicio de API. Puede llamar al servicio de API a través de la red pública o mediante una VPC. Para más detalles, consulte Get a service endpoint.
workspace_name: El nombre del workspace. Por ejemplo, default.
service_id: El ID del servicio integrado. Por ejemplo, ops-image-analyze-vlm-001.
task_id: El ID de la tarea devuelto en la respuesta cuando crea una tarea de análisis de imágenes. Por ejemplo, cd4e26f0-23ff-449c-83dc-20cc8ff1****.
Parámetros de solicitud
Parámetros de encabezado
Autenticación por clave de API
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
|
Content-Type |
string |
Sí |
El tipo de solicitud. Debe ser |
application/json |
|
Authorization |
string |
Sí |
La clave de API para la autenticación, con el prefijo |
Bearer OS-d1**2a |
Parámetros de respuesta
|
Parámetro |
Tipo |
Descripción |
Ejemplo |
|
request_id |
String |
El identificador único de la llamada a la API. |
3C09570D-12DB-46B4-BF0F-A100D79B**** |
|
latency |
Float/Int |
La latencia de la solicitud, en milisegundos. |
3.0 |
|
result.task_id |
String |
El ID de la tarea asíncrona. Este parámetro no se devuelve en llamadas síncronas. |
a7e4c0f6-874c-47e3-b05b-02278a96e**** |
|
result.status |
String |
El estado de la tarea. Valores posibles:
|
SUCCESS |
|
result.data |
Object |
Los resultados del análisis de la imagen. |
{"content":"The image shows XXXX", "content_type":"plain"} |
|
result.data.content |
String |
El contenido extraído de la imagen. |
"XXX" |
|
result.data.content_type |
String |
El tipo de contenido de la salida. El valor siempre es |
plain |
|
usage.token_count |
int |
El recuento de tokens de la salida. Este parámetro aplica al servicio |
1234 |
|
usage.pv_count |
int |
El número de llamadas, fijo en 1. Aplica al servicio |
1 |
Ejemplo de solicitud cURL
curl -X GET \
-H"Content-Type: application/json" \
-H "Authorization: Bearer Your API-KEY" \
"http://***-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/image-analyze/ops-image-analyze-vlm-001/async/task-status?task_id=d9781786-20b8-4fb4-bbb5-38f82e69****"
Ejemplo de respuesta
Respuesta exitosa
{
"request_id":"3C09570D-12DB-46B4-BF0F-A100D79B****",
"latency":3.0,
"http_code":200,
"result":{
"status":"SUCCESS",
"data":{
"content":"The image shows a WMF blender surrounded by fruits and vegetables. Next to it is a glass of red juice with a straw. On the table are lemon slices, strawberries, and kiwifruit. A cut pineapple and an orange sit in one corner. Chopped carrots are in the blender, ready for juicing. The scene looks healthy and appetizing.",
"content_type":"plain"
},
"task_id":"d9781786-20b8-4fb4-bbb5-38f82e69****"
},
"usage":{
"token_count":95
}
}
Ejemplo de respuesta de error
Cuando una solicitud de acceso falla, la salida incluye un code y un message que explican el error.
{
"request_id":"153FC253-468D-4C46-873E-2AEB918C****",
"latency":2.0,
"code":"BadRequest.TaskNotExist",
"http_code":404,
"message":"task[d9781786-20b8-4fb4-bbb5-38f82e690b****] does not exist"
}
Crear una tarea de extracción síncrona
Método de solicitud
POST
URL
{host}/v3/openapi/workspaces/{workspace_name}/image-analyze/{service_id}/sync
Parámetros
host: El endpoint del servicio de API. Puede llamar al servicio de API a través de la red pública o mediante una VPC. Para más información, consulte Get a service endpoint.workspace_name: El nombre de su workspace. Por ejemplo,default.service_id: El ID del servicio integrado. Por ejemplo,ops-image-analyze-vlm-001.
Parámetros
Parámetros de encabezado
Autenticación por clave de API
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Valor de ejemplo |
|
Content-Type |
String |
Sí |
El tipo de medio de la solicitud. |
application/json |
|
Authorization |
String |
Sí |
Clave de API |
Bearer OS-d1**2a |
Parámetros del cuerpo
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
Ejemplo |
|
service_id |
String |
Sí |
El ID del servicio integrado. Valores válidos:
|
ops-image-analyze-vlm-001 |
|
document.url |
String |
No |
La URL del archivo. Admite HTTP y HTTPS. Debe especificar |
http://path/to/***.jpg |
|
document.content |
String |
No |
El contenido del archivo codificado en Base64. Debe especificar |
"aGVsbG8gd29ybGQ=" |
|
document.file_name |
String |
No |
El nombre del archivo. Si este parámetro se deja en blanco, el nombre se infiere de |
test.jpg |
|
document.file_type |
String |
No |
El tipo de archivo. Si este parámetro está en blanco, el tipo se infiere de la extensión del nombre del archivo. Si el tipo no se puede inferir, debe especificarlo explícitamente. Ejemplos: |
jpg |
Parámetros de respuesta
|
Parámetro |
Tipo |
Descripción |
Valor de ejemplo |
|
result.status |
String |
El estado de la tarea. Valores posibles:
|
SUCCESS |
|
result.error |
String |
El mensaje de error cuando |
Failed to decrypt the document. |
|
result.data |
Object |
Los resultados del análisis de la imagen. |
{"content":"The image shows XXXX", "content_type":"plain"} |
|
result.data.content |
String |
El contenido extraído de la imagen. |
"XXX" |
|
result.data.content_type |
String |
El tipo del contenido de salida. El valor siempre es |
plain |
|
request_id |
String |
Un identificador único para la llamada a la API. |
B4AB89C8-B135-xxxx-A6F8-2BAB801A2CE4 |
|
latency |
number |
La latencia de la solicitud, en ms. |
10 |
|
usage |
Object |
Uso de esta llamada a la API. |
"usage": { "token_count": 1234 } |
|
usage.token_count |
integer |
El recuento de tokens de salida. Esto aplica al servicio |
1234 |
|
usage.pv_count |
integer |
El recuento de invocaciones. El valor es fijo en 1. Esto aplica al servicio |
1 |
cURL
This section provides a sample API call and a glossary of relevant technical terms.
API call example
The following example shows how to make a synchronous call to the image analysis API endpoint.
curl -X POST \
-H"Content-Type: application/json" \
-H "Authorization: Bearer " \
"http://***-hangzhou.opensearch.aliyuncs.com/v3/openapi/workspaces/default/image-analyze/ops-image-analyze-vlm-001/sync" \
\ -d "{
\"document\":{
\"url\":\"https://img01.yzcdn.cn/****/2017/05/11/FoTMgBa0SvUaAeFruY7i7O_EUMhf.jpg%21middle.jpg\",
\"file_type\":\"jpg\"
}
}"
Terminology
The following table lists the technical terms used in this API call, their standard formatting, and related conventions.
Term
Standard form
Type
Notes
API key
API key
Industry Standard
Standard industry term. Use lowercase in prose.
China (Hangzhou)
China (Hangzhou)
Alibaba Cloud Region
The official region name. The identifier hangzhou in the URL is for system use.
Open Search
Open Search
Alibaba Cloud Product
The official product name. The identifier opensearch in the URL is for system use.
workspace
workspace
Industry Standard
A common cloud resource concept. Use lowercase.
image analysis
image analysis
Industry Standard
A functional description. The identifier image-analyze in the URL is for system use.
sync / async
sync / async
Industry Standard
Standard terms for synchronous and asynchronous operations.
document
document
JSON Field
A standard JSON field name. Use lowercase.
url
url
JSON Field
A standard JSON field name. Use lowercase.
file_type
file_type
JSON Field
A standard JSON field name. Use lowercase.
UI elements
This API call example does not reference any user interface (UI) elements.
Ejemplo de respuesta
Respuesta exitosa
{
"request_id":"BB5CD4C3-C8B6-40E7-A037-4ADAE88A****",
"latency":12525.0,
"http_code":200,
"result":{
"status":"SUCCESS",
"data":{
"content":"The image shows a WMF blender surrounded by fruit and vegetables. Next to the blender is a cup of red juice with a straw in it. Scattered on the table are a few lemon slices, several strawberries, and some kiwifruit. In one corner of the table, there is a cut pineapple and an orange. Additionally, chopped carrots are in the blender, ready to be juiced. Everything looks healthy and delicious.",
"content_type":"plain"
}
},
"usage":{
"token_count":95
}
}
Respuesta de error
Una solicitud de acceso fallida devuelve un code y un message que explican el error.
{
"request_id": "6F33AFB6-A35C-4DA7-AFD2-9EA16CCF****",
"latency": 2.0,
"code": "InvalidParameter",
"http_code": 400,
"message": "JSON parse error: Cannot deserialize value of type `ImageStorage` from String \\"xxx\\"
}
Códigos de estado
|
Código de estado HTTP |
Código de error |
Descripción |
|
200 |
- |
Una solicitud exitosa no garantiza el éxito de la tarea; compruebe el estado de la tarea en |
|
404 |
BadRequest.TaskNotExist |
La tarea no existe. |
|
400 |
InvalidParameter |
La solicitud no es válida. |
|
500 |
InternalServerError |
Ocurrió un error interno. |
Para más información sobre los códigos de estado, consulte status codes.