准备工作
你已经有一个可用的 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.choices[0].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 列表,你就能看到所有可用的模型名。