在 Windows 系统下,使用 PyCharm 开发工具,如何通过直接调用 API 的方式,利用你手头的 OpenAI 接口地址和 Key 来辅助代码编写

准备工作

你已经有一个可用的 API 地址(Base URL),例如 http://你的服务器地址:端口/v1 或 https://你的域名/v1

你已经有一个有效的 API Key(例如 sk-xxxxxx)

Windows 系统,已安装 PyCharm(Community 或 Professional 均可)

电脑能正常访问该 API 地址(如果是内网地址,确保网络连通)

📁 第一步:在 PyCharm 中创建新项目

打开 PyCharm,点击 New Project。

设置项目存放路径(例如 D:\MyOpenAIProject)。

关键:在 Base interpreter 处,选择 New environment using Virtualenv,PyCharm 会自动创建一个独立的虚拟环境(推荐,避免污染全局 Python)。

点击 Create。

📦 第二步:安装 OpenAI 官方 SDK

在 PyCharm 中打开终端(Terminal):

方法:点击底部工具栏的 Terminal 标签,或使用快捷键 Alt + F12。

在终端中输入以下命令并回车:

bash

pip install openai

等待安装完成。如果网速慢,可以使用国内镜像:

bash

pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple

🔑 第三步:配置 API Key 和 Base URL(三种方式任选)

因为你的接口地址是自定义的(非官方 OpenAI),所以需要在代码中同时设置 base_url 和 api_key。为了避免把敏感信息写死在代码里,推荐使用环境变量或 PyCharm 运行配置。

方式 A:在 PyCharm 运行配置中设置(最推荐,临时有效,方便调试)

在 PyCharm 顶部菜单栏,点击 Run → Edit Configurations。

点击左上角的 + 号,选择 Python。

在 Name 处输入一个名字,例如 OpenAITest。

在 Script path 中选择你将要运行的 Python 文件(可以先写个临时文件,如 test.py)。

在 Environment variables 区域,点击文件夹图标或直接输入:

text

OPENAI_API_KEY=你的真实Key;OPENAI_BASE_URL=你的API地址(例如http://127.0.0.1:8080/v1)

注意:

多个变量用分号 ; 隔开

地址一般以 /v1 结尾(除非接口特殊)

点击 OK 保存。

方式 B:在代码中直接写死(仅测试用,切勿提交到 Git)

在 Python 文件里直接赋值:

python

API_KEY = "sk-xxxxxx"

BASE_URL = "http://你的地址/v1"

方式 C:使用 .env 文件(更规范)

在项目根目录创建 .env 文件,内容:

text

OPENAI_API_KEY=sk-xxxxxx

OPENAI_BASE_URL=http://你的地址/v1

安装 python-dotenv 库:pip install python-dotenv

在代码中加载:

python

from dotenv import load_dotenv

load_dotenv()

✍️ 第四步:编写调用代码(生成代码示例)

在 PyCharm 中新建一个 Python 文件,例如 code_assistant.py,输入以下内容:

python

import os

from openai import OpenAI

如果使用方式A(环境变量),则无需额外处理,直接读取

如果使用方式B,则手动赋值覆盖

如果使用方式C,需要 load_dotenv()

读取环境变量

api_key = os.getenv("OPENAI_API_KEY")

base_url = os.getenv("OPENAI_BASE_URL")

如果上面读取不到,可以在这里手动指定(仅测试用)

if not api_key:

api_key = "sk-xxxxxx"

if not base_url:

base_url = "http://你的地址/v1"

初始化 OpenAI 客户端

client = OpenAI(

api_key=api_key,

base_url=base_url

)

定义一个函数,让 AI 帮你写代码

def ask_for_code(prompt):

try:

response = client.chat.completions.create(

model="gpt-4o", # 替换成你接口实际支持的模型名,比如 gpt-3.5-turbo

messages=[

{"role": "system", "content": "你是一个经验丰富的编程助手,只输出代码和必要的注释,不要多余的解释。"},

{"role": "user", "content": prompt}

],

temperature=0.2,

max_tokens=1000

)

return response.choices0.message.content

except Exception as e:

return f"调用失败:{e}"

if name == "main ":

示例:让 AI 写一个快速排序的 Python 函数

user_prompt = "用 Python 写一个快速排序函数,输入列表,返回排序后的新列表。"

print("正在请求 AI 生成代码...\n")

code = ask_for_code(user_prompt)

print("生成的代码如下:\n")

print(code)

注意:model 参数必须填写你接口实际支持的模型名称(例如 gpt-3.5-turbo、gpt-4 或你自定义的模型名)。如果不确定,可以问接口提供方,或者尝试常用的名字。

▶️ 第五步:运行代码

确保你已经按照 方式A 配置好了运行环境变量,或者在代码中直接赋值了 key 和 base_url。

右键点击编辑器中的代码,选择 Run 'code_assistant'。

观察 PyCharm 下方的 Run 窗口输出。如果一切正常,你会看到 AI 返回的快速排序代码。

🔍 第六步:验证和调试

如果报错连接错误:检查 base_url 是否正确,地址前是否有 http:// 或 https://,末尾是否包含 /v1。可以在浏览器中访问 你的地址/v1/models 看看是否有返回(可能需要带上 Authorization Header)。

如果报错 401 Unauthorized:API Key 错误或无效。

如果报错 404 Not Found:base_url 路径不对,或者模型名称错误。

如果报错 SSL 证书问题:如果是自签名证书,可以在初始化 client 时加上 http_client=httpx.Client(verify=False),但仅限测试环境。

💡 进阶用法:让 AI 帮你修改当前编辑的代码

你可以在 PyCharm 中结合 选中代码 + 调用 API 的方式实现类似 Copilot 的效果。例如写一个函数,读取当前选中的文本,发给 AI 让它优化或解释。

更简单的方法是:你只需要把上面的 ask_for_code 函数稍作修改,然后把你的问题(比如"解释下面这段代码的作用")和代码片段一起发给 AI,就能得到回答。

📌 总结

在 Windows + PyCharm 中使用自定义 OpenAI 接口的完整流程:

创建项目 + 虚拟环境

安装 openai 库

通过 PyCharm 运行配置设置环境变量 OPENAI_API_KEY 和 OPENAI_BASE_URL

编写代码,使用 OpenAI(api_key=..., base_url=...) 初始化客户端

调用 client.chat.completions.create,指定模型和消息

运行并获取 AI 生成的代码

这样你就可以在 PyCharm 里直接利用手头的 API 来辅助编写代码了。如果遇到具体报错,欢迎继续追问。

!!!注意:

正在请求 AI 生成代码...

生成的代码如下:

调用失败:Error code: 404 - {'detail': 'Not Found'}

Process finished with exit code 0

解决方法:

第一步:确认正确的 BASE_URL

OpenAI SDK 默认会在你给的 base_url 后面追加 /chat/completions 这样的路径。

如果你的接口地址是像 http://your-server:8080 这样的根路径,那么 SDK 实际请求的地址会变成 http://your-server:8080/chat/completions,但标准 OpenAI 兼容接口通常期望的是 http://your-server:8080/v1/chat/completions。

✅ 正确的 base_url 写法

正确(推荐):http://你的地址/v1 (结尾包含 /v1)

不正确:http://你的地址 (缺少 /v1)

不正确:http://你的地址/ (末尾斜杠也不够)

请检查你的 BASE_URL 是否以 /v1 结尾,如果不是,请加上。例如:

python

BASE_URL = "http://192.168.1.100:8000/v1"

如果你不确定接口的正确路径,可以尝试用浏览器或 curl 访问:http://你的地址/v1/models 看看是否有返回(通常需要带 API Key Header)。

🔍 第二步:确认正确的模型名称

即使 base_url 正确,如果 model 名称填错了,服务器也会返回 404 或 400 错误(有些实现会返回 404)。

你需要向接口提供方问清楚可用的模型名称,常见的例如:

gpt-3.5-turbo

gpt-4

gpt-4o

deepseek-chat

llama3-70b

或者自定义的名字

测试模型列表的方法(可选):写一段简单的 Python 代码,调用 /models 接口:

python

import requests

BASE_URL = "http://你的地址/v1" # 注意 /v1

API_KEY = "你的key"

headers = {

"Authorization": f"Bearer {API_KEY}"

}

response = requests.get(f"{BASE_URL}/models", headers=headers)

print(response.status_code)

print(response.json())

如果返回 200 且包含 data 列表,你就能看到所有可用的模型名。

相关推荐
Dfreedom.1 小时前
Windows、虚拟机、开发板组网通信原理及调试通联步骤
人工智能·windows·部署·边缘计算·开发板·模型加速
czy87874752 小时前
vscode编译make命令要修改stm32cubemx生成的STM32F103XX_FLASH.ld文件
ide·vscode·stm32
三无推导6 小时前
ComfyUI 安装部署教程:Windows 下快速搭建可视化 AI 绘图工作流,零基础也能跑通
人工智能·pytorch·windows·stable diffusion·aigc·ai绘画·持续部署
nnsix9 小时前
PS【PhotoShop】实现拷贝到Windows粘贴板上
windows
сокол9 小时前
【网安-Web渗透测试-免杀系列】内存免杀(无文件落地)
windows·网络安全
玖釉-9 小时前
二叉树基础详解:TreeNode、buildTree、deleteTree 与 printTree 的实现原理(C++)
c++·windows·算法
心之所向,自强不息9 小时前
# Unity MCP + Codex CLI 完整教程(Windows)
windows·unity·游戏引擎
特立独行的猫a9 小时前
Fast DDS Monitor Windows x64 从源码编译安装完全教程
windows·monitor·dds·fastdds·fastddsmonitor
慵懒的猫mi11 小时前
deepin 25部署x11vnc+xrdp,实现vnc和mstsc双重访问
linux·windows·开源软件·deepin
神仙别闹11 小时前
基于C语言 实现 Windows PE 文件解析
c语言·windows·microsoft