赞
踩
GPT-4 with Vision(gpt-4-vision-preview),有时称为 GPT-4V 或视觉 API,允许模型接收图片并回答与之相关的问题。从历史上看,语言模型系统一直受限于只接受单一的输入模态,即文本。对于许多用例,这限制了像 GPT-4 这样的模型可以使用的领域。
GPT-4 with vision(gpt-4-vision-preview) 目前可供所有具有 GPT-4 访问权限的开发人员使用,可以通过模型和已更新以支持图片输入的 Chat Completions API 进行访问。请注意, Assistants API 目前不支持图片输入。
需要注意以下几点:
可以通过两种主要方式将图片提供给模型:网络图片链接或 图片的base64 编码。图片可以在消息中传递。目前,我们不支持第一条消息中的图片,但将来可能会更改。
- from openai import OpenAI
-
- client = OpenAI()
-
- response = client.chat.completions.create(
- model="gpt-4-vision-preview",
- messages=[
- {
- "role": "user",
- "content": [
- {"type": "text", "text": "What’s in this image?"},
- {
- "type": "image_url",
- "image_url": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
- },
- },
- ],
- }
- ],
- max_tokens=300,
- )
-
- print(response.choices[0])

该模型最擅长回答有关图片中存在的内容的一般问题。虽然它确实了解图片中对象之间的关系,但它尚未优化以回答有关图片中某些对象位置的详细问题。例如,你可以根据冰箱里的东西问它,晚餐的一些想法是什么,但如果你给它看一个房间的图片,并问它椅子在哪里,它可能无法正确回答问题。
如果本地有一个图片或一组图片,则可以将它们以 base 64 编码格式传递到模型,下面是一个运行示例:
- import base64
- import requests
-
- # OpenAI API Key
- api_key = "YOUR_OPENAI_API_KEY"
-
- # Function to encode the image
- def encode_image(image_path):
- with open(image_path, "rb") as image_file:
- return base64.b64encode(image_file.read()).decode('utf-8')
-
- # Path to your image
- image_path = "path_to_your_image.jpg"
-
- # Getting the base64 string
- base64_image = encode_image(image_path)
-
- headers = {
- "Content-Type": "application/json",
- "Authorization": f"Bearer {api_key}"
- }
-
- payload = {
- "model": "gpt-4-vision-preview",
- "messages": [
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What’s in this image?"
- },
- {
- "type": "image_url",
- "image_url": {
- "url": f"data:image/jpeg;base64,{base64_image}"
- }
- }
- ]
- }
- ],
- "max_tokens": 300
- }
-
- response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
-
- print(response.json())
-

聊天对话 API 能够接收和处理 多个 “base64 编码格式” 或 “图片网址” 的图片输入。该模型将处理每张图片,并使用来自所有图片的信息来回答问题。
- from openai import OpenAI
-
- client = OpenAI()
- response = client.chat.completions.create(
- model="gpt-4-vision-preview",
- messages=[
- {
- "role": "user",
- "content": [
- {
- "type": "text",
- "text": "What are in these images? Is there any difference between them?",
- },
- {
- "type": "image_url",
- "image_url": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
- },
- },
- {
- "type": "image_url",
- "image_url": {
- "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
- },
- },
- ],
- }
- ],
- max_tokens=300,
- )
- print(response.choices[0])
-

在这里,模型显示了同一图片的两个副本,并且可以独立回答有关两个或每个图片的问题。
通过控制参数(具有两个选项low和high)或 ,您可以控制模型如何处理图片并生成其文本理解。
与 Google 助理 API 不同,聊天完成 API 不是有状态的。这意味着您必须自己管理传递给模型的消息(包括图片)。如果要多次将同一图片传递给模型,则必须在每次向 API 发出请求时传递图片。
对于长时间运行的对话,我们建议通过 URL 而不是 base64 传递图片。还可以通过提前缩小图片大小以小于预期的最大大小来改善模型的延迟。对于低分辨率模式,我们期望图片为 512 像素 x 512 像素。对于高静止模式,图片的短边应小于 768 像素,长边应小于 2,000 像素。
模型处理图片后,将从 OpenAI 服务器中删除该图片,并且不会保留。我们不会使用通过 OpenAI API 上传的数据来训练我们的模型。
虽然具有视觉功能的 GPT-4 功能强大,可用于多种情况,但了解该模型的局限性很重要。以下是我们注意到的一些限制:
图片输入以令牌计量和收费,就像文本输入一样。给定图片的令牌成本由两个因素决定:其大小和每个image_url块上的选项。所有图片每张花费 85 个代币。 首先将图片缩放以适合 2048 x 2048 正方形,保持其纵横比。然后,对它们进行缩放,使图片的最短边长 768 像素。最后,我们计算图片由多少个 512px 的正方形组成。每个方块花费 170 个代币。另外 85 个代币总是添加到最终总数中。detaildetail: lowdetail: high
以下是演示上述内容的一些示例。
不可以,我们目前不支持微调图片功能。gpt-4
不,您可以使用它来生成图片和理解图片。dall-e-3gpt-4-vision-preview
我们目前支持 PNG (.png)、JPEG(.jpeg 和 .jpg)、WEBP (.webp) 和非动画 GIF (.gif)。
是的,我们将每张图片上传的图片限制为 20MB。
不会,我们会在模型处理图片后自动为您删除图片。
您可以在 GPT-4 with Vision 系统卡中找到有关我们的评估、准备和缓解工作的详细信息。
我们进一步实施了一个系统来阻止提交验证码。
我们在令牌级别处理图片,因此我们处理的每个图片都计入每分钟令牌数 (TPM) 限制。有关用于确定每个图片的令牌计数的公式的详细信息,请参阅计算成本部分。
否,模型不接收图片元数据。
如果图片模棱两可或不清晰,模型将尽最大努力对其进行解释。但是,结果可能不太准确。一个好的经验法则是,如果普通人无法以低/高分辨率模式使用的分辨率看到图片中的信息,那么模型也无法看到。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。