AI-启动
前言
我们都知道AI可以帮助我们完成很多工作,同时也可以帮助我们快速生成一些繁琐的文档;本篇介绍接入一些开源的大预言模型;
准备
OpenAPI
首先需要了解下什么是OpenAPI,OpenAPI是一种结构化的规范,它提供了一种标准的方式来定义API接口,包括端点(endpoints)、请求和响应的格式、参数、认证方法等;这就使得不同的系统和应用可以更容易的集成大模型,只要遵循OpenAPI规范,大模型就可以被封装成API服务,其他系统就可以通过标准的HTTP请求与这些API进行交互,对使用者而言,封装好一套嗲用大模型服务的API接口后,当要使用不同的大模型时可以平滑替换,这都是由于遵循了一套标准的好处;
接入方式
我们知道大模型要封装成一个服务后才能供其他应用使用,而这套服务由于遵循了OpenAPI对外开放接口,那么就可以提供一套模型的封装,使不同的模型生成一个服务;同时调用模型也可以生成一套通用的封装用于调用大模型对外的API服务;
方案一
方案一使用本地部署服务方式,硬件配置不够慎用,性能根据模型大小会有不同
Ollama
这里使用的是Ollama用来启动大模型API服务,ollama 官网提供了各种平台的安装包,以下是下载地址:https://ollama.com/download
安装模型
ollama安装完成后就可以开始安装模型,先选择一个模型安装,ollama提供了一个页面供用户查询可以安装的开源模型。https://ollama.com/search
在页面查询到想要安装的模块之后使用如下命令安装模型并启动:
ollama run [模型id]
安装示例
这里以llama3:latest为例:
ollama run llama3:latest
启动后就可以通过终端命令行和大模型交互了。
Open-WebUI
这里使用的是Open-WebUI,它是一个开源的用户界面框架,旨在提供简便的工具和接口,帮助用户轻松地访问和管理各种深度学习模型,尤其是大规模预训练语言模型。以下是对Open-WebUI的简要介绍:
开源框架:
Open-WebUI是一个开源项目,提供了灵活且可定制的用户界面,用于与各种深度学习模型进行交互。模型管理: 通过
Open-WebUI,用户可以方便地加载、配置和管理多个深度学习模型,包括GPT-4、BERT等大规模预训练模型。用户友好: 它提供了直观的界面,简化了模型使用过程,使非技术用户也能轻松上手进行自然语言处理任务。
集成支持:
Open-WebUI支持与多种后端深度学习框架(如TensorFlow、PyTorch)集成,提供高效的推理和训练功能。扩展性强: 用户可以根据需求自定义和扩展界面功能,以适应不同的应用场景和任务需求。
总之,Open-WebUI为用户提供了一个高效、直观的界面,使得大规模深度学习模型的使用更加便捷和高效。
下载
以下是Open-WebUI的Github地址,从这里将项目下到本地
https://github.com/open-webui/open-webui
部署
这里使用的是Docker部署,只需要在项目文件下使用Docker命令启动一个容器即可,当ollama与Open-WebUI部署在一台机器上,只需要运行:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
如果ollama部署在服务器上,可以使用如下命令在启动Docker容器时指定ollama的地址
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
OLLAMA_BASE_URL是指ollama暴露的API地址,一般为服务器地址加 11434。如:OLLAMA_BASE_URL=<http://192.168.0.111:11434>
使用
部署完成后在浏览器打开http://localhost:3000,展示的是Open-WebUI的界面,第一次加载可能有点慢,然后注册一个用户就可以开始使用;
模型选择
在对话框的左上角有下拉框,可以看到已下载的所有模型,也可以搜索其他模型直接安装;
方案二
方案二使用远程调用,相对于方案一更受限制,但是不影响本地计算资源,这种方式主要调用线上大模型API服务,需要申请Key,同时会被限流。
这里申请了讯飞星火和MoonShot作为演示
在线大模型
星火认知
讯飞星火申请
目前版本为4.0Ultra,申请后在星火调试中心进行调试,或者从我的应用页面进入;
申请完成后需要记录下给出的参数,参数位置在4.0Ultra
参数:
APIPassword
APPID
APISecret
APIKey
测试
这里使用post测试,以下是curl
curl --location 'https://spark-api-open.xf-yun.com/v1/chat/completions' \
--header 'Authorization: Bearer [APIPassword]' \
--header 'Content-Type: application/json' \
--data '{
"model":"4.0Ultra",
"messages":[{
"role":"user",
"content":"讲个笑话吧"
}],
"temperature":0.7
}'
响应
{
"code": 0,
"message": "Success",
"sid": "cha000b4486@dx19444fa5a80b8f3532",
"choices": [
{
"message": {
"role": "assistant",
"content": "当然可以,这里有一个逗乐您的小笑话:\n“我不到学校去了!”上学第一天,阿罗放学回家便在一直哭。 “到底发生了什么事?”妈妈问。 “老师说,我是一个坏孩子,我要在家里坏,不在学校坏,我就不是坏孩子了。”希望这个笑话能让你露出笑容!"
},
"index": 0
}
],
"usage": {
"prompt_tokens": 4,
"completion_tokens": 68,
"total_tokens": 72
}
}
MoonShot
模型申请
目前申请的版本为moonshot-v1-8k,申请后需要在API Key管理处新增一个API Key,注意密钥只会在新建后显示一次,请及时保存
详情请查看使用文档,
测试
这里使用post测试,以下是curl
curl --location 'https://api.moonshot.cn/v1/chat/completions' \
--header 'Authorization: sk-2xyIeQ49Xl714yquKkMrIdvsuI4aZmnvgNHHKxEaXkk384Os' \
--header 'Content-Type: application/json' \
--header 'Cookie: aliyungf_tc=16bb526c719bc6113220e4e807c625a6b774414dd9cbd7bbe9563d7c3cd530a2' \
--data '{
"model":"moonshot-v1-8k",
"messages":[{
"role":"user",
"content":"讲个笑话吧"
}],
"temperature":0.7
}'
响应:
{
"id": "chatcmpl-677e36d9317b27ed3ba8be59",
"object": "chat.completion",
"created": 1736324825,
"model": "moonshot-v1-8k",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "当然可以。这里有一个经典的笑话:\n\n有一天,一只蚂蚁在森林里迷路了。它遇到了一只大象,于是走上前去问:“请问,我怎样才能走出这片森林呢?”\n\n大象低头看了看蚂蚁,然后抬起脚,踩在蚂蚁身上,说:“就像这样!”\n\n希望这个笑话能给你带来一点轻松和笑容。如果你还想听更多笑话,随时告诉我!"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 11,
"completion_tokens": 79,
"total_tokens": 90
}
}
更多
AI-启动的更多相关文章
- AI将带我们走向何方?
AI即人工智能,对科幻着迷的博主对此认知颇深,打算从科幻电影入手,先讲下未来的AI将给人类带来哪些变化,哪些思考. 从最初的<星际航行>中的各种星球.地形等的介绍,到各个鉴于的探索,以及其 ...
- Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统
Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统 作者: 深蓝色右手 来源: 博客园 发布时间: 2011-04-19 11:18 阅读: 1282 次 推荐: 0 ...
- 锁定“嵌入式AI”应用 中科创达启动第二轮成长
Thundersoft|中科创达软件股份有限公司 http://www.thundersoft.com/index.php 原文:http://tech.hexun.com/2017-08-29/1 ...
- 冰河指南AI技术社区基于ChatGPT正式启动运营
大家好,我是冰河~~ 最近ChatGPT真的太火了,科技圈几乎都在争相报导这个黑科技,它能够通过学习和理解人们的语言来和人类进行对话,能够与人们进行交流,甚至可以对你提出的问题进行分析,尽可能给出你想 ...
- 关于kali2.0rolling中metasploit升级后无法启动问题的解决总结
最近在学习metasploit的使用,文中提到可以使用msfupdate命令来对metasploit的payload.exploit等进行升级,我就试了一下,没想到升级过程并不麻烦,但升级后却出现了无 ...
- AI(二):人脸识别
微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测.可支持的人脸功能有:年龄.性别.头部姿态.微笑检测.胡须检测以及27个面部重要特 ...
- Linux内核装载和启动一个可执行程序
“平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 理解编 ...
- 开机SystemServer到ActivityManagerService启动过程分析
开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: /** ...
- [转]轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)
本文转自:http://blog.csdn.net/zapzqc/article/details/42237935 由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最 ...
- 启动页面设置,icon图标设置
更多尺寸像素如何放置请看:http://chicun.jammy.cc/ 如何设置App的启动图,也就是Launch Image? 新建一个iosLaunchImage文件夹
随机推荐
- 结合uWSGI和Nginx部署flask项目
在开发环境,我们一般使用python起一个web服务即可访问,但是对于生产环境来说,我们一般使用nginx+uWSGI的方式进行部署. 使用Nginx优点: 安全:不管什么请求都要经过代理服务器,这样 ...
- AtCoder Beginner Contest 296
Transition Game 给定序列\(a\),\(1<=a_i<=n\),一场游戏有\(n\)个回合,第\(i\)回合时,第一个人先指定一个任意数\(k\),第二个人任意选定一个\( ...
- groovy 内存回收测试
问题 在使用我们的开发平台时,客户怀疑我们的动态执行脚本会导致系统内存回收的问题,导致系统不响应,为此我专门针对这个问题,做一下详细的测试,看看是不是到底有什么影响. 测试步骤 1.使用编写一个控制器 ...
- 使用gulp 压缩js
js 编写后文件太大,可以使用gulp 来进行压缩. 具体步骤如下: 1.创建一个工作目录 在该目录下安装 gulp npm install gulp 安装gulp-uglify 模块 npm ins ...
- 题解 ICPC 2019 SH 区域赛 F 树上简单问题
题解 ICPC 2019 SH 区域赛 F 树上简单问题 CF的Gym里没找着 牛客的题目链接 首先这个题多测非常SB, 每次都要清空, 需要特别注意. 树剖应该都会吧, Defad之后也会发博客讲解 ...
- AspNetCore全局异常处理
在开发ASP.NET Core应用程序时,全局异常处理是一个重要的概念.它允许我们集中处理应用程序中未捕获的异常,确保应用程序的稳定性和用户体验. 1. 为什么需要全局异常处理 全局异常处理的目的是为 ...
- 鸿蒙UI开发快速入门 —— part07:组件状态管理之@Prop/@Link装饰器
1.前言 我们在上一章学习了@State装饰器,@State装饰器的作用范围仅仅在当前组件,接下来,我们讨论如何从父组件中传入参数到子组件,让子组件随着父组件的状态发生变化.本章将要介绍的就是:@Pr ...
- 鸿蒙UI开发快速入门 —— part06:组件状态管理之@State装饰器
1.说在前面的话 在前五个章节中,我们构建的页面基本都是静态的页面,如果希望构建一个动态的.有交互的界面,就需要引入"状态"的概念,以便随着用户的交互,界面随着发生变化,例如如下的 ...
- 即时通讯技术文集(第37期):IM代码入门实践(Part1) [共16篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第37 期. [- 1 -] 一种Android端IM智能心跳算法的设计与实现探讨(含样例代码) ...
- WPF 记录鼠标、触摸多设备混合输入场景问题
本文记录在WPF应用中鼠标.触摸混合输入,鼠标事件抬起时不会有MouseUp事件触发的问题. 事件输入我们都知道有3类:鼠标.触摸.触笔,鼠标是windows系统出来就有的事件,后面加了触笔.触摸. ...