前言

我们都知道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. Vue 二维码组件

    1.前言 该组件依赖qrcode.js与element-ui 支持二维码大小配置,点击大图预览 该组件以vue文件形式进行封装,需要配置httpVueLoader插件进行引入,其他格式请自行更改源码 ...

  2. .NET静态代码编织——肉夹馍(Rougamo)5.0

    肉夹馍(https://github.com/inversionhourglass/Rougamo),一款编译时AOP组件.相比动态代理AOP需要在应用启动时进行初始化,编译时完成代码编织的肉夹馍减少 ...

  3. 要构建此项目,必须安装以下工作负载: wasm-tools

    要构建此项目,必须安装以下工作负载: wasm-tools 要安装这些工作负载,请运行以下命令: dotnet workload restore AdminAPP C:\Program Files\d ...

  4. 《JavaScript 模式》读书笔记(4)— 函数3

    这篇,我们来学习下自定义函数以及即时函数的内容. 四.自定义函数 函数可以动态定义,也可以分配给变量.如果创建了一个新函数,并且将其分配给保存了另外函数的同一个变量,那么就以一个新函数覆盖了旧函数.在 ...

  5. Vue.js与jQuery混用

    标签: js 坑位 最近开发一个需求,项目有用到jQuery和Vue,发现我jQuery绑定的事件全部都失效了. Why Vue会重新渲染dom,加上是异步实例Vue.所以正常写程序的话jq的$()获 ...

  6. C++ Builder 开发64程序 使用AnsiString的ToInt和ToDouble会内存泄漏

    AnsiString str="adsfaga"; try { int v=str.ToInt(); } catch(...) { } 上面的代码,在C++ Builder 10 ...

  7. COS 音视频实践|给你的视频加把锁

    导语 为了保障视频内容安全,防止视频被非法下载和传播,对象存储(Cloud Object Storage,COS)数据处理基于数据万象 CI 提供了 HLS 视频加密的功能,拥有相比于私有读文件更高的 ...

  8. 【Python】【Pandas】使用concat添加行

    添加行 t = pd.DataFrame(columns=["姓名","平均分"]) t = t.append({"姓名":"小红 ...

  9. 【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模

    目录 01.用例图 用例图的4组成 (一)参与者 (二)用例 (三)关系 表达关系的符号 泛化关系 (四)系统 其他 02.用例文档 简化的用例文档 注意事项 03.活动图 主要组件 建模活动图步骤 ...

  10. RedisTemplate配置的jackson.ObjectMapper里的一个enableDefaultTyping方法过期解决

    1.前言 最近升级SpringBoot,从2.1.6版本升级到2.2.6版本,发现enableDefaultTyping方法过期过期了. 该方法是指定序列化输入的类型,就是将数据库里的数据安装一定类型 ...