Baureihe GLM-4V
Die GLM-4V-Serie besteht aus 3 Modellen für unterschiedliche Anwendungsszenarien.
- GLM-4V-Plus: Bietet ein ausgezeichnetes multimodales Verständnis, kann bis zu 5 Bilder gleichzeitig verarbeiten und unterstützt das Verständnis von Videoinhalten für komplexe Multimedia-Analyseszenarien.
- GLM-4V: Es konzentriert sich auf das Verstehen von Bildinhalten und ist in der Lage, bis zu 5 Bilder gleichzeitig zu analysieren und eignet sich für Situationen, in denen ein tiefes Bildverständnis erforderlich ist.
- GLM-4V-Flash (kostenlos): Konzentriert sich auf effizientes Einzelbildverständnis für Szenarien mit schneller Bildauflösung, wie Echtzeit-Bildanalyse oder Stapelverarbeitung.
synchroner Aufruf
Schnittstellenanfrage
Typologie |
Anweisungen |
Übertragungsverfahren |
https |
Anfrageadresse |
https://open.bigmodel.cn/api/paas/v4/chat/completions |
Aufrufmethode |
Synchroner Aufruf, der darauf wartet, dass das Modell die Ausführung beendet und das Endergebnis zurückgibt oder SSE-Aufruf |
Zeichenkodierung |
UTF-8 |
Format der Schnittstellenanforderung |
JSON |
Antwortformat |
JSON oder Standard Stream Ereignis |
Art der Schnittstellenanforderung |
POST |
Entwicklungssprache |
Jede Entwicklungssprache, die http-Anfragen initiieren kann. |
Abfrageparameter
Name des Parameters |
Typologie |
Pflichtfeld |
Beschreibung der Parameter |
Modell |
Zeichenfolge |
sein |
Die Modellkodierung des Aufrufs. Modellcodes: glm-4v-plus , glm-4v, glm-4v-flash (frei) |
Nachrichten |
Liste |
sein |
Beim Aufruf des Sprachmodells wird eine Liste aktueller Dialognachrichten als Hinweis an das Modell übergeben, wobei die Parameter in Form von json-Arrays übergeben werden. Zum Beispiel der Parameter für das Videoverständnis:{ "role": "user", "content": [ { "type": "video_url", "video_url": { "url" : "https://xxx/xx.mp4" } }, { "type": "text", "text": "请仔细描述这个视频" } ] } Parameter des Bildverständnisses:{ "role": "user", "content": [ { "type": "image_url", "image_url": { "url" : "https://xxx/xx.jpg" } }, { "type": "text", "text": "解释一下图中的现象" } ] } Mögliche Nachrichtentypen sind Benutzermeldung, Assistentenmeldung. Siehe die Beschreibungen der Nachrichtenfelder unten. |
anfrage_id |
Zeichenfolge |
Verstopft |
Durch den Benutzer übergeben, müssen die Einzigartigkeit zu gewährleisten; verwendet, um zwischen der eindeutigen Identität der einzelnen Anfrage zu unterscheiden, der Benutzer nicht passieren die Plattform wird standardmäßig generiert werden. |
tun_probe |
Boolesche |
Verstopft |
Die Probenahmestrategie ist aktiviert, wenn do_sample true ist, und die Probenahmestrategien temperature und top_p werden nicht wirksam, wenn do_sample false ist. |
Strom |
Boolesche |
Verstopft |
Dieser Parameter sollte auf "Fasle" gesetzt oder weggelassen werden, wenn synchrone Aufrufe verwendet werden. Wenn er auf True gesetzt ist, gibt das Modell den gesamten Inhalt auf einmal zurück, nachdem es den gesamten Inhalt erzeugt hat. Wenn er auf True gesetzt ist, gibt das Modell den vom Modell generierten Inhalt in einem Standard-Ereignisstrom zurück, einen Block nach dem anderen, und am Ende des Ereignisstroms gibt es eindata: [DONE] Nachricht. |
Temperatur |
Schwimmer |
Verstopft |
Probentemperatur, Kontrolle der Zufälligkeit der Ausgabe, muss positiv sein Der Bereich der Werte ist:[0.0,1.0] Der Standardwert ist 0,8, je größer der Wert ist, desto zufälliger und kreativer ist die Ausgabe; je kleiner der Wert ist, desto stabiler oder sicherer ist die Ausgabe. Es wird empfohlen, den Wert je nach Anwendungsszenario anzupassen. top_p vielleicht temperature Parameter, aber nicht beide Parameter gleichzeitig einstellen |
top_p |
Schwimmer |
Verstopft |
Eine andere Methode der Probenahme mit der Temperatur, die so genannte Kernel-Probenahme Der Wertebereich ist:[0.0, 1.0] Der Standardwert ist 0,6 Modelle werden als top_p Wahrscheinlichkeitsmasse Token Ein Wert von 0,1 bedeutet beispielsweise, dass der Modelldecoder nur Token aus der Kandidatengruppe der Wahrscheinlichkeiten des früheren 10% berücksichtigt. Es wird empfohlen, das Modell an Ihr Anwendungsszenario anzupassen. top_p vielleicht temperature Parameter, aber nicht beide Parameter gleichzeitig einstellen |
max_tokens |
Integer |
Verstopft |
Maximale Modellausgabe-Token, Standardwert ist 1024, maximale Unterstützung 1024tokens. |
Benutzer_id |
Zeichenfolge |
Verstopft |
Eine eindeutige ID für den Endnutzer, die es der Plattform ermöglicht, bei Verstößen des Endnutzers, bei der Generierung illegaler und unerwünschter Informationen oder bei anderen missbräuchlichen Verhaltensweisen einzugreifen. ID-Länge: mindestens 6 Zeichen, maximal 128 Zeichen. |
Format der Meldungen
Zu den zulässigen Nachrichtentypen für das Modell gehören Benutzernachricht, Assistentennachricht, und das Format variiert für die verschiedenen Nachrichtentypen. Die Details sind wie folgt:
Benutzer-Nachricht
Name des Parameters |
Typologie |
Pflichtfeld |
Beschreibung der Parameter |
Rolle |
Zeichenfolge |
sein |
Die Rolleninformationen für die Nachricht sollten lautenuser |
Inhalt |
Liste |
sein |
Inhalt der Nachricht. |
Typ |
Zeichenfolge |
sein |
Texttyp: text Bildtyp: image_url Videotyp: video_url Video- und Bildtypen können nicht gleichzeitig eingegeben werden |
Text |
Zeichenfolge |
sein |
Ergänzend, wenn der Typ Text ist |
bild_url |
Objekt |
sein |
Wenn der Typ image_url ist, fügen Sie |
url |
Zeichenfolge |
sein |
Bild-URL oder base64-Kodierung. Die maximale Bildgröße beträgt weniger als 5M pro Bild und nicht mehr als 6000*6000 Pixel. Die Formate jpg, png und jpeg werden unterstützt. Hinweis: GLM-4V-Flash unterstützt keine base64-Kodierung. |
video_url |
Objekt |
sein |
Wenn der Typ video_url ist, muss der video_url-Parameter der erste sein, wenn nur glm-4v-plus Videoeingabe-Videoverständnis unterstützt. |
url |
Zeichenfolge |
sein |
Video url. Videogröße wird nur bis zu 20M unterstützt, Videodauer ist nicht länger als 30s. unterstützter Videotyp mp4. |
Assistentin Nachricht
Name des Parameters |
Typologie |
Pflichtfeld |
Beschreibung der Parameter |
Rolle |
Zeichenfolge |
sein |
Die Rolleninformationen für die Nachricht sollten lautenassistant |
Inhalt |
Zeichenfolge |
sein |
Nachricht |
Antwort-Parameter
Name des Parameters |
Typologie |
Beschreibung der Parameter |
id |
Zeichenfolge |
Aufgaben-ID |
erstellt |
Lang |
Die Erstellungszeit der Anfrage, die ein Unix-Zeitstempel in Sekunden ist. |
Modell |
Zeichenfolge |
Name des Modells |
Auswahlmöglichkeiten |
Liste |
Inhalt der Modellausgabe für den aktuellen Dialog |
Index |
Integer |
Ergebnis Teilstriche |
finish_reason |
Zeichenfolge |
Gründe für die Beendigung des Modelldenkens.stop Stellt das natürliche Ende der Argumentation dar oder löst ein Stoppwort aus.length bedeutet, dass die Obergrenze der Tokenlänge erreicht ist.sensitive Stellt den Inhalt der Modellinferenz dar, der von der Sicherheitsaudit-Schnittstelle abgefangen wird.network_error steht für Anomalien bei der Modellinferenz. |
Nachricht |
Objekt |
Vom Modell zurückgegebene Textnachricht |
Rolle |
Zeichenfolge |
Die Rolle des aktuellen Dialogs, derzeit standardmäßig der Assistent (Modell) |
Inhalt |
Liste |
Inhalt des aktuellen Dialogs |
Verwendung |
Objekt |
Gibt die Anzahl der Token für diesen Modellaufruf am Ende des Prozesses zurück. |
prompt_tokens |
Integer |
Anzahl der vom Benutzer eingegebenen Token |
abschluss_tokens |
Integer |
Anzahl der vom Modell ausgegebenen Token |
gesamt_tokens |
Integer |
Token insgesamt |
inhalt_filter |
Liste |
Zurück zu Informationen über die Sicherheit von Inhalten |
Rolle |
Zeichenfolge |
Verbindungen zum Inkrafttreten der Sicherheit, einschließlichrole = assistant Modellierung der Argumentation.role = user Benutzereingabe.role = history historischer Zusammenhang |
Ebene |
Integer |
Schweregrad 0-3, wobei der Schweregrad 0 der schwerste und 3 der am wenigsten schwere ist. |
Beispiel für einen Antrag
Video-URL hochladen
#视频理解示例、上传视频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)
Video hochladen 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)
Bild-URL hochladen
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)
Bild hochladen 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)
Mehrere Runden von Bilddialogen
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)
Beispielhafte Antwort
{
"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
}
}
Streaming-Ausgang
Antwort-Parameter
Name des Parameters |
Typologie |
Beschreibung der Parameter |
id |
Zeichenfolge |
Aufgaben-ID |
erstellt |
Lang |
Die Erstellungszeit der Anfrage, die ein Unix-Zeitstempel in Sekunden ist. |
Auswahlmöglichkeiten |
Liste |
Inhalt der Modellausgabe für den aktuellen Dialog |
Index |
Integer |
Ergebnis Teilstriche |
finish_reason |
Zeichenfolge |
Gründe für die Beendigung des Modelldenkens.stop Stellt das natürliche Ende der Argumentation dar oder löst ein Stoppwort aus.length bedeutet, dass die Obergrenze der Tokenlänge erreicht ist.sensitive Stellt den Inhalt der Modellinferenz dar, der von der Sicherheitsaudit-Schnittstelle abgefangen wird.network_error steht für Anomalien bei der Modellinferenz. |
delta |
Objekt |
Vom Modell-Inkrement zurückgegebene Textnachricht |
Rolle |
Zeichenfolge |
Die Rolle des aktuellen Dialogs, derzeit standardmäßig der Assistent (Modell) |
Inhalt |
Zeichenfolge |
Inhalt des aktuellen Dialogs |
Verwendung |
Objekt |
Statistik über die Anzahl der von diesem Modell aufgerufenen Token |
prompt_tokens |
Integer |
Anzahl der vom Benutzer eingegebenen Token |
abschluss_tokens |
Integer |
Anzahl der vom Modell ausgegebenen Token |
gesamt_tokens |
Integer |
Token insgesamt |
inhalt_filter |
Liste |
Zurück zu Informationen über die Sicherheit von Inhalten |
Rolle |
Zeichenfolge |
Verbindungen zum Inkrafttreten der Sicherheit, einschließlichrole = assistant Modellierung der Argumentation.role = user Benutzereingabe.role = history historischer Zusammenhang |
Ebene |
Integer |
Schweregrad 0-3, wobei der Schweregrad 0 der schwerste und 3 der am wenigsten schwere ist. |
Beispiel für einen Antrag
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)
Beispielhafte Antwort
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}}