前言

我们都知道AI可以帮助我们完成很多工作,同时也可以帮助我们快速生成一些繁琐的文档;本篇介绍接入一些开源的大预言模型;

准备

OpenAPI

首先需要了解下什么是OpenAPIOpenAPI是一种结构化的规范,它提供了一种标准的方式来定义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-4BERT 等大规模预训练模型。

  • 用户友好: 它提供了直观的界面,简化了模型使用过程,使非技术用户也能轻松上手进行自然语言处理任务。

  • 集成支持: Open-WebUI 支持与多种后端深度学习框架(如 TensorFlowPyTorch)集成,提供高效的推理和训练功能。

  • 扩展性强: 用户可以根据需求自定义和扩展界面功能,以适应不同的应用场景和任务需求。

    总之,Open-WebUI为用户提供了一个高效、直观的界面,使得大规模深度学习模型的使用更加便捷和高效。

下载

以下是Open-WebUIGithub地址,从这里将项目下到本地

https://github.com/open-webui/open-webui

部署

这里使用的是Docker部署,只需要在项目文件下使用Docker命令启动一个容器即可,当ollamaOpen-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-启动的更多相关文章

  1. AI将带我们走向何方?

    AI即人工智能,对科幻着迷的博主对此认知颇深,打算从科幻电影入手,先讲下未来的AI将给人类带来哪些变化,哪些思考. 从最初的<星际航行>中的各种星球.地形等的介绍,到各个鉴于的探索,以及其 ...

  2. Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统

    Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统 作者: 深蓝色右手  来源: 博客园  发布时间: 2011-04-19 11:18  阅读: 1282 次  推荐: 0 ...

  3. 锁定“嵌入式AI”应用 中科创达启动第二轮成长

    Thundersoft|中科创达软件股份有限公司  http://www.thundersoft.com/index.php 原文:http://tech.hexun.com/2017-08-29/1 ...

  4. 冰河指南AI技术社区基于ChatGPT正式启动运营

    大家好,我是冰河~~ 最近ChatGPT真的太火了,科技圈几乎都在争相报导这个黑科技,它能够通过学习和理解人们的语言来和人类进行对话,能够与人们进行交流,甚至可以对你提出的问题进行分析,尽可能给出你想 ...

  5. 关于kali2.0rolling中metasploit升级后无法启动问题的解决总结

    最近在学习metasploit的使用,文中提到可以使用msfupdate命令来对metasploit的payload.exploit等进行升级,我就试了一下,没想到升级过程并不麻烦,但升级后却出现了无 ...

  6. AI(二):人脸识别

    微软提供的人脸识别服务可检测图片中一个或者多个人脸,并为人脸标记出边框,同时还可获得基于机器学习技术做出的面部特征预测.可支持的人脸功能有:年龄.性别.头部姿态.微笑检测.胡须检测以及27个面部重要特 ...

  7. Linux内核装载和启动一个可执行程序

    “平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 理解编 ...

  8. 开机SystemServer到ActivityManagerService启动过程分析

    开机SystemServer到ActivityManagerService启动过程 一 从Systemserver到AMS zygote-> systemserver:java入层口: /** ...

  9. [转]轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)

    本文转自:http://blog.csdn.net/zapzqc/article/details/42237935 由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最 ...

  10. 启动页面设置,icon图标设置

    更多尺寸像素如何放置请看:http://chicun.jammy.cc/ 如何设置App的启动图,也就是Launch Image? 新建一个iosLaunchImage文件夹

随机推荐

  1. 什么是.NET的强类型字符串(Strongly typed string)?

    在.NET中,强类型字符串(Strongly typed string)并不是一个官方的概念,是指使用特定的结构来表示某种类型字符串数据的编码实践.类似于枚举,可以提供编译时检查类型,减少运行时错误, ...

  2. mongoose中的exec()有什么用?

    是什么? .exec() 和 .save() 一样是 Mongoose 的异步操作,都返回一个 thenable . 怎么用? 我们先定义一个 query 对象: const query = MyMo ...

  3. DDPM论文解读

    DDPM(Denoising Diffusion Probabilistic Models) 论文研究背景 扩散概率模型(Denoising Diffusion Probabilistic Model ...

  4. PDFsharp 1.50

    PDFsharp 1.50 Preview Information - PDFsharp & MigraDoc PDFShapr 1.50 修复与改进 支持 Object Streams - ...

  5. .NET 7 中的限流

    .NET 中的限流 https://devblogs.microsoft.com/dotnet/announcing-rate-limiting-for-dotnet/ 这里我们要宣布的是集成为 .N ...

  6. [MySQL]数据库修复(Example:1146 Error )

    删除数据库自带的表,导致的异常问题修复方法如下 运行cmd,查询MYSQL所在位置 where mysql cd到MySQL安装目录的bin目录下 执行命令 mysql_upgrade -u root ...

  7. 【Python】【Matplotlib】词云图

    关于从网页获取文本 import requests from bs4 import BeautifulSoup code = requests.request("post",&qu ...

  8. TypeNameExtractor could not be found

    TypeNameExtractor could not be foundException 一.注意: 如果项目中使用了 knif4j或swagger (knif4j内核中就使用了swagger) 项 ...

  9. Qt数据库应用17-通用数据库请求

    一.前言 数据库请求是在数据库采集的基础上,换成http请求的形式来获取数据,这样就脱离了数据库组件,而采用的通用的http请求的形式从数据库拿数据库,这个通用性就非常广泛了,比如对方用java采集到 ...

  10. Qt编写安防视频监控系统48-视频参数

    一.前言 视频参数之前在基本参数中,后面越来越多,直接独立了出来,甚至还拆分出来了视频参数1.视频参数2,参数越来越多分组也越来越多的时候,你会发现分组名称都不够用或者不方便命名,不能直观的表示该分组 ...