【亲身实践】windows配置one-api【包括前置需要的mysql、docker、wsl2】

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】 - 宋马
使用初始账户登录,用户名root,密码为 123456。登录后根据提示修改密码

添加渠道:可以选择智谱、千问等等,这里选择你购买的模型商家。当然也可以选择ollama本地部署

这里以智谱为例,模型列表默认会选上很多该商家模型,但可能有遗漏,可以把你要用的模型自定义填上去

模型重定向、系统提示词,这里我没写。

然后密钥,写上你使用模型的官方密钥。最后提交渠道

添加渠道后,点击令牌,新建令牌,然后也是输入名称、要用的模型、过期时间、额度可以先默认。

创建好令牌后,就可以测试一下是否可以成功将国内模型以openai格式调用

首先复制令牌,然后填入脚本的api_key 中
图片[2] - 【亲身实践】windows配置one-api【包括前置需要的mysql、docker、wsl2】 - 宋马
写一个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足够的情况下,可以改成无限额度

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容