1、安装Mysql【若有则忽略】
https://blog.csdn.net/weixin_44512005/article/details/135777754
2、安装docker desktop【若有则忽略】
第一步,下载docker desktop安装包。
https://www.docker.com/
选择相应docker_desktop安装包下载,一般是AMD64

第二步,安装docker desktop。
双击exe文件安装,下面两个选项需要勾上

其余一直next就行,无需修改其默认配置
第三步,打开desktop发现加载不出来。
因为docker在windows环境需要下载wsl2
cmd运行
wsl --update
wsl2安装好后,验证一下是否存在
wsl -v

若如上显示则安装成功。
同时docker desktop部署在windows上运行docker服务是基于windows的Hyper-V服务的,所以电脑上需要开启Hyper-V服务
现在重启电脑后,docker desktop就可以正常打开了。
第四步,下载one-api项目
https://github.com/songquanpeng/one-api
在项目文件里有个docker-compose.yml文件,在此路径下打开命令行窗口,输入
docker-compose up -d
此时会以该docker-compose文件设置启动docker环境
若报错如下:
(HTTP code 500) server error – Ports are not available: exposing port TCP 0.0.0.0:3000 -> 127.0.0.1:0: listen tcp 0.0.0.0:3000: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
说明one-api的端口被占用了(docker-compose文件中设置了one-api占用3000端口),有两种解决方法
1、可以把占用该端口的进程关闭
win + R,打开cmd命令窗口,输入
netstat -ano | findstr 3000
通过此命令找到占用3000端口的进程,最右侧是PID。ctrl+Alt+delete打开任务管理器,搜索3000并右键结束进程
【我搜索端口3000没搜索相关进程,所以用了方法二将端口改为4000】
2、修改one-api的端口
在项目里打开docker-compose文件进行修改:
version: '3.4'
services:
one-api:
image: "${REGISTRY:-docker.io}/justsong/one-api:latest"
container_name: one-api
restart: always
command: --log-dir /app/logs
ports:
- "4000:3000" 【在这里把左边的3000我改为了4000】
volumes:
- ./data/oneapi:/data
- ./logs:/app/logs
保存文件退出。
在one-api项目路径下打开命令行窗口,执行
docker-compose down
将所有images关闭。然后重新启动
docker-compose up -d

显示如上则成功,此时desktop里也可以看到在运行

第五步,使用one-api。
此时浏览器可以打开http://localhost:4000 【后面是你更改的端口号】
![图片[1] - 【亲身实践】windows配置one-api【包括前置需要的mysql、docker、wsl2】 - 宋马](https://pic.songma.com/blogimg/20250611/e36b0d5f7a2444e78d8d3506c8eb32b1.png)
使用初始账户登录,用户名root,密码为 123456。登录后根据提示修改密码
添加渠道:可以选择智谱、千问等等,这里选择你购买的模型商家。当然也可以选择ollama本地部署

这里以智谱为例,模型列表默认会选上很多该商家模型,但可能有遗漏,可以把你要用的模型自定义填上去
模型重定向、系统提示词,这里我没写。
然后密钥,写上你使用模型的官方密钥。最后提交渠道
添加渠道后,点击令牌,新建令牌,然后也是输入名称、要用的模型、过期时间、额度可以先默认。

创建好令牌后,就可以测试一下是否可以成功将国内模型以openai格式调用
首先复制令牌,然后填入脚本的api_key 中
![图片[2] - 【亲身实践】windows配置one-api【包括前置需要的mysql、docker、wsl2】 - 宋马](https://pic.songma.com/blogimg/20250611/454f206dc1fa4e27a05bc53bfff7ed22.png)
写一个python脚本:
import requests
# 配置
one_api_url = "http://localhost:4000/v1/chat/completions" # 注意端口号
api_key = "你的OneAPI令牌" # 替换成你的令牌
model_name = "glm-4-air" # 替换成你的模型名字
headers = {
"Authorization": f"Bearer {
api_key}",
"Content-Type": "application/json",
}
data = {
"model": model_name,
"messages": [
{
"role": "user", "content": "请用一句话介绍一下自己。"}
],
"temperature": 0.5
}
response = requests.post(one_api_url, headers=headers, json=data)
if response.status_code == 200:
resp_json = response.json()
print("调用成功,模型回复内容:")
print(resp_json["choices"][0]["message"]["content"])
else:
print(f"请求失败,状态码:{
response.status_code}")
print(response.text)
调用成功后one api页面的日志部分也会看到消耗了token

后续若报错401,则说明可能令牌设置的额度超上限了。在确保你的token足够的情况下,可以改成无限额度

















暂无评论内容