5种搭建LLM服务的方法和代码示例

vLLM - LLMEngine LLMEngine是vLLM的核心,它接收输入,通过语言模型生成输出,并将结果返回给客户端。离线批量推理的LLM,在线服务的AsyncLLMEngine都通过封装LLMEngine对外提供推理服务。LLMEngine有v0和v1两个版本的实现,目前主流是使用的v1版本,源代码位于:vllm/vllm/v1/engine/llm_engine.py。 阅读详情

在不断发展的大型语言模型(LLMs)领域中,用于支持这些模型的工具和技术正以与模型本身一样快的速度进步。在这篇文章中,我们将总结5种搭建开源大语言模型服务的方法,每种都附带详细的操作步骤,以及各自的优缺点。

图片

1、Anaconda + CPU

我们首先介绍门槛最低的入门级方法,因为这个方法不需要GPU,基本上只要有一个还不错的CPU和足够RAM就可以运行。

这里我们使用llama.cpp及其python绑定llama-cpp-python
在这里插入图片描述

创建一个名为models/7B的目录来存储下载的模型。然后使用命令下载GGUF格式的量化模型:

在这里插入图片描述

然后就可以运行以下命令启动服务器:

 python3 -m llama_cpp.server --model models/7B/llama-2-7b-chat.Q5_K_M.gguf

将环境变量MODEL设置为下载模型的路径。然后运行openai_client.py脚本就可以访问我们的查询服务器。openai_client.py使用OpenAI库调用LLM服务器并打印响应。

在这里插入图片描述

因为这个方法是门槛最低的,所以他的速度也是最慢的,基于Intel®Core™i9-10900F CPU @ 2.80GHz的系统的处理时间大概是13秒左右,所以这个方法一般用作我们的本地测试服务(如果你GPU不够的话)。

2、Anaconda + GPU

前面的CPU方法是非常慢的,为了加快速度我们将使用vllm,这是一个专门为有效利用gpu而设计的工具。

 pip install vllm

执行以下命令来启动服务器:

 python -m vllm.entrypoints.openai.api_server --model TheBloke/Llama-2-7B-Chat-AWQ --api-
 key DEFAULT --quantization awq --enforce-eager

这将下载AWK量化模型并启动一个OpenAI兼容服务器,我们可以像使用llama.cpp一样进行查询。

“— enforce-eager”是费差个重要的,因为它允许模型在我的10G VRAM GPU中运行,没有内存不足的错误。

在Nvidia RTX 3080 GPU和Intel®Core™i9-10900F CPU的系统下处理时间只有0.79s。CPU快20倍左右,这就是为什么GPU现在都那么贵的一个原因。

这种方式可以用做我们测试服务器或者在线上的小规模部署,如果要求不高,也可以当作生产环境来使用,当然维护起来非常麻烦。

3、Docker + GPU

vllm有很多依赖,如果要批量的安装是一件非常耗时的事情。好在vllm还提供了一个预构建的docker映像,它已经包含了所需的所有库。

对于ubuntu,我们首先安装Nvidia CUDA Toolkit,如果安装了则跳过

 sudo apt install nvidia-cuda-toolkit

然后添加Nvidia Docker存储库并安装Nvidia Container Toolkit:

在这里插入图片描述

配置Docker使用Nvidia runtime:
在这里插入图片描述

然后就可以运行我们的模型了
在这里插入图片描述

这里我们使用-v参数将本地的磁盘映射到容器中,这样所有的容器都可以使用huggingface的模型缓存,避免了重复下载。

docker的部署方式处理一个查询的时间在0.8s左右与使用相同硬件在Anaconda上运行vllm相似。

使用docker可以大大简化我们服务器的环境配置,配合集群管理脚本可以适用于大规模的服务部署。

上面的方式都适用于本地和有GPU主机/集群的方式,下面我们介绍2个比较简单的云GPU的方案,这两个方案都是按需付费的。

4、modal

Modal可以简化无服务器应用程序的部署,特别是那些利用GPU资源的应用程序。它的一个突出的特点是它的计费模式,它确保用户只在他们的应用程序使用GPU资源的持续时间内收费。这意味着当你的应用程序不被使用时则不会收费。

Modal还提供每月30美元的优惠,为用户提供了充分的机会来探索和试验部署gpu加速的应用程序,而无需支付前期费用,这也是我们介绍他的一个原因,因为每月目前还能白嫖30美元,哈。

首先安装:

 pip install modal

然后配置modal的运行环境,这一步需要登陆了

 modal setup

我们这里的vllm_modal_deploy.py改编Modal的官方教程。这个脚本最重要的一点是定义GPU。这里我选择了nvidia T4,因为量化模型非常小:

然后定义运行代码的docker镜像:

在这里插入图片描述

定义App:

 stub = Stub(APP_NAME)

最后编写预测的类:

在这里插入图片描述

@enter()装饰器被用来定义生命周期方法来处理代码的初始化之类的事情。所以我们在这里加载模型并设置生成管道。如果查询触发了此方法,则意味着有一个“冷启动”,也就是第一次启动的耗时会比较长。

定义生成函数:

在这里插入图片描述

最后就是使用命令行进行部署

 modal deploy vllm_modal_deploy.py

部署完成后就可以从python调用这个函数:

在这里插入图片描述

经过我的测试第一次启动大约需要37秒。这包括启动时间和处理时间。应用程序已经启动时的延迟是2.8秒。这些都是在Nvidia T4上运行的,所以3秒还是可以接受的。

需要注意:container_idle_timeout的值是用来回收容器的,超过了这个时间值会进行回收,这样再次启动就会调用初始化的过程,也就是我们说的冷启动。但是因为modal的计费方式,再未回收前都是计费的,所以请谨慎修改。

最后说下费用:Modal的Nvidia T4收费是0.000164 * /秒 或 0.59 * /小时。上面我们使用了几百秒的计算时间,花费了大约0.1美元。

5、AnyScale

Anyscale与Modal类似,但他更专注于提供随时可用的开源模型。我们可以使用Anyscale API的URL直接调用它们。

首先注册并获得API密钥。你可以使用他们提供给新用户的10*$免费套餐来运行本教程。

接下来,我们将使用与之前相同的openai_client.py脚本:

 export API_KEY="CHANGEME" export MODEL="meta-llama/Llama-2-7b-chat-hf" export 
BASE_URL="https://api.endpoints.anyscale.com/v1" python openai_client.py

不需要任何的设置,只要我们在发送请求时修改参数就可以访问不同的模型了,这就是Anyscale的优势

这个请求的延迟大约是3.7秒,还算不错。但是AnyScale是按照令牌来计费的(与OpenAI的API相同)LLama2 7B 的价格是0.15*$ / 1M 令牌。我们运行这个示例花费不到1/10美分。

可以看到AnyScale还是很不错的,对于开源模型我们直接可以拿来使用,并且花费也很低,如果你没有GPU,这个可以作为模型测试的首选平台,一个月几十美元基本上够我们测试当月新发布的所有模型了。

总结

当涉及到服务大型语言模型(llm)时,有各种各样的方法可以选择:

对喜欢本地服务器设置的人来说,使用带有CPU的Anaconda提供了较低的进入门槛,gpu加速的Anaconda环境可以缓解延迟问题,但它仍然面临可伸缩性和对本地资源的依赖方面的限制,特别是在处理大型llm时。

Docker可以简化Python环境配置,可以适应大批量的部署。

Modal提供了一种更灵活的按次付费计算解决方案,使其具有成本效益和易于设置的吸引力

AnyScale提供了较低的进入门槛对于那些追求简单的人来说是一个非常好的选择

我们介绍的这些方法是一个很好的起点,还有很多其他服务比如runpod和AWS,但这些方法需要更多的运维知识,并且在小规模部署上优势并不明显,所以要考虑对针对特定需求和要求量身定制的最佳方案还需要进行全面评估。


如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
零一万物Yi大模型vllm推理时Yi-34B或Yi-6bchat重复输出的解决方案 使用vllm推理yi模型的时候,发送消息中需要加入"stop_token_ids": [7],就可以解决重复刷屏的问题。破案了同志们,用vllm直接推理yi模型确实会重复刷屏,但是用官方给的web_demo推理是没问题的。在使用yi-34B进行问答的时候,出现了模型重复输出内容的情况,如下图所示。在群里等待了几天之后,又有群友反馈出现了这个情况。 阅读详情

相关推荐

使用Runhouse和LangChain快速搭建自托管LLM服务

近年来,大型语言模型(LLM)如GPT系列模型的应用场景越来越广泛。然而,许多开发者希望能够自托管这些模型,以更好地控制成本、安全性和性能。Runhouse提供了一套工具,让用户可以轻松地连接本地或云端GPU资源,并与LangChain集成,快速搭建自托管的LLM服务。使用LangChain的PromptTemplate构建一个简单的提示模板,并加载Hugging Face模型。# 定义Prompt模板# 加载Hugging Face模型 (如 GPT-2)

Shell726的博客 1076

昇腾平台LLM pytorch推理环境搭建

当前用户下执行npu-smi info是否可以查看到gpu信息,如果不能,则表示驱动安装错误,需要在安装命令加上 --install-for-all。检查NPU是否正常在位可执行lspci | grep d802命令,如果服务器上有 N路NPU,回显N行含“d802”字段,则表示NPU正常在位。资源下载地址:https://www.hiascend.com/developer/download。通过执行npu-smi info命令查看。支持的PyTorch版本。支持的Adapter版本。

5961

LLM | 利用LangChain和Streamlit搭建LLM对话系统

关于大语言模型(Large Language Model, LLM)和Ollama,本期就不再过多介绍,主要还是对LangChain和Streamlit进行一个简单介绍。

weixin_44815633的博客 1771

qwen大语言模型基于vllm部署

将上述代码按顺序组合在一个py文件中。

weixin_41687218的博客 4988

AI智能通开发系列(2)LangGraph×LLM×Tools智能体架构实战,5步搭建可执行工作流

摘要 本文介绍如何利用LangGraph构建具备执行能力的智能体工作流,解决大语言模型(LLM)落地应用的关键问题。通过5个典型行业案例(金融风控、电商运营、IT运维、医疗辅助、工业制造)展示自动化工作流的价值,并提供技术实现方案:1)定义工具集扩展LLM执行能力;2)构建智能体决策引擎;3)设计状态机控制工作流。配套完整Python代码示例,适用于需要将AI能力融入业务流程的场景。关键词:智能体工作流、LangGraph、LLM应用、自动化、工具调用。

专注分享PHP、python、AI、web前端等知识 1793

6.6 Dify低代码平台搭建LLM应用完整实战教程

本文介绍了开源LLM开发平台Dify的核心功能与实战应用。Dify支持可视化工作流编排、多模型接入、RAG和Agent能力,适合快速搭建LLM应用原型。文章详细说明了Dify与《大模型应用开发极简入门》第6章的对应关系,提供从部署到发布的完整流程,并给出工作流编排示例。同时阐述了Dify的适用边界:适合快速验证和内部工具开发,但复杂场景仍需自研代码。最后强调了Dify与国内模型适配的配合使用,可形成完整的低代码LLM应用开发解决方案。

yonggeit的博客 3453

服务器部署LLM、Embedding

介绍在服务器下将大语言模型、embedding模型通过transformers或者vllm的方式部署为API服务的搭建步骤和脚本

青山的博客 4301

构建一个LLM应用所需的所有信息

​ 您是否对大型语言模型(LLM)的潜力感兴趣,并渴望创建您的第一个基于LLM的应用程序?或者,也许您是一位经验丰富的开发人员,希望简化工作流程?看看DemoGPT就是您的最佳选择。该工具旨在简化和自动化基于 LLM 的应用程序开发过程,是您开始旅程所需的一切。本博客将指导您了解LLM,DemoGPT的基本知识,以及如何开始使用您的第一个应用程序。​

gongdiwudu的专栏 6502

大模型LLM类型和示例

大型语言模型(LLM)是一类深度学习模型,旨在处理和理解海量自然语言数据。简单地说,大型语言模型可以定义为人工智能/机器学习模型,它们试图解决与文本生成、摘要、翻译、问答(Q&A)等相关的 NLP 任务,从而实现更有效的人机交流。这就是为什么 LLM 需要处理和理解海量文本数据,并学习句子中单词之间的模式和关系。大型语言模型(LLM)之所以被称为 “大型”,是因为它们在大型文本语料库中预先训练了大量参数(1 亿多个),用于处理/理解和生成自然语言文本,以完成各种 NLP 任务。

程序员鑫港的博客 1328

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

暴力破解pdf文档密码

相信小伙伴们都遇到这种情况;你收到了一些标题很吸引人的pdf文档 或者是重要数据泄露 学习资料总结,再或者是某机构的押题密卷,打开pdf却提示你要输入密码 因为不知道密码 只能弃罢。我就遇到过这种情况 网友发来了标题为某天一的押题密卷 ,我也想看看这个卷子的题怎么样,因为被设置了密码 我尝试用6到10位的纯数字组合来暴力破解这个pdf,结果三 四个小时都没找到正确的密码。有些网友为破解这个密码 请某宝某多来破解 也都没有破解成功。

shelter1234567的博客 1万+

【LLM】五、open-webui+ollama搭建自己的RAG服务

往期文章中,已经讲解了如何用ollama部署本地模型,并通过open-webui来部署自己的聊天机器人,同时也简单介绍了RAG的工作流程,本篇文章将会基于之前的内容来搭建自己的RAG服务,正文开始。

qq_55068938的博客 2万+

深度残差网络的无人机多目标识别

深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:《图学学报》。作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因此提出一种级联区域建议网络(CRPN)的搜索模式对其进行改善。此外,深层次的卷积神经网络训练中易产生退化现象,而引入残差学习的深度残差网络(ResNet),能够有效抑制该现象。对多种不同深度以及不同参数的网络模型进行研究,将两层残差学习模块与三层残差学习模块结合使用,设计出一种占用内存更小、时间复杂度更低的新型多捷.

m0_62870606的博客 3111

终极指南:5分钟用LLM App低代码平台搭建AI应用界面

LLM App是一个用于构建和服务AI应用程序与启用LLM的实时数据流水线的生产框架。借助这一强大工具,即使是新手也能快速搭建出专业的AI应用界面,无需复杂的代码编写。 ## 为什么选择LLM App低代码平台? LLM App低代码平台为AI应用开发带来了革命性的变化,让开发过程变得前所未有的简单高效。它具有以下显著优势: - **极速开发**:无需大量编写代码,大大缩短开发周期,让你在短

gitblog_00796的博客 975

MoveIt2 Servo实战:解锁UR机械臂在ROS2中的实时遥操作与动态响应

本文深入探讨了MoveIt2 Servo在UR机械臂实时遥操作中的应用,展示了如何通过ROS2实现毫秒级动态响应。文章详细解析了Servo的核心价值、环境配置、控制器适配及高级调优技巧,特别适用于需要高精度控制的工业场景,如VR手术训练和汽车装配线。

weixin_29044157的博客 247

STM32低功耗模式下ADC采样抖动的5个隐藏陷阱及解决方案(实测避坑)

本文深入探讨了STM32低功耗模式下ADC采样抖动的5个常见陷阱及解决方案,包括多通道采样电压跃迁、外设开关信号稳定、低功耗模式与ADC时钟同步、输入阻抗失配以及基准电压稳定性问题。通过实测数据和优化代码示例,帮助工程师有效规避ADC采样数据抖动问题,提升物联网设备的测量精度和稳定性。

weixin_30316097的博客 382

大型语言模型 (LLM)类型和示例

大型语言模型(LLM)是一类深度学习模型,旨在处理和理解海量自然语言数据。简单地说,大型语言模型可以定义为人工智能/机器学习模型,它们试图解决与文本生成、摘要、翻译、问答(Q&A)等相关的 NLP 任务,从而实现更有效的人机交流。这就是为什么 LLM 需要处理和理解海量文本数据,并学习句子中单词之间的模式和关系。大型语言模型(LLM)之所以被称为 “大型”,是因为它们在大型文本语料库中预先训练了大量参数(1 亿多个),用于处理/理解和生成自然语言文本,以完成各种 NLP 任务。

2401_85325726的博客 2973

基因组研究之单倍型T2T基因组(一)

单倍型T2T基因组(Haplotype-resolved T2T genome)是一种高精度、高连续性、高完整性的基因组组装技术,它能够提供从端粒到端粒的完整基因组序列,包括所有的基因和非编码序列。完整覆盖:T2T基因组覆盖从端粒到端粒的染色体序列,包含所有的基因和非编码序列,包括以往难以解析的端粒和着丝粒区域。单倍型解析:单倍型T2T基因组能够区分来自父母本的遗传信息,进行亚基因组不对称演化研究,挖掘单倍型等位基因间的表达差异,这对于重测序、性状定位、进化、基因功能、基因编辑等研究至关重要。

2401_89507557的博客 2438

SGLang快速开始:10分钟搭建本地LLM服务Demo

还在为部署大语言模型服务而头疼吗?SGLang让你在10分钟内搭建起高性能的本地LLM服务!本文将手把手教你从零开始,快速搭建一个完整的LLM服务Demo。 ## ???? 什么是SGLang? SGLang(Structured Generation Language)是一个专为大语言模型设计的高性能服务框架。它通过协同设计后端运行时和前端语言,让你的模型交互更快、更可控。 **核心优势:**...

gitblog_00228的博客 877

plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案

符合SEMI E4, E5, E30, E37 的 SECS/GEM通讯方案 专业稳定的产品,持续运行5年都不出错 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 毫米级的响应,单个messge在5ms以内 MES与PLC之间达到实时性,如采集实时性的数据 每秒支持100条Message以上 快速搭建PLC与MES之间的SECS/GEM桥梁,只需简单配置数据 SECS/GEM介绍 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 增删改上报数据配置简单,并且一目了然 大量的数据处理.

SECS/GEM 6362

Stable Diffusion 模型分享:Beautiful Realistic Asians(美丽真实的亚洲人)

Beautiful Realistic Asians(BRA)模型是由作者自己训练而成的一个独立模型,它是一个真实模型,并且是一个针对亚洲人训练的模型,可以生成非常漂亮的亚洲小姐姐。条目内容类型大模型基础模型SD 1.5来源CIVITAI作者文件名称文件大小1.99GB。

水滴的博客 2157

triton+tensorrt-llm后端部署LLM服务

参考TensorRT-LLM 是 NVIDIA 推出的一个开源库,旨在利用 TensorRT 深度学习编译器优化和加速大型语言模型(LLMs)的推理性能。它专为开发者设计,支持在多 GPU 环境中高效运行 LLMs。

Michael是个半路程序员 3741

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Python实战:5分钟用MCP SDK搭建你的第一个LLM工具调用客户端(附完整代码)

本文详细介绍了如何使用Python MCP SDK快速搭建LLM工具调用客户端。通过5分钟实战教程,从环境配置、基础客户端实现到集成大语言模型进行智能工具调用,提供了完整的代码示例。文章重点演示了如何利用MCP协议标准化LLM与外部工具的交互,并展示了连接真实世界服务的进阶应用。

weixin_29061531的博客 392

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: “技术故障”背刺巴菲特,金融大模型到底靠不靠谱?
下一篇: 如何借助 LLM 设计和实现任务型对话 Agent
少喝冰美式
博客等级 码龄3年 6839粉丝 517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值