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

目录

1、获取API_key

2、开始调用

3、openai连接异常

4、解决方法:

5、调用GPT-4o


1、获取API_key

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

怎么获取OpenAI的api-key【人工智能】https://blog.csdn.net/qq_51625007/article/details/137632747

2、开始调用

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

python 复制代码
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文件中。

python 复制代码
pip install python-dotenv #安装
python 复制代码
# 这一步很关键
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章 语言可用性的强化

```

  1. **小节标题**:

```

2.1 常量

nullptr

```

  1. **文本说明和代码片段**:
  • 文中详细讲解了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;

}

```

  1. **页面底部的页码**:

```

12

```

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

相关推荐
Power20246669 分钟前
NLP论文速读(Apple出品)|迈向更好的多模态指令遵循能力评估
人工智能·深度学习·自然语言处理·自动化·nlp
垂杨有暮鸦⊙_⊙11 分钟前
蒙特卡洛方法(Monte Carlo,MC)
人工智能·笔记·机器学习·概率论
初级炼丹师(爱说实话版)44 分钟前
nn.MultiheadAttention返回的注意力权重和标准的计算注意力权重的区别
人工智能·深度学习·机器学习
roman_日积跬步-终至千里1 小时前
【人工智能基础】计算机视觉
人工智能·计算机视觉
Francek Chen2 小时前
【大数据分析&深度学习】在Hadoop上实现分布式深度学习
人工智能·hadoop·分布式·深度学习·数据分析
明朝百晓生2 小时前
【PyTorch][chapter 228][李宏毅深度学习][Diffusion Model-1]
人工智能
骑猪玩狗2 小时前
第N8周:使用Word2vec实现文本分类
人工智能·分类·word2vec
狗窝超厉害2 小时前
研0找实习【学nlp】15---我的后续,总结(暂时性完结)
人工智能·pytorch·python·自然语言处理·bert
企业通用软件开发2 小时前
大语言模型提示词工程学习--写小说系列(文心一言&豆包&通义千问):1~创作前的准备工作
人工智能·学习·语言模型
龙的爹23332 小时前
论文翻译 | BERTese: Learning to Speak to BERT
人工智能·深度学习·自然语言处理·prompt·bert