OpenAI本地调用

前言

本文将深入探讨 OpenAI 本地调用的技术细节,涵盖环境搭建、模型部署、接口调用等方面,并给出案例,阐述 OpenAI 本地调用的技巧,方便使用者快速上手,做自己任务。

一、为什么本地部署

1. 网络限制

不能直接访问,需要上外网,就这需要挂梯子或是科学上网,带来查询不便。

#官方接口表
https://api.openai.com
https://api.openai.com/v1
https://api.openai.com/v1/chat/completions

2. 优势

1, 安全

数据安全与隐私保障: 敏感数据无需上传至云端,有效降低了数据泄露风险,尤其适用于金融、医疗等对数据安全要求较高的领域。

2, 速度

更低的延迟与更高的响应速度: 本地部署消除了网络传输带来的延迟,使得模型推理速度更快,用户体验更加流畅。

3, 定制化

更强的定制化能力: 开发者可以根据具体需求对模型进行 fine-tuning,使其更贴合特定场景和应用。

4, 成本

更低的成本: 对于需要频繁调用模型的场景,本地部署可以节省大量的云端 API 调用费用。

二、调用方式

1. 使用openai库

pip install openai

2. 使用Requests库

pip install requests

三、Openai接口

1. 聊天

from openai import OpenAI
client = OpenAI(
    base_url='https://xxxxxx.plus/v1',
    # sk-xxx替换为自己的key
    api_key='sk-xxx'
)
completion = client.chat.completions.create(
  model="gpt-4o",
  messages=[
    {
   "role": "system", "content": "You are a helpful assistant."},
    {
   "role": "user", "content": "Hello!"}
  ]
)
print(completion.choices[0].message)

下面展示一段问答效果,后面接口返回结果不再展示

completion = client.chat.completions.create(
  model="gpt-4o",
  messages=[
    {
   "role": "system", "content": "You are a helpful assistant."},
    {
   "role": "user", "content": "Can you intruduce youself"}
  ]
)
print(completion.choices[0].message)

#下面是测试结果,只需要运行一个python脚本即可.
(base) root@autodl-container-df76488929-09e9a4d5:~/autodl-tmp# python openaitest.py 
ChatCompletionMessage(content='Hello! How can I assist you today?', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None)
(base) root@autodl-container-df76488929-09e9a4d5:~/autodl-tmp# python openaitest.py 
ChatCompletionMessage(content="Sure! I'm an AI developed by OpenAI designed to assist with a variety of tasks. I'm here to provide information, answer questions, help with writing, and support you in whatever way I can. My responses are based on extensive training on diverse datasets up to October 2023. How can I assist you today?", refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None)

2. 图片

from openai import OpenAI
client = OpenAI(
    base_url='https://xxxxxx.plus/v1',
    # sk-xxx替换为自己的key
    api_key='sk-xxx'
)
response = client.chat
### 解决调用 OpenAI API 时无法访问的问题 当遇到调用 OpenAI API 出现无法访问的情况,可能由多种因素引起。以下是几种常见的解决方案: #### 1. 检查网络连接和代理设置 如果本地网络环境对外部某些地址有限制,则可能导致请求失败。可以尝试通过配置代理服务器来解决问题。 对于 Python 请求库 `requests` 来说,在发送 POST 请求给 OpenAI 的时候可以通过传递额外参数指定代理[^3]: ```python proxies = { 'http': 'http://your_proxy_address', 'https': 'https://your_proxy_address' } response = requests.post(url, headers=headers, json=data, proxies=proxies) ``` #### 2. 确认 API 密钥的有效性和权限范围 确保使用的 API Key 是有效的,并且具有足够的权限来进行所期望的操作。API Key 应该按照官方文档说明放置于 HTTP 头中的 Authorization 字段内作为 Bearer Token 使用[^2]。 #### 3. 核实 URL 和端点路径是否正确无误 错误的 API Endpoint 或者版本号不匹配也会造成请求不通畅。应该仔细核对官方提供的最新接口文档,确认正在使用的 URL 是否准确无误[^1]。 #### 4. 查看并处理返回的状态码与消息体 每次向 OpenAI 发送请求之后都会收到相应的响应状态码以及 JSON 形式的反馈信息。这些数据可以帮助定位具体发生了什么问题。例如,HTTP 4xx 类别的错误通常意味着客户端发出的请求存在问题;而 5xx 则更多指向服务端内部出现了异常情况。 针对上述提到的例子代码片段中,应当先打印整个 Response 对象以便查看完整的错误提示: ```python print(f"Status Code: {response.status_code}") if not response.ok: print("Error Message:", response.text) else: content = response.json()["choices"][0]["message"]["content"] print(content) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值