Série GLM-4V
La série GLM-4V se compose de 3 modèles pour différents scénarios d'application.
- GLM-4V-Plus : offre une excellente compréhension multimodale, peut traiter jusqu'à 5 images simultanément et prend en charge la compréhension du contenu vidéo pour des scénarios d'analyse multimédia complexes.
- GLM-4V : axé sur la compréhension du contenu des images, il est capable d'analyser jusqu'à 5 images simultanément et convient aux cas où une compréhension approfondie de l'image est nécessaire.
- GLM-4V-Flash (gratuit) : se concentre sur la compréhension efficace d'une seule image pour les scénarios avec une résolution d'image rapide, tels que l'analyse d'image en temps réel ou le traitement d'image par lots.
appel synchrone
demande d'interface
typologie | instructions |
---|
méthode de transmission | https |
adresse de la demande | https://open.bigmodel.cn/api/paas/v4/chat/completions |
méthode d'invocation | Appel synchrone, attendant que le modèle termine son exécution et renvoie le résultat final ou appel SSE |
codage des caractères | UTF-8 |
Format de la demande d'interface | JSON |
format de réponse | JSON ou événement de flux standard |
Type de demande d'interface | POST |
développement langue | Tout langage de développement capable d'initier des requêtes http. |
paramètre de la demande
Nom du paramètre | typologie | champ obligatoire | Description des paramètres |
---|
modèle | Chaîne | être | Le modèle d'encodage de l'appel. Codes des modèles : glm-4v-plus , glm-4v, glm-4v-flash (gratuit) |
messages | Liste | être | Lors de l'appel du modèle linguistique, une liste de messages de dialogue en cours est introduite dans le modèle sous forme d'indices, en passant les paramètres sous forme de tableaux json. Par exemple, le paramètre de compréhension vidéo :{ "role": "user", "content": [ { "type": "video_url", "video_url": { "url" : "https://xxx/xx.mp4" } }, { "type": "text", "text": "请仔细描述这个视频" } ] } Paramètres de compréhension des images :{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url" : "https://xxx/xx.jpg" } }, { "type": "text", "text": "解释一下图中的现象" } ] } Les types de messages possibles sont les suivants : message de l'utilisateur, message de l'assistant. voir les descriptions des champs de message ci-dessous. |
request_id | Chaîne | bouché | Passé par l'utilisateur, nécessité de garantir l'unicité ; utilisé pour distinguer l'identité unique de chaque demande, l'utilisateur ne passe pas la plate-forme sera générée par défaut. |
do_sample | Booléen | bouché | La stratégie d'échantillonnage est activée lorsque do_sample est vrai, et les stratégies d'échantillonnage temperature et top_p ne sont pas appliquées lorsque do_sample est faux. |
flux | Booléen | bouché | Ce paramètre doit avoir la valeur Fasle ou être omis lors de l'utilisation d'appels synchrones. S'il a la valeur True, le modèle renverra tout le contenu en une seule fois après avoir généré tout le contenu. S'il vaut True, le modèle renverra le contenu généré par le modèle dans un flux d'événements standard, un bloc à la fois, et à la fin du flux d'événements, il renverra un fichierdata: [DONE] Message. |
température | Flotteur | bouché | Température de l'échantillon, contrôle le caractère aléatoire de la sortie, doit être positive :[0.0,1.0] La valeur par défaut est de 0,8 ; plus la valeur est grande, plus la sortie est aléatoire et créative ; plus la valeur est petite, plus la sortie est stable et certaine. Il est recommandé d'ajuster la valeur en fonction du scénario d'application. top_p peut-être temperature mais ne réglez pas les deux paramètres en même temps |
top_p | Flotteur | bouché | Une autre méthode d'échantillonnage de la température, appelée échantillonnage à noyau, permet d'obtenir la plage de valeurs suivante :[0.0, 1.0] La valeur par défaut est 0.6. Les modèles sont considérés comme ayant une top_p masse de probabilité jetons Par exemple, 0,1 signifie que le modèle de décodage ne prend en compte que les jetons de l'ensemble candidat de probabilités de l'ancien 10%. Il est recommandé d'ajuster le modèle en fonction de votre scénario d'application. top_p peut-être temperature mais ne réglez pas les deux paramètres en même temps |
max_tokens | Entier | bouché | Nombre maximal de jetons de sortie du modèle, 1024 par défaut, 1024 jetons au maximum. |
user_id | Chaîne | bouché | Un identifiant unique pour l'utilisateur final afin d'aider la plate-forme à intervenir en cas de violation par l'utilisateur final, de génération d'informations illégales et indésirables, ou d'autres comportements abusifs.longueur de l'identifiant requise : minimum 6 caractères, maximum 128 caractères. |
Format des messages
Les types de messages acceptables pour le modèle comprennent le message de l'utilisateur, le message de l'assistant, et le format varie pour les différents types de messages. Les détails sont les suivants :
Message de l'utilisateur
Nom du paramètre | typologie | champ obligatoire | Description des paramètres |
---|
rôle | Chaîne | être | Les informations relatives au rôle du message doivent être les suivantesuser |
contenu | Liste | être | Contenu du message. |
type | Chaîne | être | Type de texte : texte Type d'image : image_url Type de vidéo : video_url Les types de vidéo et d'image ne peuvent pas être saisis en même temps. |
texte | Chaîne | être | Supplémentaire lorsque le type est un texte |
image_url | Objet | être | Lorsque le type est image_url, ajouter |
url | Chaîne | être | Image url ou encodage base64. La taille de l'image à télécharger est inférieure à 5M par image, et ne dépasse pas 6000*6000 pixels. Les formats jpg, png, jpeg sont pris en charge. Note : GLM-4V-Flash ne supporte pas l'encodage base64. |
video_url | Objet | être | Lorsque le type est video_url, le paramètre video_url doit être le premier lorsque seul glm-4v-plus prend en charge la compréhension vidéo de l'entrée vidéo. |
url | Chaîne | être | url vidéo. la taille de la vidéo ne dépasse pas 20M, la durée de la vidéo ne dépasse pas 30s. le type de vidéo supporté est mp4. |
Message de l'assistant
Nom du paramètre | typologie | champ obligatoire | Description des paramètres |
---|
rôle | Chaîne | être | Les informations relatives au rôle du message doivent être les suivantesassistant |
contenu | Chaîne | être | Message |
Paramètres de réponse
Nom du paramètre | typologie | Description des paramètres |
---|
id | Chaîne | ID de la tâche |
créé | Longues | L'heure de création de la demande, qui est un horodatage Unix en secondes. |
modèle | Chaîne | Nom du modèle |
choix | Liste | Contenu de la sortie du modèle du dialogue en cours |
index | Entier | Indices de résultat |
motif de l'arrivée | Chaîne | Raisons de l'arrêt du raisonnement par modèle.stop Représente la fin naturelle du raisonnement ou déclenche un mot d'arrêt.length représente l'atteinte de la limite supérieure de la longueur des jetons.sensitive Représente le contenu de l'inférence du modèle intercepté par l'interface d'audit de sécurité.network_error représente les anomalies de l'inférence du modèle. |
message | Objet | Message texte renvoyé par le modèle |
rôle | Chaîne | Le rôle du dialogue en cours, actuellement par défaut l'assistant (modèle) |
contenu | Liste | Contenu du dialogue actuel |
utilisation | Objet | Renvoie un décompte du nombre de jetons pour cet appel de modèle à la fin du processus. |
okens_invitants | Entier | Nombre de jetons entrés par l'utilisateur |
symboles d'achèvement | Entier | Nombre de jetons produits par le modèle |
total_tokens | Entier | Total des jetons |
filtre_contenu | Liste | Retour aux informations sur la sécurité du contenu |
rôle | Chaîne | Liens d'entrée en vigueur de la sécurité, y comprisrole = assistant modéliser le raisonnement.role = user l'entrée de l'utilisateur.role = history contexte historique |
niveau | Entier | Niveau de gravité 0-3, le niveau 0 étant le plus grave et le niveau 3 le moins grave. |
Exemple de demande
Télécharger l'URL de la vidéo
#视频理解示例、上传视频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)
Télécharger la vidéo 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)
Télécharger l'URL de l'image
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)
Télécharger l'image 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)
Plusieurs séries de dialogues en images
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)
Exemple de réponse
{
"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
}
}
sortie en continu
Paramètres de réponse
Nom du paramètre | typologie | Description des paramètres |
---|
id | Chaîne | ID de la tâche |
créé | Longues | L'heure de création de la demande, qui est un horodatage Unix en secondes. |
choix | Liste | Contenu de la sortie du modèle du dialogue en cours |
index | Entier | Indices de résultat |
motif de l'arrivée | Chaîne | Raisons de l'arrêt du raisonnement par modèle.stop Représente la fin naturelle du raisonnement ou déclenche un mot d'arrêt.length représente l'atteinte de la limite supérieure de la longueur des jetons.sensitive Représente le contenu de l'inférence du modèle intercepté par l'interface d'audit de sécurité.network_error représente les anomalies de l'inférence du modèle. |
delta | Objet | Message texte renvoyé par l'incrément de modèle |
rôle | Chaîne | Le rôle du dialogue en cours, actuellement par défaut l'assistant (modèle) |
contenu | Chaîne | Contenu du dialogue actuel |
utilisation | Objet | Statistiques sur le nombre de jetons appelés par ce modèle |
okens_invitants | Entier | Nombre de jetons entrés par l'utilisateur |
symboles d'achèvement | Entier | Nombre de jetons produits par le modèle |
total_tokens | Entier | Total des jetons |
filtre_contenu | Liste | Retour aux informations sur la sécurité du contenu |
rôle | Chaîne | Liens d'entrée en vigueur de la sécurité, y comprisrole = assistant modéliser le raisonnement.role = user l'entrée de l'utilisateur.role = history contexte historique |
niveau | Entier | Niveau de gravité 0-3, le niveau 0 étant le plus grave et le niveau 3 le moins grave. |
Exemple de demande
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)
Exemple de réponse
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}}
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.