探索AI前沿:本地部署GPT-4o,打造专属智能助手!

目录

1、获取API_key

2、开始调用

3、openai连接异常

4、解决方法:

5、调用GPT-4o


1、获取API_key

这里就不多赘述了,大家可以参考下面这篇博客

怎么获取OpenAI的api-key【人工智能】icon-default.png?t=N7T8https://blog.csdn.net/qq_51625007/article/details/137632747

2、开始调用

有了第一步的API_key,就可以直接调用GPT-4o,不说废话,直接上代码

import base64
from PIL import Image
import os
import io
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv('.env')

# 这一步很关键
import os
os.environ["http_proxy"] = "http://localhost:51121"
os.environ["https_proxy"] = "http://localhost:51121"

client = OpenAI(api_key='sk-xxxxxxxxxx')

def encode_image(image):
    buffered = io.BytesIO()
    image.save(buffered, format=image.format)
    return base64.b64encode(buffered.getvalue()).decode('utf-8')


def extract_image(query, image_file=None):
    messages = [{"role": "user", "content": [{"type": "text", "text": query}]}]

    if image_file is not None:
        image = Image.open(image_file)
        base64_image = encode_image(image)
        image_message = {
            "type": "image_url",
            "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}
        }
        messages[0]["content"].append(image_message)

    response = client.chat.completions.create(
        model="gpt-4o",
        messages=messages,
        max_tokens=1024
    )
    return response.choices[0].message.content

if __name__ == "__main__":
    result = extract_image(query="图中有什么?",image_file="./截图20240621225613.png")
    print(result)

3、openai连接异常

raise APIConnectionError(request=request) from err openai.APIConnectionError

报错解释:

openai.APIConnectionError 是 OpenAI 的 Python 客户端在尝试连接到 OpenAI 服务器时遇到问题时抛出的异常。这通常表明客户端无法建立与服务器的连接,可能是由于网络问题、服务器宕机、API 密钥无效或过期等原因造成的。

解决方法:

  1. 检查网络连接:确保你的设备可以正常访问互联网。

  2. 检查 OpenAI 服务状态:访问 OpenAI 的官方网站或状态监控页面,查看是否有服务中断或维护通知。

  3. 检查 API 密钥:确保你使用的 API 密钥有效且未过期。

  4. 代理设置:如果你使用代理连接到互联网,确保你的代理设置正确配置,并且代理服务器运行正常。

逐个问题排查,最终确定是代理设置问题

4、解决方法:

本文是在window11中执行:

按照----->设置----->网络和Internet----->代理----->打开代理即可

点击设置:代理IP地址和端口(这里每个人的电脑端口可能不一样),将这两个在代码里指定如下:localhost或者127.0.0.1都可以!

但是如果只设置这两个可能还不行,需要再增加一个load_doten使用.env文件去设置环境变量,将OPEN_API_KEY的值保存在.env文件中。

pip install python-dotenv #安装
# 这一步很关键
import os
from dotenv import load_dotenv
load_dotenv('.env')
os.environ["http_proxy"] = "http://localhost:51121"
os.environ["https_proxy"] = "http://localhost:51121"

5、调用GPT-4o

prompt="图中有什么?"

图中是一本讲解编程或计算机科学相关内容的书籍的某个页面。页面标题为“第2章 语言可用性的强化”,并且讨论了“空值”以及在C++中的使用。页面的内容包括以下几部分:

1. **章节标题**:
   ```
   第2章 语言可用性的强化
   ```

2. **小节标题**:
   ```
   2.1 常量
   nullptr
   ```

3. **文本说明和代码片段**:
   - 文中详细讲解了nullptr的背景与使用。
   - 提到了传统C++中的NULL以及其在现代C++中的替代 `nullptr`。
   - 展示了代码示例,演示了如何使用 `nullptr` 避免一些常见的错误。
   - 包含了多个C++代码片段,例如:
     ```cpp
     char *ch = NULL;
     void foo(char*);
     void foo(int);
     foo(NULL);
     #include <iostream>
     #include <type_traits>
     void foo(char*);
     void foo(int);
     int main() {
         if (std::is_same<decltype(NULL), decltype(0)>::value)
             std::cout << "NULL == 0" << std::endl;
         if (std::is_same<decltype(NULL), decltype((void*)0)>::value)
             std::cout << "NULL == (void *)0" << std::endl;
         if (std::is_same<decltype(NULL), std::nullptr_t>::value)
             std::cout << "NULL == nullptr" << std::endl;
     }
     ```

4. **页面底部的页码**:
   ```
   12
   ```

以上就是该页面的主要内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/731789.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

大数据与java哪个好找工作?这篇文章帮你做选择!

大数据与java哪个好找工作&#xff1f;这篇文章帮你做选择&#xff01; 还在为选择Java开发还是Java大数据而头疼吗&#xff1f;别担心&#xff0c;本文将从就业前景、学习方向、学习内容以及薪资待遇四个方面&#xff0c;为你揭开Java和Java大数据的神秘面纱&#xff0c;帮你做…

ZW3D二次开发_删除草图中的实体

1.目前草图中的实体不能直接通过id删除&#xff0c;而是通过entityPath实体路径&#xff0c;所以需要将id转化为实体路径。 2.以下示例代码的主要功能为获取草图中的所有实体并删除&#xff1a; int Count;int *idEnts;ZF_CALL(cvxSkInqGeom(&Count, &idEnts));//获取…

《窄门》情不知所起,而一往情深

《窄门》情不知所起&#xff0c;而一往情深 安德烈纪德&#xff08;1869-1951&#xff09;&#xff0c;法国作家。纪德一生著有小说、剧本、论文、散文、日记、书信多种&#xff0c;主要作品有小说《背德者》《窄门》《田园交响曲》《伪币制造者》等&#xff0c;戏剧《康多尔王…

x64汇编fastcall调用约定

x64汇编环境&#xff1a;只需要在x86基础上对项目属性进行设置&#xff0c;将平台设置为所有平台&#xff1b; 以及在将debug改为x64模式即可&#xff1a; 后续写完代码直接生成项目再使用本地调试器进行运行即可。 fastcall调用约定 在x64架构下&#xff0c;fastcall调用约定…

android倒计时封装(活动进入后台,倒计时依然能正常计时)

public class TimeUtils { /倒计时时长 单位&#xff1a;秒/ public static int COUNT 20*60; /当前做/ private static int CURR_COUNT 0; /预计结束的时间/ private static long TIME_END 0; /计时器/ private static Timer countdownTimer; /显示倒计时的textVi…

大数据学习-大数据介绍

意义 从海量的数据中分析出海量数据背后的价值 需要分析海量的数据&#xff0c;就需要存储、计算和分析 那就需要分布式多台计算机合适的工具来处理数据 工具 特点 大数据的核心工作&#xff1a;从海量的、高增长的、多类别的、信息密度低的数据中挖掘出高质量的结果 数据存储…

STM32通过SPI软件读写W25Q64

文章目录 1. W25Q64 2. 硬件电路 3. W25Q64框架图 4. 软件/硬件波形对比 5. 代码实现 5.1 MyI2C.c 5.2 MyI2C.h 5.3 W25Q64.c 5.4 W25Q64.h 5.5 W25Q64_Ins.h 5.6 main.c 1. W25Q64 对于SPI通信和W25Q64的详细解析可以看下面这篇文章 STM32单片机SPI通信详解-CSDN博…

开发中遇到的一个bug

遇到的报错信息是这样的&#xff1a; java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [hm-api,hm-common,hm-service] are excluded from annotation processing 翻译过来就是存在循环引用的情况&#xff0c;导…

C++进阶之AVL树

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言进阶 数据结构初阶 Linux C初阶 C进阶​ ​​​​算法 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂 目录 一.前言 二.插入 三.旋转 3.1右旋 …

postman国内外竞争者及使用详解分析

一、postman简介 Postman 是一款广泛使用的 API 开发和测试工具&#xff0c;适用于开发人员和测试人员。它提供了一个直观的界面&#xff0c;用于发送 HTTP 请求、查看响应、创建和管理 API 测试用例&#xff0c;以及自动化 API 测试工作流程。以下是 Postman 的主要功能和特点…

Docker常用操作和命令

文章目录 1、卸载旧版本 2、yum安装Docker CE&#xff08;社区版&#xff09; 3、添加镜像加速器 4、docker --version 查看docker版本 5、docker info 或 docker system info 显示 Docker 系统的详细信息&#xff0c;包括容器、镜像、网络等 6、docker search 搜索镜像 …

JVM类加载器与双亲委派机制

通过上一篇Java的类加载机制相信大家已经搞明白了整个类加载从触发时机&#xff0c;接着我们就来看下类加载器&#xff0c;因为类加载机制是有加载器实现的。 类加载器的分类 启动类加载器 Bootstrap ClassLoader 是 Java 虚拟机&#xff08;JVM&#xff09;的一部分&#x…

C#调用OpenCvSharp实现图像的直方图均衡化

本文学习基于OpenCvSharp的直方图均衡化处理方式&#xff0c;并使用SkiaSharp绘制相关图形。直方图均衡化是一种图像处理方法&#xff0c;针对偏亮或偏暗的图像&#xff0c;通过调整图像的像素值来增强图像对比度&#xff0c;详细原理及介绍见参考文献1-4。   直方图均衡化第…

【中学教资科目二】02中学课程

02中学课程 第一节 课程概述1.1 课程的分类 第二节 课程组织2.1 课程内容的文本表现形式2.2 课程评价 第三节 基础教育课程改革3.1 基础教育改革的目标3.2 新课改的课程结构 第一节 课程概述 1.1 课程的分类 学校课程有多种类型&#xff0c;其中最利于学生系统掌握人类所取得的…

多维表格/业务库表格大数据量性能瓶颈

先说最终结论&#xff1a;Angular 组件创建性能损耗是当下主要的性能瓶颈 理由&#xff1a; 基于以往编辑器性能优化的经验&#xff0c;编辑器在动态渲染内容时会创建很多壳子组件&#xff08;也就是Angular 组件&#xff09;&#xff0c;排查的时候就发现如果略这些壳子组件性…

mysql--安装跳过验证修改密码安全加固

安装mysql 配置mysql的yum源 [rootVM-0-14-rockylinux ~]# tee /etc/yum.repos.d/mysql.repo << EOF > [MYSQL] > namemysql > baseurlhttps://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64 > gpgcheck0 > EOF yum安装mysq…

海南聚广众达电子商务咨询有限公司抖音电商新标杆

在数字经济的浪潮中&#xff0c;抖音电商正成为一股不可忽视的力量。海南聚广众达电子商务咨询有限公司&#xff0c;作为专注于抖音电商服务的领军企业&#xff0c;凭借其专业的团队和创新的思维&#xff0c;不断助力商家在抖音平台上实现商业价值的最大化。 海南聚广众达电子…

【ai】tx2-nx:Yolo V4 直接安装与 测试

Yolo V4环境搭建 git clone https://github.com/AlexeyAB/darknet.gitcuda版本和路径也要改成我们的实际版本和路径,否则会编译失败 编译 sudo make nvidia@tx2-nx:~/twork/02_yolov4/darknet$ vi Makefile nvidia@tx2-nx:~/twork/02_yolov4/darknet$ sudo make [sudo

众爱宠物开源项目介绍

众爱宠物管理系统是一个集会员管理、宠物管理、商品管理、库存管理、数据管理、收银管理、多门店管理等功能于一体的综合管理系统&#xff0c;具有操作方便、简单、安全等优点。 开源项目地址

数学建模系列(3/4):典型建模方法

目录 引言 1. 回归分析 1.1 线性回归 基本概念 Matlab实现 1.2 多元回归 基本概念 Matlab实现 1.3 非线性回归 基本概念 Matlab实现 2. 时间序列分析 2.1 时间序列的基本概念 2.2 移动平均 基本概念 Matlab实现 2.3 指数平滑 基本概念 Matlab实现 2.4 ARIM…