【AI+应用】一步步搭建聊天机器人搭配多种国内外大模型以及api接口调用

如果你看过我之前写的一篇文章 【AI+应用】怎么快速制作一个类chatGPT套壳网站,  你可能顺利地使用chatGPT、Gemini, 用得很happy。

突然有一天,你发现一些网站,除了chatGPT、Gemini ,还可以切换使用国内外其他的大模型。你肯定想,这些模型我也想拥有。两个字,安排。

先推荐开源软件 lobeChat, https://github.com/lobehub/lobe-chat 。看下官网介绍

1、已支持的模型服务商

  • AWS Bedrock:集成了 AWS Bedrock 服务,支持了 Claude / LLama2 等模型,提供了强大的自然语言处理能力。

  • Google AI (Gemini Pro、Gemini Vision):接入了 Google 的 Gemini 系列模型,包括 Gemini 和 Gemini Pro,以支持更高级的语言理解和生成。

  • ChatGLM:加入了智谱的 ChatGLM 系列模型(GLM-4/GLM-4-vision/GLM-3-turbo),为用户提供了另一种高效的会话模型选择。

  • Moonshot AI (月之暗面):集成了 Moonshot 系列模型,这是一家来自中国的创新性 AI 创业公司,旨在提供更深层次的会话理解。

2、支持本地大语言模型 (LLM),基于 Ollama 支持了本地模型的使用。  之前我写过一篇 【人工智能】电脑本地从零开始搭建属于自己的大模型

3 模型视觉识别 (Model Visual)

4 TTS & STT 语音会话

5 Text to Image 文生图

6 插件系统 (Function Calling)

这些功能,不都是我们想要的么, 各种大模型,本地大模型, 文生图、语音等。

使用也特别简单,如果你电脑安装过docker的话, docker不会用建议看一下菜鸟教程,这里就不写了。  https://www.runoob.com/docker/docker-tutorial.html

docker run -d -p 3210:3210 -e OPENAI_API_KEY=sk-xxxx -e OPENAI_PROXY_URL=https://api.xxx/v1 -e ACCESS_CODE=lobe66 --name lobe-chat lobehub/lobe-chat

其中OPENAI_API_KEY、OPENAI_PROXY_URL 换成自己的。如果服务器搭建在国外,直接可以访问,问题不大。如果国内呢,要么通过魔法直接官方获取地址,要么使用国内api代理来获取。

之前有同学私信我,想免费安装试用下找下感觉。这里推荐一个开源项目

https://github.com/chatanywhere/GPT_API_free   ,  GPT3.5按照readme流程可以免费试用,我试用了下GPT3.5没问题。它也提供付费的服务(国内api代理),我没用过,不做推荐。

对于程序员来说,API接口调用大模型 是项目想做的事情。国内外这么多大模型,我能不能用一套接口调用这些模型?

这里分2种情况, 如果你是一名大模型应用开发工程师, 肯定会想到LangChain 应用开发框架来搞。但大部分可能是传统的web应用开发工程师, 那么one-api这个项目 就比较合适你。项目地址  https://github.com/songquanpeng/one-api 。

这里不废话,直接截图

图片

用一套数据接口完成不同大模型的丝滑切换, 对于程序员来说,你肯定不希望 一会对接下文心一言api,一会对接下通义千问api吧。

图片

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

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

相关文章

使用vue3编写一个插件

创建插件文件:例如 myPlugin.js编写插件:插件应该导出一个对象,这个对象可以包含一个 install 方法。Vue 会调用这个 install 方法来安装插件。在这个方法中,你可以添加全局资源。 // myPlugin.js export default {install(app, o…

python】jupyter notebook导出pdf和pdf不显示中文问题

安装nbconvert 首先安装nbconvert才能将.ipynb文件转化为pdf、latex、html等。 conda install nbconvert安装Pandoc Pandoc官网下载地址: https://pandoc.org/installing.html 下载安装包github地址:https://github.com/jgm/pandoc/releases/tag/3.1.6.2 安装MiKTex 下载…

SpringBoot使用log4j2将日志记录到文件及自定义数据库

目录 一、环境说明 二、进行配置 1、pom.xml 2、log4j2.xml 3、CustomDataSourceProperties 4、ConfigReader 5、ConnectionFactory 连接工厂类,用于管理数据库连接 三、进行简单测试配置 1、LogUtils 2、LoginUserInfoHelper 3、LoginLogUtils 4、…

【Numpy】(1)创建数组

NumPy 是 Python 的一个开源数值计算扩展库,用于高性能的科学计算和数据分析。它提供了一个强大的N维数组对象ndarray,以及用于对这些数组进行操作的各种函数。 通过pip安装: pip install numpy创建数组 从列表创建 numpy.array可以通过多种方式创建,最直接的方式是使用…

Pulsar 社区周报 | No.2024.03.15 LTS 3.0.3 新版发布

“ 各位热爱 Pulsar 的小伙伴们,Pulsar 社区周报更新啦!这里将记录 Pulsar 社区每周的重要更新,周五发布。 ” 本期主题:LTS 3.0.3 发布 Apache Pulsar 新版发布: LTS(稳定性长期支持版)新版&am…

mysql统计数据库大小

ps:亲测可行,时间2024-03-15 15:18 mysql统计数据库大小 要统计MySQL数据库的大小,你可以使用以下SQL查询: SELECT table_schema AS "Database",ROUND(SUM(data_length index_length) / 1024 / 1024, 2) AS "Size (MB)"FROM info…

SpringMVC基础之工作流程

文章目录 SpringMVC 的工作流程1. 总图2. DispatcherServlet3. 必需的配置4. 加载配置文件的两个时机5. 定义控制器6. 创建 JSP 视图 SpringMVC 的工作流程 1. 总图 如上图,Spring MVC 程序的完整执行流程如下: 用户通过浏览器发送请求,请求…

Docker 系列2【docker安装mysql】【开启远程连接】

文章目录 前言开始步骤1.增加mysql挂载目录2.下载镜像2.启动容器具体步骤4.无法连接5.测试连接 总结 前言 本文开始,默认已经安装docker,如果你还没有完成这个步骤,请查看这一篇文章【docker安装与使用】 开始步骤 1.增加mysql挂载目录 m…

【Unity】进度条和血条的三种做法

前言 在使用Unity开发的时候,进度条和血条是必不可少的,本篇文章将简单介绍一下几种血条的制作方法。 1.使用Slider Slider组件由两部分组成:滑动区域和滑块。滑动区域用于显示滑动条的背景,而滑块则表示当前的数值位置。用户可…

HQL 55 题【持续更新】

前言 今天开始为期一个多月的 HQL 练习,共 55 道 HQL 题,大概每天两道,从初级函数到中级函数。这次的练习不再是基础的 join 那种通用 SQL 语法了,而是引入了更多 Hive 的函数(单行函数、窗口函数等)。 我…

双线性插值缩放算法原理以及matlab与verilog的实现(二)

系列文章目录 双线性插值缩放算法原理以及matlab与verilog的实现(一) 文章目录 系列文章目录前言一、前提回顾二、FPGA实现步骤2.1 找到源图像四个像素点求目标像素点2.2 FPGA实现步骤2.3 总体框架2.4 ROM缓存模块2.5 VGA模块2.6 双线性算法模块 三、下…

mysql实战开发之 mysql 删除一张表某个字段的sql语句

有一张表, 我需要删除这张表其中的某一个或者某几个字段, 相信大家在日常开发中应该会遇到这种情况, 然后刚好自己接触的项目安装的mysql关闭了允许远程连接的设置, 也就是说不允许使用类似于navicat 等可视化工具连接, 那么就没办法通过可视化工具直接去通过鼠标操作就可以 完…

Lua 学习

参照 注释 -- 这是单行注释--[[这是多行注释--]]if语句 if true thenprint(true) endif else语句 nil是false if nil thenprint("nil被当作true处理") elseprint("nil被当作false处理") end运算符 % 取余 ^ 乘幂 A10,A^2100 // 整除运算符&#xff0…

【 JS 】闭包

“在黑暗的时刻,不要忘记你内心的光芒,它将指引你找到前进的方向,迈向胜利的辉煌。” 定义 MDN 对闭包的定义为: 闭包是指那些能够访问自由变量的函数。 那什么是自由变量呢? 自由变量是指在函数中使用的,…

linux系统docker容器的容器卷

容器卷 容器卷宿主机和容器之间映射添加容器卷读写规则映射添加卷的继承和共享 容器卷 挂载容器卷加上--privileged参数避免权限原因报错 --privilegedturn //开启权限Docker挂载主机目录访问如果出现cannot open directory .: Permission denied 解决办法&#xf…

【MySQL 系列】MySQL 语句篇_DDL 语句

DDL( Data Definition Language,数据定义语言)用在定义或改变表的结构数据类型、表之间的链接和约束等初始化工作上。常用的语句关键字包括 CREATE、 DROP、 ALTER 等。 文章目录 1、MySQL 中的 DQL 语句2、MySQL 中库表的 DQL 语句详解2.1、…

【大数据面试题】014 Flink CDC 用过吗,请简要描述

一步一个脚印,一天一道面试题。 完成比完美更重要,明天更新完! Flink CDC 的诞生背景 Flink CDC 的全称是 Change Data Capture(变更数据捕获) 每一项技术的诞生都是为了解决某个问题,某个痛点。而 Flink…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 📝二叉树的顺序结构及实现🌠 二叉树的顺序结构🌠 堆的实现🌠 堆的实现🌉堆向下调整算法🌉堆的创建🌉建堆时间复杂度🌉堆的插入🌉堆的删除 🌠堆向上调…

mysql判断指定字符串在字符串中是否存在

相关函数有:locate、FIND_IN_SET。这两者都可以用来在字符串中查找子串,均为两个参数。 LOCATE:主要是针对普通的字符串查找,参数1在参数2中是否存在,若存在则返回首次出现的索引位置(第一个位置索引为1&am…

详细分析Java中Stream流和for循环的差异之处

目录 前言1. 基本知识2. Demo 前言 事情起因是遍历大数据的时候,数据卡顿很严重 对于Java的基本知识推荐阅读:java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全) 1. 基本知识 在Java中,Stream API提供…