Serie GLM-4V
La serie GLM-4V consta de 3 modelos para diferentes escenarios de aplicación.
- GLM-4V-Plus: Proporciona una excelente comprensión multimodal, puede procesar hasta 5 imágenes simultáneamente y admite la comprensión de contenidos de vídeo para escenarios de análisis multimedia complejos.
- GLM-4V: centrado en la comprensión del contenido de las imágenes, es capaz de analizar hasta 5 imágenes simultáneamente, y es adecuado para ocasiones en las que se requiere una comprensión profunda de la imagen.
- GLM-4V-Flash (gratuito): se centra en la comprensión eficiente de una sola imagen para escenarios con una resolución de imagen rápida, como el análisis de imágenes en tiempo real o el procesamiento de imágenes por lotes.
llamada sincrónica
solicitud de interfaz
tipología | instrucciones |
---|
método de transmisión | https |
solicitar dirección | https://open.bigmodel.cn/api/paas/v4/chat/completions |
método de invocación | Llamada síncrona, esperando a que el modelo termine de ejecutarse y devuelva el resultado final o llamada SSE |
codificación de caracteres | UTF-8 |
Formato de solicitud de interfaz | JSON |
formato de respuesta | Evento JSON o Standard Stream |
Tipo de solicitud de interfaz | POST |
lenguaje de desarrollo | Cualquier lenguaje de desarrollo que pueda iniciar peticiones http. |
parámetro de solicitud
Nombre del parámetro | tipología | campo obligatorio | Descripción de los parámetros |
---|
modelo | Cadena | sea | La codificación del modelo de la llamada. Códigos de modelo: glm-4v-plus , glm-4v, glm-4v-flash (libre). |
mensajes | Lista | sea | Cuando se llama al modelo lingüístico, se introduce en el modelo una lista de mensajes de diálogo actuales como pistas, pasando los parámetros en forma de matrices json. Por ejemplo, el parámetro de comprensión de vídeo:{ "role": "user", "content": [ { "type": "video_url", "video_url": { "url" : "https://xxx/xx.mp4" } }, { "type": "text", "text": "请仔细描述这个视频" } ] } Parámetros de comprensión de imágenes:{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url" : "https://xxx/xx.jpg" } }, { "type": "text", "text": "解释一下图中的现象" } ] } Los posibles tipos de mensaje incluyen Mensaje de usuario, Mensaje de asistente. consulte las descripciones de los campos de mensaje a continuación. |
request_id | Cadena | obstruido | Pasado por el usuario, la necesidad de garantizar la unicidad; utilizado para distinguir entre la identidad única de cada solicitud, el usuario no pasa la plataforma se generará por defecto. |
hacer_muestra | Booleano | obstruido | La estrategia de muestreo se activa cuando do_sample es true, y las estrategias de muestreo temperature y top_p no tendrán efecto cuando do_sample es false. |
flujo | Booleano | obstruido | Este parámetro debe establecerse en Fasle u omitirse cuando se utilicen llamadas síncronas. Si se establece en True, el modelo devolverá todo el contenido a la vez después de generar todo el contenido. Si se establece en True, el modelo devolverá el contenido generado por el modelo en un flujo de eventos estándar, un bloque cada vez, y al final del flujo de eventos, devolverá un mensajedata: [DONE] Mensaje. |
temperatura | Flotador | obstruido | Temperatura de la muestra, controla la aleatoriedad de la salida, debe ser positiva El rango de valores es:[0.0,1.0] El valor por defecto es 0,8. Cuanto mayor sea el valor, más aleatoria y creativa será la salida; cuanto menor sea el valor, más estable o segura será la salida. Se recomienda ajustar el valor en función del escenario de aplicación. top_p tal vez temperature pero no ajuste ambos parámetros al mismo tiempo. |
top_p | Flotador | obstruido | Otro método de muestreo con temperatura, denominado muestreo kernel El rango de valores es:[0.0, 1.0] El valor por defecto es 0,6 Se considera que los modelos tienen un top_p masa probabilística fichas Por ejemplo, 0,1 significa que el descodificador del modelo sólo tiene en cuenta los tokens del conjunto de probabilidades candidato del antiguo 10%. Se recomienda ajustar el modelo en función de su escenario de aplicación. top_p tal vez temperature pero no ajuste ambos parámetros al mismo tiempo. |
max_tokens | Entero | obstruido | Máximo de tokens de salida del modelo, por defecto es 1024, soporte máximo 1024tokens. |
usuario_id | Cadena | obstruido | Un identificador único del usuario final para ayudar a la plataforma a intervenir en infracciones del usuario final, generación de información ilegal e indeseable u otros comportamientos abusivos.Requisito de longitud del identificador: mínimo 6 caracteres, máximo 128 caracteres. |
Formato de los mensajes
Los tipos de mensaje aceptables para el modelo incluyen Mensaje de usuario, Mensaje de asistente, y el formato varía para los diferentes tipos de mensaje. Los detalles son los siguientes:
Mensaje del usuario
Nombre del parámetro | tipología | campo obligatorio | Descripción de los parámetros |
---|
papel | Cadena | sea | La información sobre la función del mensaje debe seruser |
contenido | Lista | sea | Contenido del mensaje. |
tipo | Cadena | sea | Tipo de texto: text Tipo de imagen: image_url Tipo de vídeo: video_url Los tipos de vídeo e imagen no pueden introducirse al mismo tiempo |
texto | Cadena | sea | Suplemento cuando el tipo es texto |
URL_imagen | Objeto | sea | Si el tipo es image_url, añada |
url | Cadena | sea | URL de la imagen o codificación base64. El límite de tamaño de imagen es inferior a 5M por imagen, y no más de 6000*6000 píxeles. Se admiten los formatos jpg, png, jpeg. Nota: GLM-4V-Flash no soporta codificación base64. |
video_url | Objeto | sea | Cuando el tipo es video_url, el parámetro video_url debe ser el primero cuando sólo glm-4v-plus admite la comprensión de vídeo de entrada de vídeo. |
url | Cadena | sea | url de vídeo. tamaño de vídeo sólo se admite hasta 20M, la duración del vídeo no es más de 30s. tipo de vídeo mp4 apoyado. |
Mensaje del asistente
Nombre del parámetro | tipología | campo obligatorio | Descripción de los parámetros |
---|
papel | Cadena | sea | La información sobre la función del mensaje debe serassistant |
contenido | Cadena | sea | Mensaje |
Parámetros de respuesta
Nombre del parámetro | tipología | Descripción de los parámetros |
---|
id | Cadena | ID de tarea |
creado | Largo | La hora de creación de la solicitud, que es una marca de tiempo Unix en segundos. |
modelo | Cadena | Nombre del modelo |
opciones | Lista | Contenido de la salida del modelo para el diálogo actual |
índice | Entero | Subíndices de resultados |
terminar_razón | Cadena | Razones para la terminación del razonamiento modelo.stop Representa el final natural del razonamiento o desencadena una palabra de parada.length representa alcanzar el límite superior de la longitud de las fichas.sensitive Representa el contenido de inferencia del modelo interceptado por la interfaz de auditoría de seguridad.network_error representa anomalías en la inferencia del modelo. |
mensaje | Objeto | Mensaje de texto devuelto por el modelo |
papel | Cadena | El papel del diálogo actual, actualmente por defecto asistente (modelo). |
contenido | Lista | Contenido del diálogo actual |
uso | Objeto | Devuelve un recuento del número de tokens de esta llamada al modelo al final del proceso. |
prompt_tokens | Entero | Número de fichas introducidas por el usuario |
completion_tokens | Entero | Número de tokens producidos por el modelo |
total_tokens | Entero | Total de fichas |
filtro_contenido | Lista | Volver a la información sobre seguridad de los contenidos |
papel | Cadena | Enlaces de seguridad para la entrada en vigor, incluidosrole = assistant razonamiento modelizador.role = user entrada del usuario.role = history contexto histórico |
nivel | Entero | Nivel de gravedad 0-3, siendo el nivel 0 el más grave y el 3 el menos grave. |
Ejemplo de solicitud
Cargar URL de vídeo
#视频理解示例、上传视频URL
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url" : "https://sfile.chatglm.cn/testpath/video/xxxxx.mp4"
}
},
{
"type": "text",
"text": "请仔细描述这个视频"
}
]
}
]
)
print(response.choices[0].message)
Subir vídeo Base64
import base64
from zhipuai import ZhipuAI
video_path = "/Users/YourCompluter/xxxx.mp4"
with open(video_path, 'rb') as video_file:
video_base = base64.b64encode(video_file.read()).decode('utf-8')
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "video_url",
"video_url": {
"url" : video_base
}
},
{
"type": "text",
"text": "请仔细描述这个视频"
}
]
}
]
)
print(response.choices[0].message)
Cargar URL de imagen
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "图里有什么"
},
{
"type": "image_url",
"image_url": {
"url" : "https://img1.baidu.com/it/u=1369931113,3388870256&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1703696400&t=f3028c7a1dca43a080aeb8239f09cc2f"
}
}
]
}
]
)
print(response.choices[0].message)
Subir imagen Base64
import base64
from zhipuai import ZhipuAI
img_path = "/Users/YourCompluter/xxxx.jpeg"
with open(img_path, 'rb') as img_file:
img_base = base64.b64encode(img_file.read()).decode('utf-8')
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": img_base
}
},
{
"type": "text",
"text": "请描述这个图片"
}
]
}
]
)
print(response.choices[0].message)
Varias rondas de diálogos con imágenes
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxx.png"
},
"type": "image_url"
},
{
"text": "图中有什么",
"type": "text"
}
],
"role": "user"
},
{
"content": [
{
"text": "这是一幅描绘自然风景的画,展现了一片宁静的湖泊,湖水呈现出深浅不一的蓝绿色调。湖边长着一棵盛开的樱花树,粉白色的花朵在阳光下显得格外鲜艳。树下有一位身穿蓝色衣服的人坐在船上,似乎正在享受这美好的时光。\n\n背景是连绵起伏的山脉,山体被绿色的植被覆盖,山顶则被云雾缭绕,增添了几分神秘感。远处还可以看到一座小亭子,它坐落在湖边的岩石上,与周围的自然环境和谐相融。\n\n整个画面给人一种宁静、和谐的感觉,仿佛置身于一个世外桃源之中。",
"type": "text"
}
],
"role": "assistant"
},
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
},
"type": "image_url"
},
{
"text": "这个图与上面图有什么不一样",
"type": "text"
}
],
"role": "user"
},
{
"content": [
{
"text": "第一张图和第二张图在画面内容、构图、色彩等方面都有很大的不同,形成鲜明的对比。\n\n1.第一张图是风景画,主要描绘了自然风景,如樱花树、湖泊、山脉等,色彩丰富,充满春天的气息,而第二张图是描绘长城在冬季的风景照片,长城在白雪覆盖的山脉中蜿蜒盘旋,整体色调偏冷,给人一种寒冷、宁静的感觉。\n\n2.构图上,第一张图采用对称式构图,以樱花树为中心,两侧的景物相互呼应,形成平衡和谐的画面效果,第二张图则采用对角线构图,长城作为视觉引导线,引导观众的视线穿越整个画面,增加画面的深度和动态感。\n\n整体来看,这两张图在画面内容、色彩、构图和氛围上都呈现出明显的对比,一张是充满生机和色彩的春日风景画,另一张是宁静而神秘的冬日长城风景照。",
"type": "text"
}
],
"role": "assistant"
},
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
},
"type": "image_url"
},
{
"text": "这个图与上一张图有什么区别",
"type": "text"
}
],
"role": "user"
}
]
)
print(response.choices[0].message)
Ejemplo de respuesta
{
"created": 1703487403,
"id": "8239375684858666781",
"model": "glm-4v-plus",
"request_id": "8239375684858666781",
"choices": [
{
"finish_reason": "stop",
"index": 0,
"message": {
"content": "图中有一片蓝色的海和蓝天,天空中有白色的云朵。图片的右下角有一个小岛或者岩石,上面长着深绿色的树木。",
"role": "assistant"
}
}
],
"usage": {
"completion_tokens": 37,
"prompt_tokens": 1037,
"total_tokens": 1074
}
}
salida de streaming
Parámetros de respuesta
Nombre del parámetro | tipología | Descripción de los parámetros |
---|
id | Cadena | ID de tarea |
creado | Largo | La hora de creación de la solicitud, que es una marca de tiempo Unix en segundos. |
opciones | Lista | Contenido de la salida del modelo para el diálogo actual |
índice | Entero | Subíndices de resultados |
terminar_razón | Cadena | Razones para la terminación del razonamiento modelo.stop Representa el final natural del razonamiento o desencadena una palabra de parada.length representa alcanzar el límite superior de la longitud de las fichas.sensitive Representa el contenido de inferencia del modelo interceptado por la interfaz de auditoría de seguridad.network_error representa anomalías en la inferencia del modelo. |
delta | Objeto | Mensaje de texto devuelto por el incremento del modelo |
papel | Cadena | El papel del diálogo actual, actualmente por defecto asistente (modelo). |
contenido | Cadena | Contenido del diálogo actual |
uso | Objeto | Estadísticas sobre el número de fichas llamadas por este modelo |
prompt_tokens | Entero | Número de fichas introducidas por el usuario |
completion_tokens | Entero | Número de tokens producidos por el modelo |
total_tokens | Entero | Total de fichas |
filtro_contenido | Lista | Volver a la información sobre seguridad de los contenidos |
papel | Cadena | Enlaces de seguridad para la entrada en vigor, incluidosrole = assistant razonamiento modelizador.role = user entrada del usuario.role = history contexto histórico |
nivel | Entero | Nivel de gravedad 0-3, siendo el nivel 0 el más grave y el 3 el menos grave. |
Ejemplo de solicitud
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 请填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url" : "sfile.chatglm.cn/testpath/xxxx.jpg"
}
},
{
"type": "text",
"text": "图里有什么"
}
]
},
],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta)
Ejemplo de respuesta
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"delta":{"role":"assistant","content":"下"}}]}
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"delta":{"role":"assistant","content":"角"}}]}
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"delta":{"role":"assistant","content":"有一个"}}]}
... ...
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"delta":{"role":"assistant","content":"树木"}}]}
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"delta":{"role":"assistant","content":"。"}}]}
data: {"id":"8305986882425703351","created":1705476637,"model":"glm-4v-plus","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":1037,"completion_tokens":37,"total_tokens":1074}}