进入正文前,先扯点题外话
这两天遇到一个棘手的问题,在用 docker pull 拉取镜像时,会报错: x509: certificate has expired or is not yet valid
具体是下面?这样的
root@DS918:/volume2/docker/xiaoya#dockerpullalpine:3.18.2
3.18.2
ullingfromlibrary/alpine
31e352740f53:Alreadyexists
errorpullingimageconfiguration:Get"https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/c1/c1aabb73d2339c5ebaa3681de2e9d9c18d57485045a4e311d9f8004bec208d67/data?verify=1713883560-%2F3RhBOCWXsSAz9IO7i8g2LuGRCE%3D":x509:certificatehasexpiredorisnotyetvalid:currenttime2024-04-23T21:56:03+08:00isafter2021-09-30T14:01:15Z
通过 dockerproxy 下载则是正常的
下载 ghcr.io 的镜像也正常
①、网络没问题,另一台机器上下载镜像是正常的
②、检查了证书也没到期,下图是重新生成的证书
③、系统时间也没问题
④、重装过 docker 套件(卸载-->重启-->安装),但问题一直没得到解决
网上找了两天,也没有找到可行的解决方案,有点抓瞎 ?
有遇到过这种情况并解决的朋友,请不吝赐教,感谢!
本文会用到 One API 对 M3E 进行管理和分发
文章传送门: 大模型接口管理和分发系统One API
什么是 M3E ?
M3E是Moka Massive Mixed Embedding的缩写,是一个由MokaAI训练并开源的文本嵌入模型。适合使用场景主要是中文,少量英文的情况,其在文本分类和文本检索任务上表现出色,据称在某些任务上超越了ChatGPT。
M3E 共有三种模型,各有不同的维度
m3e-smallm3e-basem3e-large什么是嵌入( Embedding) ?
嵌入是一种将单词、短语或整个文档转换为密集向量的技术。每个单词或短语被转换成一组数字,这组数字捕捉了该文本的某些语义特征。
在群晖上以 Docker 方式安装。
在注册表中搜索 m3e-large-api ,选择第一个 stawky/m3e-large-api,只有一个 latest 版本,双击直接下载。
镜像比较大,如果下载不动,可以用命令行试试从国内阿里源下载
本地端口不冲突就行,不确定的话可以用命令查一下
#查看端口占用
netstat-tunlp|grep端口号
| 本地端口 | 容器端口 |
|---|---|
6008 | 6008 |
如果你熟悉命令行,可能用 docker cli 更快捷
#运行容器(国外)
dockerrun-d\
--restartunless-stopped\
--namem3e-large-api\
-p6008:6008\
stawky/m3e-large-api:latest
#运行容器(国内)
dockerrun-d\
--restartunless-stopped\
--namem3e-large-api\
-p6008:6008\
registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
如果你的机器支持 GPU,可以增加一个选项 --gpus all,表示启用所有可用的 GPU 资源
#运行容器(国外)
dockerrun-d\
--restartunless-stopped\
--namem3e-large-api\
--gpusall\
-p6008:6008\
stawky/m3e-large-api:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version:'3'
services:
m3e-large-api:
image:stawky/m3e-large-api:latest
#image:registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
container_name:m3e-large-api
restart:unless-stopped
ports:
-"6008:6008"
然后执行下面的命令
#新建文件夹m3e-large-api和子目录
mkdir-p/volume1/docker/m3e-large-api
#进入m3e-large-api目录
cd/volume1/docker/m3e-large-api
#将docker-compose.yml放入当前目录
#一键启动
docker-composeup-d
在浏览器中输入 http://群晖IP:6008 就能看到主界面
要验证API服务是否正常,除了查看日志
还可以用下面的示例
#命令行测试
curl--location--requestPOST'http://<服务地址:端口>/v1/embeddings'\
--header'Authorization:Bearer<秘钥>'\
--header'Content-Type:application/json'\
--data-raw'{
"model":"<模型>",
"input":["<问题>"]
}'
#示例
curl--location--requestPOST'http://192.168.0.197:6008/v1/embeddings'\
--header'Authorization:Bearersk-aaabbbcccdddeeefffggghhhiiijjjkkk'\
--header'Content-Type:application/json'\
--data-raw'{
"model":"m3e",
"input":["laf是什么"]
}'
其中
<服务地址:端口>:填入 http://群晖IP:6008<秘钥>:填入默认值 sk-aaabbbcccdddeeefffggghhhiiijjjkkk<模型>:填入模型名称 m3e<问题>:填入你想问的问题如果看到下图这样的返回,就 OK 了
也可以用 One API进行管理和分发。老苏建议用这种方式
在 One API 中添加新的渠道
自定义渠道Base URL:填入 M3E 的访问地址 http://群晖IP:6008M3Edefault就行填入 即可,例如:m3e,其他服务调用时,需匹配这个模型的名称sk-aaabbbcccdddeeefffggghhhiiijjjkkk保存之后,一般会测试一下
返回 404 是正常的,M3E不是聊天模型,但测试调用的是 chat 接口,所以会失败
到这里,准备工作基本上就完成了,下一篇将正式进入知识库问答系统的搭建
moka-ai/m3e-large · Hugging Face
地址:https://huggingface.co/moka-ai/m3e-large接入 M3E 向量模型 | FastGPT
地址:https://doc.fastai.site/docs/development/custom-models/m3e/docker部署m3e-large-api无法启动_开发工具-CSDN问答
地址:https://ask.csdn.net/questions/8056249docker stawky/m3e-large-api internal error · Issue #741 · labring/FastGPT
地址:https://github.com/labring/FastGPT/issues/741本地部署的m3e-large-api不可用 · Issue #931 · labring/FastGPT
地址:https://github.com/labring/FastGPT/issues/931
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |