LM Studio-简化安装和使用开源大模型 | OpenAI API 文字转语音本地运行程序分享

原文:LM Studio-简化安装和使用开源大模型 | OpenAI API 文字转语音本地运行程序分享 - 知乎

实测在Mac上使用Ollama与AI对话的过程 - 模型选择、安装、集成使用记,从Mixtral8x7b到Yi-34B-Chat

官网:https://lmstudio.ai/

最近用上了LM Studio,对比Ollama,LM Studio还支持Win端,支持的模型更多,客户端本身就可以多轮对话,而且还支持启动类似OpenAI的API的本地HTTP服务器。

https://lmstudio.ai/

动图封面

我推荐dolphin-2.6-mistral 7B和dolphin-2.7-mixtral-8x7b模型。

下载后选择模型,设置参数,再重新加载模型。

实测,dolphin-2.6-mistral 7B模型在我Mac M1 Max 32G的电脑上运行速度很快,生成质量不错,而且dolphin是可以生成NSFW内容的。

LM Studio的特色功能

我最喜欢LM Studio的功能是支持启动类似OpenAI API的本地HTTP服务器。

也就是说,如果你之前做过一些应用,用的是OpenAI API的模型,那现在可以非常方便转成本地模型。

从OpenAI API到本地模型:平滑过渡

这里的示例代码非常好用,稍微修改下,既可做本地模型使用,而且也可以写OpenAI的套壳应用。

本地模型chat-python

# Example: reuse your existing OpenAI setup
from openai import OpenAI

# Point to the local server
client = OpenAI(base_url="http://localhost:1234/v1", api_key="not-needed")

completion = client.chat.completions.create(
  model="local-model", # this field is currently unused
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "how to be happy."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message.content)

OpenAI-chat-python

from openai import OpenAI
import os

client = OpenAI(base_url="https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai/", api_key=os.getenv('OPENAI_API_KEY'))

completion = client.chat.completions.create(
  model="gpt-3.5-turbo-1106", 
  messages=[
    {"role": "system", "content": "Always answer in rhymes."},
    {"role": "user", "content": "write a song."}
  ],
  temperature=0.7,
)

print(completion.choices[0].message.content)

Tips:

1. 将你的 OPENAI API 密钥导出为环境变量。

export OPENAI_API_KEY=YOUR_OPENAI_API_KEY

2. 这里用到Cloudflare的AI Gateway,方便链接到OpenAI API。

新建网关(下图我已创建了一个),点击openapi-proxy API Endpoints,可以看到ACCOUNT_TAG。

更多OpenAI · Cloudflare AI Gateway docs请看这里:

https://developers.cloudflare.com/ai-gateway/providers/openai

当通过Cloudflare AI Gateway运行后,可以在实时日志里查看每一次调用状态。

利用OpenAI API进行文字转语音

我是在使用LM Studio之前找OpenAI API官方文档,编写了几个本地运行的Python代码,最终做了一个本地的程序。

它帮我解决了一个问题:使用OpenAI API的文字转语音服务,生成视频配音。

这里需要注意下,GPT4里关于OpenAI API的知识不是最新的,需要在OpenAI官方文档里检索。

https://platform.openai.com/docs/api-reference

https://github.com/openai

下图的信息是过时的。

声音类型

我编写的程序支持选声音、是否合并段落来生成语音。

界面设计:Tldraw与Gradio的应用

我是用Tldraw帮我做的界面,教程请见tldraw make real:利用AI一键从原型图到生成真实可用的代码。

生成的UI代码最后又让GPT4修改了一下。

我还试了不用html,而用Gradio来做UI。

Gradio是一个开源的Python库,它允许用户为机器学习模型构建用户界面,并将其部署在几行代码中。Gradio的主要优势在于其易用性,只需简单定义输入和输出接口,就可以快速构建简单的交互页面,并轻松部署模型。

这个界面大家应该很熟悉,很多大模型的demo用的是这种界面。

由于刚接触Gradio不久,为避免GPT4出现上文OpenAI文档过时的情况,我做了个“Gradio文档助手”GPT来帮我写Gradio代码。

https://www.gradio.app/docs/

我是通过gpt-crawler来获取Gradio文档的。

https://github.com/BuilderIO/gpt-crawler

如它的官网展示,修改的参数很少,很方便就能将文档下载下来。

文本转语音实践:Python代码分享

这里分享直接可以运行的text to speech python代码:

from openai import OpenAI
import os
import datetime

client = OpenAI(base_url="https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai/", api_key=os.getenv('OPENAI_API_KEY'))

# 指定的文本文件路径和语音文件保存路径
input_file_path = 'text2speech-input.txt'
current_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S")

# 读取输入文件并生成语音
with open(input_file_path, 'r') as file:
    lines = file.readlines()
    for i, line in enumerate(lines):
        input_text = line.strip()
        speech_file_path = f'/Users/yourmac/Downloads/{current_time}_{i+1}.mp3'
        
        response = client.audio.speech.create(
            model="tts-1",
            voice="onyx",
            input=input_text
        )

        # 保存语音文件
        response.stream_to_file(speech_file_path)
        print(f"Speech {i+1} saved to {speech_file_path}")

同目录下新建文件text2speech-input.txt,将要转录的文字放在文档里。

我还编写了根据AI绘图提示词批量生成图片的程序,只是DALLE3的API费用太贵,小试一下。

本地模型与OpenAI模型的结合

回到开头介绍的LM Studio,本地大模型可以完成许多有趣的任务,而不需要调用开销更高的API。例如,本地模型可以生成创意的绘画提示词和主题,以帮助艺术家获得灵感。它们也可以用来写出引人入胜的故事大纲。

除了独立完成这些创作任务外,本地模型还可以与OPENAI等API结合,发挥各自的优势。比如,本地模型可以先生成初始素材,再由OPENAI模型进行细化和提升。这样既节省了调用API的成本,又能发挥大模型的强大能力。探索本地模型和API的最佳组合,能帮助我们在成本和效果之间找到最好的平衡点。

推荐阅读:与AI相关的创新体验

Ollama上线 Nous Hermes 2 与 Dolphin Phi 2.6 模型及 Ollama Web UI 体验分享

AI实践之路:详解Gemini Pro API在Google Colab和本地Python中的应用策略

掌握微软Phi-2模型:从深入解析到实际安装流程

深度使用GPTs的分享——授人以鱼不如授人以渔

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件工程知识梳理6-运行和维护

软件维护需要的工作量很大,大型软件的维护成本高达开发成本的4倍左右。所以,软件工程的主要目的就是要提高软件的可维护性,减少软件维护所需要的工作量,降低软件系统的总成本。 定义:软件已经交付使用之后,…

java面向对象基础(面试)

一、面向对象基础 1. 面向对象和面向过程的区别 面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题。面向对象会先抽象出对象,然后用对象执行方法的方式解决问题。 2.创建一个对象用什么运算符?对象实体与对象引用有何不同? n…

数据防泄密方案公司(dlp数据防泄密厂商排名)

在当今数字化时代,数据已经成为了企业最重要的资产之一。然而,随着企业信息化的不断深入,数据泄露的风险也越来越大。为了保护企业的核心数据,越来越多的企业开始重视数据防泄密工作,并寻求专业的数据防泄密方案提供商…

4-MongoDB索引知识

4.1 概述 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要…

api接口1688商品详情接口采集商品详情数据商品价格详情页数据可支持高并发调用演示示例

接入1688商品详情API接口的步骤如下: 注册账号:首先,你需要在1688开放平台注册一个账号。 创建应用:登录后,在控制台中找到“我的应用”,点击“创建应用”。 获取API密钥:创建应用后&#xff…

VSCode 设置代理

Open Visual Studio Code, click the settings icon in the lower left corner, and click Settings.

Web3.0初探

Web3.0初探 一、互联网发展史二、什么是Web3.0?三、现在的发展方向(衍生出来的产品):四、目前问题五、Web3.0与元宇宙 一、互联网发展史 Web3.0也就是第三代互联网。最新版本的Web3.0是以太坊的创始合伙人Gavin Wood在2014年提出…

基于Python的货币识别技术实现

目录 介绍本文的目的和意义货币识别技术的应用场景货币识别的基本原理图像处理技术在货币识别中的应用特征提取方法:SIFT、HOG等支持向量机(SVM)分类器的使用实现过程数据集的收集和预处理特征提取和训练分类器参考文献介绍 本文的目的和意义 本文的目的是介绍如何利用Pyt…

观测云产品更新 | 告警策略、智能监控、场景图表、查看器等

观测云更新 监控 1、告警策略新增支持配置自定义时间段发送告警通知,您可以自由按日期、时间点配置不同的告警通知及对象,满足不同通知需求;重复告警新增【永久】这一事件选项; 2、新增支持配置多组告警策略,帮助您更…

解决:ModuleNotFoundError: No module named ‘torchvision’

解决:ModuleNotFoundError: No module named ‘torchvision’ 文章目录 解决:ModuleNotFoundError: No module named torchvision背景报错问题报错翻译报错位置代码报错原因解决方法方法一,直接安装方法二,手动下载安装方法三&…

Kotlin 协程:深入理解 ‘async { }‘

Kotlin 协程:深入理解 ‘async { }’ Kotlin 协程是一种强大的异步编程工具,它提供了一种简洁、易读的方式来处理并发和异步操作。在 Kotlin 协程库中,async {} 是一个关键的函数,它允许我们启动一个新的协程,并返回一…

安卓相对布局RelativeLayout

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"150dp"><TextViewandroid…

【微服务】Spring Boot集成ELK实用案例

推荐一款我一直在用国内很火的AI网站&#xff0c;包含GPT3.5/4.0、文心一言、通义千问、智谱AI等多个AI模型&#xff0c;支持PC、APP、VScode插件同步使用&#xff0c;点击链接跳转->ChatGPT4.0中文版 一、前言 在现代软件开发中&#xff0c;微服务架构已成为一种流行趋势。…

ChatGPT可与自定义GPTs一起使用,智能AI代理时代来啦!

1月31日凌晨&#xff0c;OpenAI在社交平台公布了一个超强新功能&#xff0c;可以在ChatGPT中输入“GPTs名字”的方法&#xff0c;调用多个自定义GPTs一起协同工作。 例如&#xff0c;我想开发一款社交APP&#xff0c;1&#xff09;可以先用专业分析GPTs做一下市场调研&#xf…

智能指针——浅析

智能指针 本人不才&#xff0c;只能将智能指针介绍一下&#xff0c;无法结合线程进行深入探索 介绍及作用 在异常产生进行跳转时&#xff0c;通过栈帧回收进行内存释放&#xff0c;防止内存泄漏 基于RAII思想可以创建出只能指针 RAII(Resource Acquisition Is Initializatio…

人麻了,刚面试入职就遇到MySQL亿级大表调优...

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

基于微服务的高考志愿智能辅助决策系统(附源码)

目录 一.引言 1、编写目的 2、系统功能概述 二.功能分析 三.微服务模块 1、微服务用户相关模块 &#xff08;1&#xff09;用户注册 &#xff08;2&#xff09;用户登录 &#xff08;3&#xff09;用户信息管理 &#xff08;4&#xff09;用户操作 2、微服务文件云存…

TensorFlow2实战-系列教程13:Resnet实战1

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 Resnet实战1 Resnet实战2 Resnet实战3 1、残差连接 深度学习中出现了随着网络的堆叠…

SpringCloud Gateway(4.1.0) 返回503:原因分析与解决方案

文章目录 一、环境版本二、原因分析三、解决方案 一、环境版本 Versionspring-cloud-dependencies2023.0.0spring-cloud-starter-gateway4.1.0Nacosv2.3.0 二、原因分析 在 Spring Cloud Gateway 的早期版本中&#xff0c;Ribbon 被用作默认的负载均衡器。随着Spring Cloud的…

jsonpath相关---JSONPath - 用于 JSON 的 XPath

一.简介 XML 的一个经常强调的优点是提供了大量工具来分析、转换和有选择地从 XML 文档中提取数据。XPath 就是这些强大的工具之一。 现在是时候想知道&#xff0c;是否需要像 XPath4JSON 这样的东西&#xff0c;以及它可以解决哪些问题。 无需特殊脚本&#xff0c;即可以交…