当前位置: 首页 > news >正文

视觉理解与图片问答,学习如何使用 GPT-4o (GPT-4 Omni) 来理解图像

🍉 CSDN 叶庭云https://yetingyun.blog.csdn.net/


一、引言

OpenAI 最新发布的 GPT-4 Omni 模型,也被称为 GPT-4o,是一个多模态 AI 模型,旨在提供更加自然和全面的人机交互体验

GPT-4o 与 GPT-4 Turbo 都具备视觉功能,这意味着模型能够处理图片并回答相关问题,为用户提供更丰富、更直观的交互体验。历史上,语言模型系统主要局限于处理文本这一单一输入模式,这在很大程度上限制了如 GPT-4 等强大模型的应用范围。之前,该模型有时被称为 GPT-4V 或在 API 中以 gpt-4-vision-preview 的形式出现。然而,请留意,当前的 Assistants API 尚不支持图片输入功能。

在用户消息中支持传递图片。模型获取图片主要有两种方式:一是通过传递图片链接,二是直接在请求中传递 Base64 编码的图片

GPT-4 Vision 官方文档:https://platform.openai.com/docs/guides/vision,指导用户如何使用 GPT-4 的视觉功能:

  • GPT-4 视觉功能:介绍了 GPT-4 模型如何理解图片,以及如何通过 API 使用这项功能。API 还能够处理多个图片输入,并根据所有图片信息来回答问题。
  • 快速开始指南:提供了如何通过链接或直接在请求中传递 Base64 编码的图片来使用模型的方法。
  • 图片细节控制:通过设置细节参数(低、高或自动),可以控制模型如何处理图片并生成文本理解。
  • 图片处理限制:列出了模型在处理图片时的一些限制,例如:目前限制图片上传大小为每张 20MB、模型能够理解图片中的对象及其关系,但不适合精确空间定位或解读专业医学图像(例如 CT 扫描图像,高分辨率病理组织切片图像),以及可能无法正确理解非拉丁字母的文本等。
  • 成本计算:解释了图片输入如何按 token 计费,以及如何根据图片大小和细节选项确定 token 成本。

总的来说,GPT-4 的图片理解功能对开发者而言极为实用,可广泛应用于食物识别以提供营养指南、社交媒体内容分析、艺术品鉴赏和科学图表解读等多个领域。


二、代码示例

安装所需的依赖库:

pip install -U openai
pip install requests==2.29.0
pip install urllib3==1.25.11

示例 1:使用图片 URL,以及英文 Prompt。

👇 测试图片如下所示,图片的链接为:https://s3.bmp.ovh/imgs/2024/06/22/88ba888d9fddda32.jpg

在这里插入图片描述

图片来源:UniST: A Prompt-Empowered Universal Model for Urban Spatio-Temporal Prediction

👇 Python 代码如下:

import base64
import requests
from openai import OpenAIclient = OpenAI(api_key="sk-your_api_key",base_url="https://api.openai.com/v1",
)prompt = "Your task is to describe the content and details of this image in detail. Then explain what this image means."
image_url = "https://s3.bmp.ovh/imgs/2024/06/22/88ba888d9fddda32.jpg"
messages_template = [{"role": "user","content": [{"type": "text", "text": prompt},{"type": "image_url", "image_url": {"url": image_url, "detail": "auto"}},],}
]
response = client.chat.completions.create(model="gpt-4o",messages=messages_template,n=1,max_tokens=1024,temperature=0,seed=42,
)
# print(response.json())
result = response.choices[0].message.content
print(result)

👇 生成结果如下:

The image is a conceptual diagram illustrating the transition from using multiple separate models to a unified model for handling diverse spatiotemporal (ST) data. Here is a detailed description of the content and its meaning:

Content Description:

  1. Left Section (Separate Models):

    • This section shows multiple neural network diagrams, each representing a separate model. These models are depicted as traditional neural networks with interconnected nodes and layers.
    • Each model is associated with an arrow pointing towards the central section, indicating that each model is designed to handle specific types of data.
  2. Central Section (Diverse ST Data):

    • This section contains various images representing different types of spatiotemporal data:
      • The first image appears to be a heatmap or density map.
      • The second image shows a map with data points or clusters.
      • The third image is a cityscape with some form of wireless communication overlay.
      • The fourth image shows bicycles, likely indicating bike-sharing data.
      • The fifth image is a map with routes or paths, possibly representing transportation networks.
      • The sixth image shows a 5G network symbol, indicating telecommunications data.
      • The seventh image depicts taxis, likely representing taxi service data.
      • The eighth image shows industrial smokestacks, indicating pollution or environmental data.
  3. Right Section (One-for-All Model):

    • This section shows a single neural network diagram labeled “UniST,” representing a unified model.
    • An arrow points from the diverse ST data to this unified model, indicating that this single model is designed to handle all types of spatiotemporal data.

Meaning:

The image illustrates the concept of moving from multiple specialized models to a single, unified model for processing diverse spatiotemporal data. Traditionally, different types of spatiotemporal data (such as traffic patterns, environmental data, telecommunications data, etc.) would require separate models, each tailored to the specific characteristics of the data. This approach can be resource-intensive and complex to manage.

The “One-for-All” model, labeled as “UniST,” represents a more efficient and streamlined approach. This unified model is designed to handle various types of spatiotemporal data within a single framework. The benefits of such a model include reduced complexity, improved scalability, and potentially better performance due to the shared learning across different data types.

In summary, the image conveys the transition from using multiple specialized models to a single, versatile model capable of handling a wide range of spatiotemporal data, thereby simplifying the modeling process and enhancing efficiency.

示例 2:本地多张图片,上传 Base64 编码的图片,以及中文 Prompt。

上传 Base64 编码的图片。若你本地有图片,无论是单张还是多张,都可以将其转换为 Base64 编码格式,然后传给模型。

多图输入:Chat Completions API 能够接收并处理多个图片输入,无论是 Base64 编码格式还是图片 URL。该模型将一同处理每张图片,并使用所有图片的信息来回答问题。

👇 测试的两张图片如下所示:

在这里插入图片描述

图片一来源:https://news.yxrb.net/2024/0621/4254.html

图片二来源:https://s3.bmp.ovh/imgs/2024/06/22/88ba888d9fddda32.jpg

👇 Python 代码如下:

import os
import base64
import requestsdef encode_image(image_path):"""对图片文件进行 Base64 编码输入:- image_path:图片的文件路径输出:- 编码后的 Base64 字符串"""# 二进制读取模式打开图片文件,with open(image_path, "rb") as image_file:# 将编码后的字节串解码为 UTF-8 字符串,以便于在文本环境中使用。return base64.b64encode(image_file.read()).decode("utf-8")# 中文 Prompt 指令
prompt = ("你的任务是详细描述图片包含的内容和细节。进而解释图片的含义。"
)
# 对本地多张图片进行 Base64 编码
images = os.listdir("./images")
images.sort()
print(images)
base64_images = [encode_image("./images/" + image) for image in images]
# 组织用户消息
user_content = [{"type": "text", "text": prompt}]
base64_images = [{"type": "image_url","image_url": {"url": f"data:image/jpeg;base64,{base64_image}","detail": "high",},}for base64_image in base64_images
]
user_content.extend(base64_images)
messages_template = [{"role": "user", "content": user_content}]
# 构造请求参数
payload = {"model": "gpt-4o","messages": messages_template,"max_tokens": 1600,"temperature": 0,"seed": 2024,
}
# OpenAI API Key
api_key = "sk-your_api_key"
# 请求头
headers = {"Content-Type": "application/json", "Authorization": f"Bearer {api_key}"}
# 发送 POST 请求
response = requests.post("https://api.chatanywhere.com.cn/v1/chat/completions",headers=headers, json=payload
)
# 打印生成结果
print(response.json())
result = response.json()["choices"][0]["message"]["content"]
print(result)

👇 生成结果如下:

图片一:游戏《王者荣耀国际服》登顶苹果商店免费游戏排行榜

内容和细节描述:
  1. 背景和主题

    • 图片的背景是橙色和白色的渐变,带有一些抽象的图案。
    • 左上角有 “Honor of Kings” 的标志,表明这是关于《王者荣耀》的内容。
  2. 主要人物形象

    • 图片左侧有一个穿着红色和白色服装的女性角色,手持长棍,姿势英姿飒爽,显得非常有力量和自信。
  3. 文字信息

    • 图片顶部有大字标题:“《王者荣耀国际服》登顶苹果商店免费游戏排行榜”。
    • 下面列出了多个国家和地区的名称,如“印尼/马来/菲律宾/柬埔寨/缅甸/老挝/新加坡/文莱/美国/加拿大/澳大利亚/新西兰/秘鲁/玻利维亚”,表明该游戏在这些地区的苹果商店中排名第一。
  4. 排行榜截图

    • 右侧有一个苹果商店排行榜的截图,显示《Honor of Kings》在免费游戏排行榜中排名第一。
    • 下面有一个 “Download on the App Store” 的按钮,提示用户可以在苹果商店下载该游戏。
图片含义:

这张图片主要是宣传《王者荣耀国际服》在多个国家和地区的苹果商店免费游戏排行榜中登顶,展示了该游戏的全球受欢迎程度和影响力。通过展示排行榜截图和游戏角色形象,吸引更多玩家下载和体验这款游戏。

图片二:UniST 模型的概念图

内容和细节描述:
  1. 左侧:Separate Models

    • 左侧有多个独立的神经网络模型图示,表示传统方法中针对不同数据集使用不同的模型。
  2. 中间:Diverse ST Data

    • 中间部分展示了多种时空数据(ST Data)的图片,包括:
      • 热力图
      • 城市夜景
      • 自行车共享系统
      • 5G 网络
      • 出租车
      • 工业排放
    • 这些图片展示了不同类型的时空数据,表明数据的多样性。
  3. 右侧:One-for-All Model

    • 右侧展示了一个统一的神经网络模型,标注为 “UniST”。
    • 这个模型整合了所有不同类型的数据,形成一个 “一体化” 的模型。
图片含义:

这张图片展示了一个名为 “UniST” 的统一模型的概念。传统方法中,不同类型的时空数据需要使用不同的模型进行处理,而 UniST 模型则能够整合多种不同类型的数据,形成一个通用的模型。这种方法可以提高模型的泛化能力和处理效率,适用于多种时空数据的分析和预测。


三、总结

总的来说,GPT-4o 在回答图片中存在什么这样的一般性问题上表现卓越。虽然它能理解图片中物体间的关联,但尚未能精确回答涉及物体具体位置的详细问题。例如,询问车辆的颜色或基于冰箱内容提供晚餐建议,GPT-4o 基本都能应对自如。然而,若展示一个房间图片并询问椅子位置,它可能无法给出准确答案。因此,在探索视觉理解应用时,务必考虑到模型的这些局限性

注意:GPT-4 虽配备视觉功能,功能强大且适用广泛,但了解其局限性同样关键。以下是模型已知的一些局限:

  • 在医学图片方面,该模型不适宜解读专业的 CT 扫描、病理组织切片等医学图像,故不宜用于医疗建议。
  • 对于非英语文本,如日语或韩语等含有非拉丁字母的图片,模型可能无法发挥最佳性能。
  • 放大图片文本以提高可读性时,需避免裁剪重要细节。
  • 模型在处理旋转或颠倒的文本 / {/} /图片时,可能产生误解。
  • 当图形或文本中的颜色、样式(如实线、虚线、点线)各异时,模型可能难以准确理解。
  • 在需要精确空间定位的任务(如棋盘位置识别)上,模型表现不佳。
  • 某些情况下,模型可能会生成错误的描述或标题。
  • 模型在处理全景和鱼眼图片时存在一定困难。
  • 模型不处理原始文件名或元数据,且在分析前会调整图片大小,可能影响其原始尺寸。
  • 对于图片中的对象计数,模型可能仅能提供大致数量(可能不准确)。
  • 出于安全考虑,OpenAI 实施了一个系统来阻止提交验证码图片。

常见问题解答

我可以微调 gpt-4 的视觉功能吗?
不能,目前不支持微调 gpt-4 的视觉功能。

我可以使用 gpt-4 来生成图片吗?
不能,但其实你可以使用 dall-e-3 来生成图片,再使用 gpt-4o 或 gpt-4-turbo 来理解图片。

我可以上传哪种类型的文件?
目前支持 PNG(.png)、JPEG(.jpeg 和 .jpg)、WEBP(.webp)和非动画 GIF(.gif)。

上传的图片大小有限制吗?
是的,目前限制图片上传大小为每张 20MB

我可以删除我上传的图片吗?
不能,OpenAI 声明会在模型处理完图片后自动为你删除。

我在哪里可以了解更多关于 GPT-4 与视觉方面的注意事项?
你可以在 GPT-4 带视觉系统卡中找到 OpenAI 的评估、准备和缓解工作的详细信息。OpenAI 进一步实施了一个系统,以阻止提交验证码图片。

带视觉功能的 GPT-4 的速率限制是如何工作的?
OpenAI 在 token 级别处理图片,所以其处理的每张图片都会计入你的每分钟 token(TPM)限制。有关用于确定每张图片 token 计数的公式的详细信息,请参见计算成本部分。

带视觉功能的 GPT-4 可以理解图片元数据吗?
不能,模型不接收图片元数据。

如果我的图片不清晰会怎么样?
如果一张图片模糊不清,模型会尽力解释它。但是,结果可能不那么准确。一个好的经验法则是,如果一个普通人在低 / {/} /高分辨率模式下看不清图片中的信息,那么模型也同样看不清。


📚️ 相关链接:

  • 「视觉版」GPT-4 Turbo 重磅升级!ChatGPT 40 条消息限制或取消

  • AI 洞察|GPT-4o 震撼登场,点燃中国大模型的创新火花

相关文章:

视觉理解与图片问答,学习如何使用 GPT-4o (GPT-4 Omni) 来理解图像

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、引言 OpenAI 最新发布的 GPT-4 Omni 模型,也被称为 GPT-4o,是一个多模态 AI 模型,旨在提供更加自然和全面的人机交互体验。 GPT-4o 与 GPT-4 Turbo 都具备视觉功…...

【LocalAI】(13):LocalAI最新版本支持Stable diffusion 3,20亿参数图像更加细腻了,可以继续研究下

最新版本v2.17.1 https://github.com/mudler/LocalAI/releases Stable diffusion 3 You can use Stable diffusion 3 by installing the model in the gallery (stable-diffusion-3-medium) or by placing this YAML file in the model folder: Stable Diffusion 3 Medium 正…...

云计算【第一阶段(19)】磁盘管理与文件系统 LVM与磁盘配额(二)

目录 一、LVM概述 1.1、LVM机制的基本概念 ​编辑 1.2、LVM的管理命令 1.3、lvm存储 两种机制 1.4、lvm应用实例 二、磁盘配额概述 2.1、设置磁盘配额 2.2.1、实现磁盘限额的条件 2.2.2、linux磁盘限额的特点 2.2.3、磁盘配额管理 一、LVM概述 1.1、LVM机制的基本概…...

基于C++实现的EventLoop与事件驱动编程

一,概念介绍 事件驱动编程(Event-Driven)是一种编码范式,常被应用在图形用户界面,应用程序,服务器开发等场景。 采用事件驱动编程的代码中,通常要有事件循环,侦听事件,…...

Android高级面试_8_热修补插件化等

Android 高级面试:插件化和热修复相关 1、dex 和 class 文件结构 class 是 JVM 可以执行的文件类型,由 javac 编译生成;dex 是 DVM 执行的文件类型,由 dx 编译生成。 class 文件结构的特点: 是一种 8 位二进制字节…...

显卡GTX与RTX有什么区别?哪一个更适合玩游戏?

游戏发烧友们可能对游戏显卡并不陌生,它直接关系到游戏画面的流畅度、细腻程度和真实感。在众多显卡品牌中,英伟达的GTX和RTX系列显卡因其出色的性能而备受关注。 一、GTX与RTX的区别 架构差异 GTX系列显卡采用的是Pascal架构,这是英伟达在…...

QT自定义信号和槽函数

在QT中最重要也是必须要掌握的机制,就是信号与槽机制,在MFC上也就是类型的机制就是消息与响应函数机制 在QT中我们不仅要学会如何使用信号与槽机制,还要会自定义信号与槽函数,要自定义的原因是系统提供的信号,在一些情…...

Atcoder Beginner Contest 359

传送门 A - Count Takahashi 时间限制:2秒 内存限制:1024MB 分数:100分 问题描述 给定 N 个字符串。 第 i 个字符串 () 要么是 Takahashi 要么是 Aoki。 有多少个 i 使得 等于 Takahashi ? 限制 N 是整数。每个…...

无线通讯几种常规天线类别简介

天线对于无线模块来说至关重要,合适的天线可以优化通信网络,增加其通信的范围和可靠性。天线的选型对最后的模块通信影响很大,不合适的天线会导致通信质量下降。针对不同的市场应用,天线的材质、安置方式、性能也大不一样。下面简…...

最大团问题--回溯法

一、相关定义 给定一个无向图 ,其中 V 是图的顶点集,E图的边集 完全图:如果无向图中的任何一对顶点之间都有边,这种无向图称为完全图 完全子图:给定无向图 ,如果 ,且对应任意 且 ,则…...

MBSE之简单介绍

MBSE之简单介绍 文章目录 MBSE之简单介绍1. What is MBSE?2. MBSE 最佳实践 1. What is MBSE? Model-Based Systems Engineering (MBSE), a.k.a. Model-Based Systems Development (MBSD), is a Systems Engineering process paradigm that emphasizes t…...

基于ODPS解析字段值为JSON的情况

最近在使用ODPS数据库,其中一个字段他是用JSON存储的,但是我是需要JSON字符串中的一个属性值就行,刚好ODPS中有一个函数可以用来使用! 使用案例 select GET_JSON_OBJECT({"id":1,"name":"xiaobai"},$.name);…...

CesiumJS【Basic】- #020 加载glb/gltf文件(Primitive方式)

文章目录 加载glb/gltf文件(Primitive方式)1 目标2 代码实现3 资源文件加载glb/gltf文件(Primitive方式) 1 目标 使用Primitive方式加载glb/gltf文件 2 代码实现 import * as Cesium from "cesium";const viewer = new Cesium.Viewer...

2024黑盾杯复现赛题MISC部分

一、一个logo 一张png图片,查看颜色通道即可发现flag 二、 学会Office 最好用联想自带的excel工具查看,我用WPS打开未解出题目 这里会发现有隐藏信息 隐藏信息为宏加密 。去百度了解宏加密后,发现有俩个宏,一个加密一个解密 执…...

Linux0.12内核源码解读(5)-head.s

大家好,我是呼噜噜,好久没有更新old linux了,本文接着上一篇文章图解CPU的实模式与保护模式,继续向着操作系统内核的世界前进,一起来看看heads.s as86 与GNU as 首先我们得了解一个事实,在Linux0.12内核源…...

刷代码随想录有感(119):动态规划——打家劫舍III(树形dp)

题干&#xff1a; 代码&#xff1a; class Solution { public:vector<int>dp(TreeNode* cur){if(cur NULL)return vector<int>{0, 0};vector<int> left dp(cur -> left);vector<int> right dp(cur -> right);//偷int val1 cur -> val l…...

vivado CARRY_REMAP、CASCADE_HEIGHT

CARRY_REMAP opt_design-carry_remap选项可用于将单个carry*单元重新映射到LUT中 提高了布线的设计效果。使用-carry_remap选项时&#xff0c;仅 将单级进位链转换为LUT。CARRY_REMAP属性允许您 指定在优化过程中要转换的长度较大的进位链。 您可以使用控制任意长度的单个进位链…...

Ubuntu磁盘分区和挂载 虚拟机扩容 逻辑卷的创建和扩容保姆及教程

目录 1、VMware虚拟机Ubuntu20.04系统磁盘扩容 2、Linux的磁盘分区和挂载 3、创建逻辑卷和逻辑卷的扩容 1、VMware虚拟机Ubuntu20.04系统磁盘扩容 通过下图可以看出我们的根磁盘一共有20G的大小&#xff0c;现在我们把它扩容为30G 注&#xff1a;如果你的虚拟机有快照是无…...

【附精彩文章合辑】哈佛辍学小哥的创业经历【挑战英伟达!00 后哈佛辍学小哥研发史上最快 AI 芯片,比 H100 快 20 倍!】

前情提要 https://blog.csdn.net/weixin_42661676/article/details/140020491 哈佛辍学小哥的创业经历 一、背景与起步 这位哈佛辍学小哥&#xff0c;名为Chris Zhu&#xff0c;是一位华裔学生&#xff0c;他在2020年进入哈佛大学&#xff0c;攻读数学学士学位和计算机科学硕…...

Oracle CPU使用率过高问题处理

1.下载Process Explorer 2.打开Process Explorer&#xff0c;查看CPU使用情况最高的进程 3.双击该进程&#xff0c;查看详情 \ 4. 获取cpu使用最好的线程tid 5. 查询sql_id select sql_id from v$session where paddr in( select addr from v$process where spid in(1…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...