GLM-4Vシリーズ
GLM-4Vシリーズは、異なるアプリケーションシナリオに対応する3つのモデルで構成されています。
- GLM-4V-Plus:優れたマルチモーダル理解力を提供し、最大5つの画像を同時に処理でき、複雑なマルチメディア分析シナリオのためのビデオコンテンツ理解力をサポートします。
- GLM-4V:画像の内容理解に重点を置き、最大5枚の画像を同時に解析することができ、深い画像理解が必要な場面に適している。
- GLM-4V-Flash (無料): リアルタイムの画像解析やバッチ画像処理など、高速な画像解像度を必要とする場面での効率的な単一画像理解に重点を置いています。
同期呼び出し
インターフェース要求
類型論 |
指示 |
伝送方式 |
https |
リクエストアドレス |
https://open.bigmodel.cn/api/paas/v4/chat/completions |
呼び出しメソッド |
同期呼び出し、モデルが実行を終了して最終結果を返すのを待つ、またはSSE呼び出し |
文字エンコーディング |
UTF-8 |
インターフェース・リクエスト・フォーマット |
JSON |
応答フォーマット |
JSONまたは標準ストリーム・イベント |
インターフェース要求タイプ |
ポスト |
開発言語 |
httpリクエストを開始できる開発言語。 |
リクエストパラメータ
パラメータ名 |
類型論 |
必須項目 |
パラメータの説明 |
モデル |
ストリング |
であります |
呼び出しのモデルエンコーディング。 モデルコード: glm-4v-plus , glm-4v, glm-4v-flash (free) |
メッセージ |
リスト |
であります |
言語モデルを呼び出す際には、現在の対話メッセージのリストがヒントとしてモデルに入力され、パラメータはjson配列の形式で渡されます。例えば、ビデオ理解のパラメータです:{ "role": "user", "content": [ { "type": "video_url", "video_url": { "url" : "https://xxx/xx.mp4" } }, { "type": "text", "text": "请仔细描述这个视频" } ] } 絵の理解度パラメータ:{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url" : "https://xxx/xx.jpg" } }, { "type": "text", "text": "解释一下图中的现象" } ] } 可能なメッセージ・タイプには、ユーザー・メッセージ、アシスタ ント・メッセージがあります。 |
リクエストID |
ストリング |
詰り |
ユーザーによって渡され、一意性を確保する必要があります。各要求の一意のアイデンティティを区別するために使用され、ユーザーがデフォルトで生成されるプラットフォームを渡すことはありません。 |
do_sample |
ブーリアン |
詰り |
サンプリング戦略はdo_sampleがtrueのときに有効になり、サンプリング戦略temperatureとtop_pはdo_sampleがfalseのときには有効にならない。 |
ストリーム |
ブーリアン |
詰り |
このパラメータはFasleに設定するか、同期呼び出しを使用する場合は省略する必要があります。Trueに設定すると、モデルはすべてのコンテンツを生成した後、すべてのコンテンツを一度に返します。Trueに設定された場合、モデルは標準のイベントストリームで生成されたコンテンツを1ブロックずつ返します。data: [DONE] メッセージ |
温度 |
フロート |
詰り |
サンプル温度は、出力のランダム性を制御し、正の値でなければなりません:[0.0,1.0] デフォルト値は0.8で、値が大きいほどランダムで創造的な出力となり、値が小さいほど安定した、あるいは確実な出力となる。 アプリケーションのシナリオに応じて値を調整することを推奨する。 top_p もしかしたら temperature ただし、両方のパラメーターを同時に調整しないでください。 |
トップ |
フロート |
詰り |
カーネル・サンプリングと呼ばれる、温度によるサンプリングの別の方法:[0.0, 1.0] デフォルト値は0.6です。 top_p 確率質量 トークン 例えば、0.1 は、モデルデコーダが旧 10% の確率候補セットからのトークンのみを考慮することを意味する。 アプリケーションシナリオに従ってモデルを調整することを推奨する。 top_p もしかしたら temperature ただし、両方のパラメーターを同時に調整しないでください。 |
max_tokens |
整数 |
詰り |
最大モデル出力トークン数、デフォルトは1024、最大サポートは1024tokens。 |
ユーザーID |
ストリング |
詰り |
エンドユーザーの違反、違法で望ましくない情報の生成、またはその他の不正行為にプラットフォームが介入する際に役立つ、エンドユーザー固有のID。IDの長さの要件:最小6文字、最大128文字。 |
メッセージの形式
このモデルで使用可能なメッセージ・タイプには、ユーザー・メッセージ、アシスタント・メッセージがあり、メッセージ・タイプによってフォーマットが異なる。詳細は以下の通り:
ユーザーメッセージ
パラメータ名 |
類型論 |
必須項目 |
パラメータの説明 |
役割 |
ストリング |
であります |
メッセージの役割情報は次のようにする。user |
内容 |
リスト |
であります |
メッセージの内容 |
タイプ |
ストリング |
であります |
テキストタイプ:テキスト 画像タイプ:image_url 動画タイプ:video_url 動画タイプと画像タイプを同時に入力することはできません。 |
テキスト |
ストリング |
であります |
タイプがテキストの場合の補足 |
画像URL |
対象 |
であります |
typeがimage_urlの場合は |
url |
ストリング |
であります |
画像のURLまたはbase64エンコーディング。アップロード可能な画像サイズは、1枚あたり5M以下、6000*6000ピクセル以下です。注:GLM-4V-Flashはbase64エンコーディングに対応していません。 |
ビデオURL |
対象 |
であります |
typeがvideo_urlの場合、glm-4v-plusのみがビデオ入力の映像理解をサポートしている場合、video_urlパラメータは最初のものでなければならない。 |
url |
ストリング |
であります |
ビデオのURL。ビデオのサイズは20Mまでしかサポートされていません、ビデオの持続時間は30秒以上ではありません。 |
アシスタントメッセージ
パラメータ名 |
類型論 |
必須項目 |
パラメータの説明 |
役割 |
ストリング |
であります |
メッセージの役割情報は次のようにする。assistant |
内容 |
ストリング |
であります |
メッセージ |
応答パラメーター
パラメータ名 |
類型論 |
パラメータの説明 |
アイドル |
ストリング |
タスクID |
作成 |
ロング |
リクエストの作成時間。Unixタイムスタンプを秒単位で指定する。 |
モデル |
ストリング |
モデル名 |
選択肢 |
リスト |
現在のダイアログのモデル出力内容 |
インデックス |
整数 |
結果の添え字 |
終了理由 |
ストリング |
モデル推論終了の理由。stop 推論の自然な終わりを表すか、ストップワードを誘発する。length はトークンの長さが上限に達したことを表す。sensitive セキュリティ監査インターフェースによって傍受されるモデル推論の内容を表す。network_error はモデル推論の異常を表す。 |
メッセージ |
対象 |
モデルが返すテキストメッセージ |
役割 |
ストリング |
現在のダイアログの役割、現在のデフォルトはアシスタント(モデル) |
内容 |
リスト |
現在の対話の内容 |
使用状況 |
対象 |
処理終了時に、このモデルコールのトークン数のカウントを返す。 |
プロンプトトークン |
整数 |
ユーザーが入力したトークンの数 |
コンプリーション・トークン |
整数 |
モデルが出力したトークンの数 |
トークン |
整数 |
トークン合計 |
コンテンツフィルター |
リスト |
コンテンツ・セキュリティに関する情報に戻る |
役割 |
ストリング |
安全保障に関する発効リンクrole = assistant モデリング推論。role = user ユーザーの入力。role = history 歴史的背景 |
レベル |
整数 |
重症度レベル0~3で、レベル0が最も重く、3が最も軽い。 |
リクエスト例
動画URLのアップロード
#视频理解示例、上传视频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)
動画のアップロード 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)
画像URLのアップロード
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)
画像のアップロード 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)
複数回のピクチャー・ダイアログ
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)
応答例
{
"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
}
}
ストリーミング出力
応答パラメーター
パラメータ名 |
類型論 |
パラメータの説明 |
アイドル |
ストリング |
タスクID |
作成 |
ロング |
リクエストの作成時間。Unixタイムスタンプを秒単位で指定する。 |
選択肢 |
リスト |
現在のダイアログのモデル出力内容 |
インデックス |
整数 |
結果の添え字 |
終了理由 |
ストリング |
モデル推論終了の理由。stop 推論の自然な終わりを表すか、ストップワードを誘発する。length はトークンの長さが上限に達したことを表す。sensitive セキュリティ監査インターフェースによって傍受されるモデル推論の内容を表す。network_error はモデル推論の異常を表す。 |
デルタ |
対象 |
モデルインクリメントが返すテキストメッセージ |
役割 |
ストリング |
現在のダイアログの役割、現在のデフォルトはアシスタント(モデル) |
内容 |
ストリング |
現在の対話の内容 |
使用状況 |
対象 |
このモデルによって呼び出されたトークンの数に関する統計 |
プロンプトトークン |
整数 |
ユーザーが入力したトークンの数 |
コンプリーション・トークン |
整数 |
モデルが出力したトークンの数 |
トークン |
整数 |
トークン合計 |
コンテンツフィルター |
リスト |
コンテンツ・セキュリティに関する情報に戻る |
役割 |
ストリング |
安全保障に関する発効リンクrole = assistant モデリング推論。role = user ユーザーの入力。role = history 歴史的背景 |
レベル |
整数 |
重症度レベル0~3で、レベル0が最も重く、3が最も軽い。 |
リクエスト例
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)
応答例
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}}