• Chatbot UI集成LocalAI实现自托管的ChatGPT


    在这里插入图片描述

    本文比惯例提前了一天发,因为明天一早,老苏就踏上回乡的路了,三年没回老家,这次专门请了 2 天的假

    难得回家,打算多陪陪家人,和多年不见的朋友聚聚,当然如果有网络条件,还是会正常发文的

    在这个中秋和国庆双节即将到来之际,老苏提前预祝大家度过一个愉快的假期,中秋和国庆快乐~


    什么是 Chatbot UI ?

    Chatbot UI是一个非常实用的聊天机器人 UI 组件库,是 OpenAIChatGPT UI 的开源克隆。可以帮助开发者快速构建个性化的聊天机器人界面,该组件库支持多种聊天机器人平台。可以自定义提示词,支持数据导入导出,还支持谷歌搜索插件,支持最新的 GPT-4模型。

    LocalAI 一文中,我们提到了 2 种调用 LocalAI 的方法,而今天要介绍的则是第 3 种,将 Chatbot UI 作为前端,通过一个类似聊天的界面,用于与 AI 模型进行交互。您可以以对话方式输入文本并接收模型的响应,将 LocalAI 打造成一款聊天机器人

    在这里插入图片描述

    能够用来做前端的还有个项目:https://github.com/Dhruvgera/LocalAI-frontend,只是颜值差了点,直接被老苏 pass 掉了

    在这里插入图片描述

    安装

    在群晖上以 Docker 方式安装。

    镜像下载

    镜像没有在 docker hub 上发布,而是发布到了 ghcr.io

    SSH 客户端登录到群晖后,执行下面的命令

    # 拉取镜像
    docker pull ghcr.io/mckaywrigley/chatbot-ui:main
    
    • 1
    • 2

    如果拉不动,也可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

    # 如果拉不动的话加个代理
    docker pull ghcr.dockerproxy.com/mckaywrigley/chatbot-ui:main
    
    # 重命名镜像(如果是通过代理下载的)
    docker tag ghcr.dockerproxy.com/mckaywrigley/chatbot-ui:main ghcr.io/mckaywrigley/chatbot-ui:main
    
    # 删除代理镜像(如果是通过代理下载的)
    docker rmi ghcr.dockerproxy.com/mckaywrigley/chatbot-ui:main
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    下载完成后,可以在 映像 中找到

    在这里插入图片描述

    如果你还没有下载 LocalAI 的镜像,可以看看前文

    文章传送门:搭建本地人工智能框架LocalAI

    docker-compose 安装

    如果你之前已经安装过 LocalAI,建议用下面合并后的 docker-compose.yml 文件

    version: '3.6'
    
    services:
      api:
        image: quay.io/go-skynet/local-ai:latest
        container_name: localai-api
        healthcheck:
          test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"]
          interval: 1m
          timeout: 20m
          retries: 20
        ports:
          - 8668:8080
        volumes:
          - ./models:/models:cached
        environment:
          - MODELS_PATH=/models
          - DEBUG=true
          - 'PRELOAD_MODELS=[{"url": "github:go-skynet/model-gallery/gpt4all-j.yaml", "name": "gpt-3.5-turbo"}]'
        command: ["/usr/bin/local-ai" ]
    
      chatgpt:
        image: ghcr.io/mckaywrigley/chatbot-ui:main
        container_name: localai-web
        ports:
          - 8669:3000
        environment:
          - 'OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXXXXXX'
          - 'OPENAI_API_HOST=http://api:8080'
        depends_on:
          api:
            condition: service_healthy
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • PRELOAD_MODELS:启动期间预加载模型。为了允许 API 在首次启动时启动所有需要的模型;
    • OPENAI_API_KEY :用于 OpenAI 身份验证的默认 API 密钥。但我们用的是本地搭建的 LocalAI,所以这里并不需要真正的 OpenAI API Key,因此不需要修改,直接照抄即可;
    • OPENAI_API_HOST:指向 LocalAI的地址,也不需要修改;

    更多的环境变量,请参考官方文档:https://github.com/mckaywrigley/chatbot-ui#configuration

    然后执行下面的命令

    # 进入 localai 目录
    cd /volume1/docker/localai
    
    # 更新目录下原来的 docker-compose.yml 文件
    
    # 一键启动
    docker-compose up -d
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    原来的 models 目录会多出 4 个文件,时间取决于你的网络情况

    在这里插入图片描述

    • bin:是模型文件;
    • yaml: 是设置文件;
    • tmpl:是模板文件;

    如果你网络下载遇到了问题,建议直接下载老苏分享到阿里云盘的文件:https://www.aliyundrive.com/s/XEc19L766Lz

    运行

    在浏览器中输入 http://群晖IP:8669 就能看到主界面

    在这里插入图片描述

    生成温度老苏还是设置为了 0.7,然后就可以开始提问了,这回老苏换了个问题

    在这里插入图片描述

    再问个中文的问题,居然回答是英文的

    在这里插入图片描述

    上难度

    在这里插入图片描述

    有没有发现一个问题?每次都会把之前的回复又输出一遍?不知道是 bug 还是模板设置问题

    在这里插入图片描述

    每次提问时,从 Finalshell 看日志, 发现 CPU 都是满负荷在工作

    在这里插入图片描述

    当然这都不是关键,关键是怎么才能把它真正搞成生产力工具呢?欢迎大家一起交流

    参考文档

    LocalAI/examples/chatbot-ui/docker-compose.yaml at master · go-skynet/LocalAI
    地址:https://github.com/go-skynet/LocalAI/blob/master/examples/chatbot-ui/docker-compose.yaml

    mckaywrigley/chatbot-ui: An open source ChatGPT UI.
    地址:https://github.com/mckaywrigley/chatbot-ui

    Chatbot UI
    地址:https://www.chatbotui.com

    Chatbot UI does not seems to be working · Issue #165 · go-skynet/LocalAI
    地址:https://github.com/go-skynet/LocalAI/issues/165

  • 相关阅读:
    Java设计模式 _行为型模式_备忘录模式
    Android之活动(Activity)
    Kotlin学习笔记之高阶函数
    《MATLAB智能算法30个案例》:第2章 基于遗传算法和非线性规划的函数寻优算法
    Oracle/PLSQL: Cast Function
    【SpringBoot】常用的的各种注解(二):Controller层相关注解
    常用js库和框架(jsPlumb)
    TCP/IP UDP广播无法发送或接收
    k8s创建pod - 启动pod的流程
    vue项目打包成H5apk中使用语音播放
  • 原文地址:https://blog.csdn.net/wbsu2004/article/details/133296429