Chatbot UI 和 ChatGLM2-6B 的集成

news2024/11/15 11:10:16

Chatbot UI 和 ChatGLM2-6B 的集成

  • 0. 背景
  • 1. 部署 Chatbot UI
  • 2. 部署 ChatGLM2-6B
  • 3. 修改 ChatGLM2-6B 项目的 openai_api.py
  • 4. 修改 Chatbot UI 的配置
  • 5. 访问 Chatbot UI

0. 背景

尝试将 Chatbot UI 和 ChatGLM2-6B 的进行集成, ChatGLM2-6B 提供 API 服务,Chatbot UI 提供模仿 OpenAI 聊天模型的 ChatGPT 界面和功能。

效果展示,

在这里插入图片描述

1. 部署 Chatbot UI

请参考文章 本地部署 Chatbot UI。

2. 部署 ChatGLM2-6B

请参考文章 本地部署 ChatGLM2-6B。

3. 修改 ChatGLM2-6B 项目的 openai_api.py

直接启动 openai_api.py 会报发生以下错误,

PydanticDeprecatedSince20: The `json` method is deprecated; use `model_dump_json` instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.0.2/migration/
  yield "{}".format(chunk.json(exclude_unset=True, ensure_ascii=False))

略

  File "/root/miniconda3/envs/chatglm2/lib/python3.10/site-packages/pydantic/main.py", line 926, in json
    raise TypeError('`dumps_kwargs` keyword arguments are no longer supported.')
TypeError: `dumps_kwargs` keyword arguments are no longer supported.

具体错误描述可以参考 https://errors.pydantic.dev/2.0.2/migration/ 的说明。

解决方法如下,

vi openai_api.py

--- 修改内容,有3处
    #yield "{}".format(chunk.json(exclude_unset=True, ensure_ascii=False))
    yield "{}".format(chunk.model_dump_json(exclude_unset=True))
---

(可选)为了实现更高的适配性,增加非 /v1 开头的 API 端点。

class ChatCompletionResponse(BaseModel):
    略
    usage: Optional[Dict[str, int]] = {'prompt_tokens': 1, 'completion_tokens': 1, 'total_tokens': 2}

@app.get("/models", response_model=ModelList)
async def list_models():
    global model_args
    model_card = ModelCard(id="gpt-3.5-turbo")
    return ModelList(data=[model_card])

@app.post("/chat/completions", response_model=ChatCompletionResponse)
async def create_v1_chat_completion(request: ChatCompletionRequest):
    return RedirectResponse("/v1/chat/completions", status_code=307)

修改完成后,启动 openai_api.py,

python openai_api.py

4. 修改 Chatbot UI 的配置

修改 .env.local 的配置,

vi .env.local

---
OPENAI_API_HOST=http://localhost:8000
OPENAI_API_KEY=none
---

启动 Chatbot UI,

npm run dev

5. 访问 Chatbot UI

使用浏览器打开 http://localhost:3000,

在这里插入图片描述
问它一个问它,清华大学在哪?

在这里插入图片描述
完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/739020.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

精确时钟同步协议ptp/IEEE-1588v2协议-------(2)主从时钟之间的消息交互与时钟同步过程

本文目录 1、主时钟和从时钟之间的消息交互流2、延时delay和偏移offset的计算2.1、延时delay的计算2.2、偏移offset的计算 主时钟和从时钟之间,通过sync, follow up, delay request, delay response这四条消息,完成时钟同步过程。PTP时钟同步系统能工作的…

word绘制横向表格

最近写小论文,表格太宽需要绘制横向表格,找了半天教程说的都不是很详细,我学习了一下决定自己写个教程。 我要在一和二之间创建一个横向表格。首先在一后面添加一个分节符号。布局->分隔符->分节负下一页。 再在二之前添加一个分节符号…

新耀东方|安全狗亮相2023第二届上海网络安全博览会

7月5日至7日,“新耀东方-2023第二届上海网络安全博览会暨高峰论坛”在上海顺利举办。此次大会由上海市信息网络安全管理协会、国家计算机网络应急技术处理协调中心上海分中心、(ISC)2上海分会、上海市普陀区科学技术委员会、上海市网络安全产业示范园共同主办。 作为…

左神算法之中级提升(2)

目录 [案例1】 【题目描述】 【思路解析1】 【思路解析2】 【代码实现】 【案例2】 【题目描述】 【思路解析】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【代码实现】 【案例4】 【题目描述】今日头条2018面试题 第四题 【输入描述】 【思路解析】 【…

对于没有任何基础的初学者,云计算该怎样学习?

想学习任何一门专业技能,可以按下面这一套逻辑梳理! 1)了解基本内容 云计算这个技术是做什么的?适用哪些场景?有什么优点和缺点? 同时建议先找技术大纲,至少要学哪些技能点,可以网…

Layui之入门

目录 一、layui介绍 1.是什么 2.谁开发的 3.特点 二、layui,easyui和bootstrap的区别 1.layui、easyui与bootstrap的对比 2. layui和bootstrap对比(这两个都属于UI渲染框架) 3. layui和easyui对比 三、基础使用 四、登录注册实例讲解 …

医院陪诊小程序开发|陪诊小程序定制|陪诊服务app成品

陪诊小程序的功能开发对于陪诊行业有以下好处:   提高服务效率:陪诊小程序可以提供在线预约功能,方便用户随时预约合适的陪诊人员,减少了繁琐的人工沟通和安排工作,提高了服务效率。   增加服务范围:通…

基于matlab将图像标记器多边形转换为标记的块图像以进行语义分割(附源码)

一、前言 此示例演示如何将存储在对象中的多边形标签转换为适用于语义分割工作流的标记阻止图像。 可以使用计算机视觉工具箱中的图像标记器应用来标记太大而无法放入内存和多分辨率图像的图像。有关详细信息,请参阅在图像标记器(计算机视觉工具箱&…

uniapp zjy-calendar日历,uni-calendar日历增强版

一、zjy-calendar简介 zjy-calendar日历是对uniapp uni-calendar日历的增强,支持圆点和文字自定义颜色。 二、使用方法 源使用说明:https://uniapp.dcloud.net.cn/component/uniui/uni-calendar.html 1、下载导入 https://ext.dcloud.net.cn/plugin?…

web-php

目录 基础 注释 php程序的组成 php的数据类型 php代码的运行 代码 显示时间 输出账户名和密码 后端对前端的数据进行验证处理代码 连接数据库的代码 前后端代码相结合验证,实现登录接口验证 login.html login.php register.html register.php error…

大模型调用工具魔搭GPT——一键调用魔搭社区上百个AI模型的API

为了让模型开发变得更容易,阿里云在发布会现场推出了一款令开发者耳目一新的工具:ModelScopeGPT(魔搭GPT)。它能够通过担任“中枢模型”的大语言模型一键调用魔搭社区其他的AI模型,实现大模型和小模型协同完成复杂任务。 这类智能调用工具被业界普遍看好。ModelScopeGP…

Android Handler被弃用,那么以后怎么使用Handler,或者类似的功能

Android API30左右,Android应用在使用传统写法使用Handler类的时候会显示删除线,并提示相关的方法已经被弃用,不建议使用。 Handler handler new Handler(){Overridepublic void handleMessage(NonNull Message msg) {super.handleMessage(…

分配操作菜单

目录 概述介绍数据库后端前端效果展示 概述 在写后台管理系统时, 我们可以根据不同的登录人,给予不同的功能菜单 如 :给楼栋管理员登录时分配(楼栋管理,宿舍管理) 所以在数据库就要创建: 1.登录人与角色表, 2再给角色表分配操作菜单 登录时查询对应的操作菜单,将数据响应给前端…

ASPICE软件工具链之Jira教程

Jira使用教程 一、什么是Jira? 二、Jira的使用教程 功能介绍: 创建工作流 工作流方案 设置字段流程 字段配置 界面方案 界面方案创建流程 问题类型界面方案 将项目与预先创建的方案关联 配置总流程 创建项目 设置项目 添加工作流 添加界面配置方案 设置Scrum 看板泳道图 一…

物联网行业的革命:Web3 技术如何改变我们的日常生活

物联网 (IoT) 是一个充满创新和潜力的领域,它将物理设备、传感器和互联网连接起来,实现智能化和自动化。 在过去几年中,从智能家居、智能城市到工业自动化,物联网技术已经渗透到了各个领域。然而,随着物联网设备和系统…

Spring源码系列-第1章-Spring源码纵览

必读 源码是循循渐进的,前面我会省略中间很多目前不需要深入的代码,所以会看起来代码比较少。省略的地方我会打上这样的标识 // ... 或者 // ...如果没打也不代表我没省略,可能是忘记了,不要看懵了。 第1章-Spring源码纵…

golang数据库操作相应内容--推荐【比较全】

Go为开发数据库驱动定义了一些标准接口,开发者可以根据定义的接口来开发相应的数据库驱动,只要是按照标准接口开发的代码, 以后需要迁移数据库时,不需要任何修改。 一、database/sql接口 1.1sql.Register 这个存在于database/s…

数分面试题:酒坛问题

问题:你有一个八升的酒坛,装满了酒,此外还有3升和5升的两个空酒坛,请在一个酒坛里装上刚好四升酒 关键:8拆分为3个正整数的加和,且3个正整数不能大于8,5,3 组合方式: 4…

【力扣算法02】之寻找两个正序数组的中位数 - python

文章目录 问题描述示例 1示例2提示 解题思路代码分析完整代码运行效果及示例代码示例代码1效果图 示例代码2效果图 完结 问题描述 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间…

机器学习洞察 | 分布式训练让机器学习更加快速准确

机器学习能够基于数据发现一般化规律的优势日益突显,我们看到有越来越多的开发者关注如何训练出更快速、更准确的机器学习模型,而分布式训练 (Distributed Training) 则能够大幅加速这一进程。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源…