基于LM Studio + LLaMA3 建立本地化的ChatGPT

4月19日,Facebook母公司Meta重磅推出了Llama3。即便大家现在对于大厂和巨头频繁迭代AI模型的行为已经见怪不怪,Meta的Llama3仍旧显得与众不同,因为这是迄今最强大的开源AI模型。LLaMA模型通常采用了类似于GPT(由OpenAI开发)的变换器(Transformer)架构。这种架构特别适合处理大量的自然语言数据,并能有效地学习语言的深层结构和上下文。结合LM Studio,我们就可以将LLaMA3部署在本地服务器,广泛的应用客户服务、RAG等领域。下面是一个详细的动手实践操作供大家参考。

LM Studio的下载和安装可参考以下链接:

用LM Studio:2分钟在本地免费部署大语言模型,替代ChatGPT-CSDN博客

一、在LM Studio上下载 LLaMA3 

当启动LM Studio的时候,系统会提示升级,升级完毕后。如下图:

主页上可以看到最新支持的LLaMA3的模型,点击下载按钮直接下载 (注意这里要通过魔法才行下载模型)

 下载后的模型在My Models这里可以看到

 二、启动Local Server

选择LLama3 模型,选择 Start Server 按钮

 Local Server启动之后如下图:

三、客户端访问和测试Local Server

 1、Python Code简单测试访问

下载Python 3.11 并安装openai Python 包

pip install -r requirements.txt

requirements.txt 内容如下:

 openai==0.28.0

 

import openai# Set the base URL and API key for the OpenAI client
openai.api_base = "http://localhost:1234/v1"
openai.api_key = "not-needed"# Create a chat completion
completion = openai.ChatCompletion.create(model="local-model",  # this field is currently unusedmessages=[{"role": "system", "content": "Provide detailed technical explanations."},{"role": "user", "content": "Introduce yourself."}],temperature=0.7,
)# Print the chatbot's response
print(completion.choices[0].message.content)

返回结果如下图:

 

2、填写系统提示词,测试交互式对话

import openai# Configuration for OpenAI API
openai.api_base = "http://localhost:1234/v1"
openai.api_key = "not-needed"# Function to create a chat completion with a dynamic user prompt
def create_chat_completion(user_input, system_message):return openai.ChatCompletion.create(model="local-model",messages=[{"role": "system", "content": system_message},{"role": "user", "content": user_input}],temperature=0.7,)def main():# 预定义的系统提示词 system_message = ("你是一位资深的小红书运营人员,你目前负责的内容方向是电子数码,你的任务是生成小红书的内容文案,要求分解长句,减少重复,语气轻松幽默,具有真题可读性。请用中文和用户对话"
)# Chat loopwhile True:user_input = input("User: ")if user_input.lower() in ['exit', 'bye', 'end']:print("Exiting the chat.")breakcompletion = create_chat_completion(user_input, system_message)print("Model Response: ", completion.choices[0].message.content)if __name__ == "__main__":main()

 执行Python code 的效果如下,虽然Llama3能够理解中文的输入,但是输出还是英文的。大家可以下载专门的针对汉语训练的LLama3的衍生版本试试看。 

Python 执行效果:

 后台Local Server日志:

 3、采用OpenAI的Python Code 供参考

import openai# OpenAI API 配置
class OpenAIConfig:def __init__(self):self.base_url = "http://localhost:1234/v1"self.api_type = "open_ai"self.api_key = "not-needed"# 将系统提示词存放在文本文件中加载进来
def read_file_content(file_path):try:with open(file_path, "r") as file:return file.read().strip()except FileNotFoundError:print(f"File not found: {file_path}")return None# Function to initiate conversation with the local-model and establishes roles and where the instructions come from.
def initiate_conversation(input_text, system_message):response = openai.ChatCompletion.create(model="local-model",messages=[{"role": "system", "content": system_message},{"role": "user", "content": input_text}],temperature=0.7,)return response.choices[0].message.content.strip()def main():# Instantiate configurationconfig = OpenAIConfig()openai.api_base = config.base_urlopenai.api_key = config.api_key# Read system message from filesystem_message = read_file_content("my_prompt.txt")if system_message is None:return# Conversation loopwhile True:user_input = input("User: ")if user_input.lower() in ['exit', 'bye', 'end']:print("Exiting the conversation.")breakmodel_response = initiate_conversation(user_input, system_message)print("Model Response: ", model_response)if __name__ == "__main__":main()

以上就是结合LM Studio + LLaMA3 大模型在本地部署,提供Chat GPT功能的全过程,大家可以尝试一下。

 

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

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

相关文章

【Qt】error LNK2001: 无法解析的外部符号

参考:Qt/VS LNK2019/LNK2001:无法解析的外部符号_qt lnk2001无法解析的外部符号-CSDN博客 微软官方报错文档-链接器工具错误 LNK2019 __declspec error LNK2001: 无法解析的外部符号 "__declspec(dllimport) 原因 以这种为前缀的基本上跟库相关…

pnpm install报错 Value of “this“ must be of type URLSearchParams

执行pnpm install的时候就报错Value of “this” must be of type URLSearchParams 由于之前执行没有出现过这个问题,最近在使用vue3所以使用了高版本的node,怀疑是node版本的问题。 解决: 检查node版本 node -v当前使用的是20.11.0的 修改…

(delphi11最新学习资料) Object Pascal 学习笔记---第10章第3节(事件驱动编程)

10.3 事件驱动编程 ​ 在基于组件的程序库中(在许多其他情况下也是如此),您编写的代码不仅仅是一连串平顺的动作序列,而主要是反应的集合。这意味着你应该定义应用程序在发生某些事情时做出“反应”。这里“某些事情”可以是用户…

《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录

往期 《ESP8266通信指南》6-创建TCP服务器(AT指令)-CSDN博客 《ESP8266通信指南》5-TCP通信透传模式(AT指令)-CSDN博客 《ESP8266通信指南》4-以Client进行TCP通信(AT指令)-CSDN博客 《ESP8266通信指南》3-常用AT指令详解-826…

junit组件的使用

JUnit 是一个广泛使用的 Java 单元测试框架,它帮助开发者编写可重复运行的测试用例来验证代码的正确性。下面是使用 JUnit 进行单元测试的基本步骤和一些关键概念: 安装与配置 依赖管理:如果你使用的是 Maven 或 Gradle 等构建工具&#xff…

OneFlow概念清单

OneFlow概念清单 摘要: OneFlow是一个开源的深度学习框架,旨在为科研人员和开发者提供一个易于使用、高效且灵活的平台。本文将详细介绍OneFlow的核心概念,包括其架构、特性以及在深度学习领域的应用。通过阅读本文,读者将能够全…

elasticsearch 常用语法汇总

文章目录 前言elasticsearch 常用语法汇总1. 创建索引2. 检索索引信息3. 删除索引4. 文档操作4.1. 对blog_new索引指定文档ID新增4.2. 对blog_new索引不指定文档ID新增,随机文档ID:4.3. 获取文档4.4. 更新文档4.5. 删除文档 5. 查询5.1. 匹配查询5.2. 范围查询5.3. …

HackMyVM-Vulny

目录 信息收集 arp nmap nikto WEB信息收集 主页信息收集 gobuster RCE漏洞 反弹shell 提权 系统信息收集 横向渗透 flock提权 信息收集 arp ┌──(root㉿0x00)-[~/HackMyVM] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC…

从NuGet获取OpenTK

OpenTK是一个开源、跨平台的游戏开发库,由MonoGame团队创建。它为C#开发者提供了一个简单易用的接口,以便使用OpenGL、OpenAL和OpenCL进行3D渲染、音频处理和并行计算。OpenTK的目标是提供一个一致且高效的框架,让开发者能够专注于构建他们的…

鸿蒙(HarmonyOS)性能优化实战-Trace使用教程

概述 OpenHarmony的DFX子系统提供了为应用框架以及系统底座核心模块的性能打点能力,每一处打点即是一个Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用SmartPerf-Host调试工具对Trace进行解析,在其绘制…

arcgis js 4.x加载SceneLayer并实现基于属性查询定位及高亮

一、代码 <!DOCTYPE html> <html> <head><meta charset"utf-8" /><meta name"viewport" content"widthdevice-width, initial-scale1,maximum-scale1,user-scalableno"><title></title><link rel…

python批量删除文件

python批量删除文件 1、查询与删除2、添加模块到地址中3、批量删除多个路径中不需要导出的文件 1、查询与删除 mport osdef get_files_in_folder(folder_path):files []for file in os.listdir(folder_path):if os.path.isfile(os.path.join(folder_path, file)):files.appen…

微信小程序:5.数据绑定

在Data中定义数据早wxml中进行数据使用 在data中定义数据 在页面对应的js对象中找到data&#xff0c;然后把数据进行定义即可 Page({data: {motto: Hello World,userInfo: {avatarUrl: defaultAvatarUrl,nickName: ,},hasUserInfo: false,canIUseGetUserProfile: wx.canIUse…

关于OSPF报文学习

目录 一.OSPF学习补充 &#xff08;1&#xff09;OSPF报文头部 &#xff08;2&#xff09;ospf建立邻居关系 1.Hello报文——建立邻居关系 2.hello报文头部 &#xff08;3&#xff09;OSPF建立邻接关系 1.发送DD报文 2.DD报文头部 &#xff08;4&#xff09;关于DR,BD…

力扣经典150题第四十三题:两数之和

目录 力扣经典150题第四十三题&#xff1a;两数之和题目描述示例解题思路完整代码复杂度分析总结与结语感谢您阅读本文&#xff0c;希望本文能帮助您更好地理解和掌握解决这道经典的算法问题&#xff01; 力扣经典150题第四十三题&#xff1a;两数之和 题目描述 给定一个整数…

pyqt QSplitter控件

pyqt QSplitter控件 QSplitter控件效果代码 QSplitter控件 PyQt中的QSplitter控件是一个强大的布局管理器&#xff0c;它允许用户通过拖动边界来动态调整子控件的大小。这个控件对于创建灵活的、用户可定制的用户界面非常有用。 QSplitter控件可以水平或垂直地分割其包含的子…

Bytebase 2.16.0 - 支持 Oracle 和 SQL Server DML 变更的事前备份

&#x1f680; 新功能 支持 Oracle 和 SQL Server DML 变更的事前备份。 支持在 SQL 编辑器中显示存储过程和函数。 支持兼容 TDSQL 的 MySQL 和 PostgreSQL 版本。 支持把数据库密码存储在 AWS Secrets Manager 和 GCP Secret Manager。 支持通过 IAM 连接到 Google Clou…

目标检测与追踪AI算法模型及边缘计算智能分析网关V4的算法应用

目标检测与追踪是计算机视觉领域中的一个重要任务&#xff0c;主要用于识别图像或视频中的目标&#xff0c;并跟踪它们的运动轨迹。针对这一任务&#xff0c;有许多先进的AI算法模型&#xff0c;例如&#xff1a; YOLO&#xff08;You Only Look Once&#xff09;&#xff1a;…

分布式版本控制系统——Git

分布式版本控制系统——Git 一、Git安装二、创建版本库三、将文件交给Git管理四、Git的工作区和暂存区1.工作区&#xff08;Working Directory&#xff09;2.版本库 五、版本回退和撤销修改1.版本回退2.撤销修改 六、删除文件七、常用基础命令总结八、参考 分布式版本控制系统&…